SAN – 什麼是 “LUN”

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`

其中的參數

  1. initrd-2.6.18-92.ELsmp.img  這就是建立後的 initrd image 檔
  2. `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

使用新的核心開機就大功告成,後來比較新的作業系統預設都是開啟的狀態不用設定了.

4 thoughts on “SAN – 什麼是 “LUN”

  1. 通告: NAS/SAN | Benjr.tw
  2. 目前版本預設都是支援 multi-luns 如果不確定可以查看 kernel config 檔.

    [root@benjr ~]# cat /boot/config-2.6.18-128.el5 |grep -i multi_lun
    CONFIG_SCSI_MULTI_LUN=y
    

    如果你的和我一樣就是支援 multi-luns

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料