LUN(Logical Unit Number):
通常 SCSI RAID 會用多顆 SCSI HD 組合成一個邏輯裝置(LUN),SCSI 控制器就可以使用單一的邏輯裝置來做存取.除了 RAID 外最常遇見的就是在 SAN (Fiber / iSCSI) 上面,通常 SAN 指定給 Server 的 Hard drive 都是以 Luns 來當裝置名稱.不過很可惜的是 RedHat Enterprise Linux 預設只支援一個 Lun0 ,也就是說不管 SAN 指派多個 Luns 給 Server 但是 Server 就只會看到一個 Luns.比較快的解決multi – LUNs 的方式.
要支援多個 LUN 可以透過編譯核心 kernel 或是模組 initrd
重建 initrd 檔
在重建 initrd 時系統會依據 /etc/modules.conf 檔來決定要上哪一些 modules / Option .
[root@benjr ~]# vi /etc/modules.conf ....................略.................... Options scsi_mod max_scsi_luns=255
Options scsi_mod max_scsi_luns=255 讓 Luns 的支援到 256(0 ~ 255) 個
使用指令 mkinitrd 就可以重建 initrd
[root@benjr ~]# mkinitrd initrd-2.6.18-92.ELsmp.img `uname -r`
其中的參數
- initrd-2.6.18-92.ELsmp.img 這就是建立後的 initrd image 檔
- `uname -r` 是現在目前的 kernel (核心)版本.
再來複製到 /boot 目錄下,開機時就會用這個 initrd 來預先載入所需的 modules / Option.
[root@benjr ~]# cp initrd-2.6.18-92.ELsmp.img /boot/initrd-2.6.18-92.ELsmp.img
重編譯核心檔
可以直接上 Linux 核心的官方網站下載 http://www.kernel.org (RHEL 的 source code 似乎不是很完整)
Enter X-Windows mode and open a new terminal
#cd /usr/src/linux-2.4/ #vi Makefile EXTRAVERSION= -20LUNs # make clean # make mrproper # cp /boot/config-2.4.20-20.ELsmp .config # make oldconfig (If you don’t know what these new features do .Just say “No”) # make xconfig
(1) Enter “Processor type and features”
Set processor family for suitable processor.
(2) Enter “File system”
Set “EXT3 joumalling file system support to “Y”
(3) Enter “SCSI support/Some SCSI devices(eg.CD jukebox) support multiple LUNs”
Set ”Probe all LUNs on each SCSI device to “Y”
(4) Save and Exit
make dep clean bzImage modules modules_install install
# make dep
/sbin/lilo (If used LILO as boot load)
Make modules(eg:qla2300.o)
ln -s /usr/src/linux-2.4.29 /usr/src/linux2.4
Download qlogic module from http://www.qlogic.com web sit.
# tar zxvf qla2x00-version.tgz # cd qlogic # /drvrsetup # depmod –a # modprobe qla2300
使用新的核心開機就大功告成,後來比較新的作業系統預設都是開啟的狀態不用設定了.
目前版本預設都是支援 multi-luns 如果不確定可以查看 kernel config 檔.
如果你的和我一樣就是支援 multi-luns