硬體需求:
一般的網卡可以擔當 iSCSI initiator 的工作,市面上很多的作業系統(Windows, RHEL , SLES) 都以軟體的方式去支援.但是如果你想將作業系統透過遠端的 iSCSI SAN 來啟動,是需要透過硬體的 iSCSI 網卡才有辦法做到.
雖然 RHEL5 在安裝時就可以選擇由 iSCSI Boot . 不過很可惜的是,如果你的 BIOS 不支援從 iSCSI Boot,那安裝完系統後就再也開不了機.
因為一般 BIOS 只能從當地端的硬碟開機(硬體的 iSCSI 會被視為當地端的硬碟裝置,如 Qlogic QLE 4062C: 1Gbit/s iSCSI TOE to PCI-Express Host Bus Adapter ),目前只有 uEFI(Unified Extensible Firmware Interface,目前是由 Intel 主導,主要目的是取代現前使用的 BIOS) 的系統會支援從 iSCSI Boot.
所以呢!!!一般的網卡是軟體的 iSCSI + TOE 還要加上 uEFI 才能實現由 iSCSI Boot (硬體的 iSCSI 不在此限).
但是最近在查詢 iSCSI 的資料時發現了 Intel 出了 Intel® iSCSI Remote Boot 這個 ROM 就包含了 iSCSI Boot 的功能.它可以讓你原先的 Intel 網卡直接透過他提供的功能能夠從遠端的 iSCSI SAN 直接開機.下載點在 http://support.intel.com/support/network/iscsi/remoteboot/ 方式也不難.
不過在使用這 Intel® iSCSI Remote Boot 有其限制,它主要是針對Intel PCI-Express Server 等級的 Gigabit family 網卡所設計的.所以如果你手上有下面這幾張卡就可以使用.
- Intel® Gigabit CT Desktop Adapter(Controller:82574L)
- Intel® Gigabit ET Dual Port Server Adapter(Controller:82576)
- Intel® Gigabit EF Dual Port Server Adapter(Controller:82576)
- Intel® Gigabit ET Quad Port Server Adapter(Controller:82576)
- Intel® PRO/1000 PT Quad Port Server Adapter(Controller:82571EB)
- Intel® PRO/1000 PT Quad Port LP Server Adapter(Controller:82571EB)
- Intel® PRO/1000 PF Quad Port Server Adapter(Controller:82571EB)
- Intel® PRO/1000 PT Dual Port Server Adapter(Controller:82571EB)
- Intel® PRO/1000 PF Dual Port Server Adapter(Controller:82571EB)
- Intel® PRO/1000 PT Server Adapter(Controller:82572EI)
- Intel® PRO/1000 PF Server Adapter(Controller:82572EI)
- Intel® Gigabit PT Quad Port Server ExpressModule(Controller:82571)
- Intel® 10 Gigabit AF DA Dual Port Server Adapter(Controller:82598EB)
- Intel® 10 Gigabit AT Server Adapter(Controller:82598EB)
- Intel® 10 Gigabit XF SR Server Adapter(Controller:82598EB)
- Intel® 10 Gigabit XF LR Server Adapter(Controller:82598EB)
- Intel® 10 Gigabit XF SR Dual Port Server Adapter(Controller:82598EB)
- Intel® 10 Gigabit CX4 Dual Port Server Adapter(Controller:82598EB)
這下載檔案中還包含了 iSCSI Remote Boot 的 driver,幾乎是市面上常用的作業系統都包含在裡面.
- Microsoft* Windows* Server 2003 SP1, SP2, R2 x86
- Microsoft Windows Server 2008 x86
- Red Hat* Enterprise Linux 4 U3, Red Hat* Enterprise Linux 5
- Novell SUSE* Linux Enterprise 9 SP3, Novell SUSE* Linux Enterprise 10
更新 iSCSI Remote Boot ROM:
Intel 提供的這一之工具 Intel iSCSI Network Adapter Boot Configuration Utility (iSCSIUtl) 是一隻 DOS 的程式,所以第一步就是先回到 DOS 先行更新 Intel NIC firmware 的 iSCSI Remote Boot ROM.在剛剛下載的檔案中解開後會發現目錄 iSCSIUtl\DOS\iscsiutl.exe 就是更新 Intel NIC 的 iSCSI Remote Boot ROM 的主程式.使用方式也很簡單:
iSCSIUtl -[OPTION] or -[OPTION]=[VALUE]
C:\iscsiutl -all -up Intel(R) iSCSI Boot Utility iSCSIUtl version 2.3.17.00 Copyright (C) 2003-2009 Intel Corporateion Programming flash on part 1 with iSCSI Boot image An Intel(R) Boot Agent setting has been detected on this device. Programming this device with Intel(R) iSCSI Boot will erase this setting. Would you like to continue? (Y)es or (N)o:Y * Flash update successful. Flash not enabled on port 2 Use the "-FLASHENABLE" parameter to enable to flash Port Network Address Series WOL Boot ROM Type Version ==== =============== ====== === ======================= ======= 1 001517785DD6 Gigabit YES iSCSI Enabled 2.3.17 2. 001517785DD7 Gigabit N/A FLASH Disabled 2.3.17
上面的指令會找出任何包含 pre-installed Intel Boot Agent image 的網卡,通常兩個埠的網卡第一個埠會被更新.系統會詢問你是否更新回答 Y(yes) 系統就會開始更新,如果你需要更新其他的網路埠時可以指定埠來更新.
ISCSIUTL -NIC=1 -FLASHENABLE
等系統重新開機後你會發現 Intel 的網卡的 Option ROM 變的不一樣.
Intel(R) iSCSI Boot version 2.3.17 Copyright (c) 2003-2009 Intel Corporation. All rights reserved. Press ESC key to skip iSCSI boot initialization. Press <Ctrl-D> to run setup…
按下 <Ctrl-D> 就可以進入 Intel iSCSI Remote Boot 的 Option ROM.針對 iSCSI initiator 端作設定.
設定 iSCSI Remote Boot
接下來我們就可以直接在 Intel 的 Option ROM 上設定 iSCSI Target 所指定的 Lun ,如果你沒有硬體的 iSCSI Target 端也沒關係,你可以先用 RHEL5 的 iSCSI Target 端的功能 RHEL5 – iSCSI IP-SAN 先進入 Intel iSCSI Remote Boot 的 option ROM.
進入 iSCSI Remote Boot Port Selection Menu 你可以看到目前系統所有的 Intel iSCSI Remote Boot-capable adapters.你可以在此頁面看到系統上 Intel 網卡的 PCI device ID, PCI bus / device / function 以及 MAC Address
這裡最多可以顯示出來 10 個 iSCSI Remote Boot-capable ports ,超過系統就顯示不出來了,我想一台 Server 要超過 10 個網路埠的機會不大.這裡需要做說明的是 iSCSI Remote Boot status ,也就是顯示在最後的 BOOT:PRIMARY, BOOT:SECONDARY
Boot 的選項可以分成下面幾種.
-
Primary:
當網路埠選擇成 Primary(按 'P' 鍵可以把狀態改變成 Primary) Intel iSCSI Remote Boot 會以此當作連上 iSCSI Target 為第一優先設定值.當系統有多個網路埠時只能有一個 Primary. -
secondary:
當網路埠選擇成 secondary(按 'S' 鍵可以把狀態改變成 secondary) , 只有當 Primary 連線失敗時 secondary 才會向 iSCSI Target 要求連線.當系統有多個網路埠時只能有一個 secondary. - 按 'D' 鍵可以把 iSCSI Remote Boot 網路埠的功能暫停使用.
- 按 'B' 鍵可以讓網路埠的 LED 閃爍.
- 按 'ESC' 鍵可以離開設定.
前面更新 iSCSI Boot ROM 時我已經將所有的埠做更新了,所以我們會看到一個狀態是 PRIMARY 另外一個是 SECONDARY.
選擇你的網卡之後進入 iSCSI setup menu 主要的選項有四種:
-
iSCSI Remote Boot Configuration
這邊的設定就是 iSCSI Remote Boot initiator 和 target 的選項包括了 IP ,name 以及 Boot Lun 皆是在裡設定. -
CHAP Configuration
預設 iSCSI 採用了 CHAP(Challenge Handshake Authentication Protocol) 的身分驗證方式,基本上是一種以 MD5 的加密驗證方式.如果你的系統有採用密碼的保護就需要在這裡做設定. -
Discard Changes and Exit
如果剛剛在 iSCSI Remote Boot Configuration 或是 CHAP Configuration 設定不滿意選擇"Discard Changes and Exit" 系統就不儲存剛剛所有的設定了.並且回到上一層 "iSCSI Remote Boot Port Selection Menu -
Save Changes and Exit
選擇 "Save Changes and Exit" 就可以將剛剛在 iSCSI Remote Boot Configuration 或是 CHAP Configuration 所設定的記錄下來,並且回到上一層 "iSCSI Remote Boot Port Selection Menu
我們先來設定 "SCSI Boot Configuration"
設定可以分成 "Initiator" 和 "Target" 端,上面那一部分就是本機 "Intel iSCSI Remote Boot " 也就是 "Initiator" 端的設定.
-
Use Dynamic IP Configuration (DHCP)
如果你的 DHCP 有針對 iSCSI 設定你只要直接勾選由 DHCP 指派 client IP address, subnet mask, and gateway IP address. -
Initiator Name
這裡就是設定 iSCSI initiator name 主要是為了讓 iSCSI target 可以辨識 Intel iSCSI Remote Boot 的名稱. -
Initiator IP
設定固定的 IP 這 IP 必須要和 Target 同網段也必須能和 Target 建立連線. -
Subnet Mask
IP 的 subnet-mask 取決於你的網路 IP 的網段. -
Gateway IP
當你的 Target 和 Initiator 處於不同網段時需要 gateway 來轉送封包.
下面半部分就是 Target 端的設定,除了 Target Name(就是 IQN ) 輸入時注意不要打錯外,其他就是 iSCSI Target 端的 IP.
-
Use DHCP for iSCSI Target Information
如果你的 DHCP 有針對 iSCSI 設定你只要直接勾選由 DHCP 指派 iSCSI target's IP address, IP port number, iSCSI target name, and SCSI LUN ID. -
Target Name
Target 端的 IQN (iSCSI Qualified Name)格式如下 iqn.yyyy-mm.<reversed domain name>[:identifier] . -
Target IP
iSCSI Target 端的 IP 位置. -
Target Port
iSCSI 所使用的 TCP Port Number(預設為 3260). -
Boot LUN
LUN: 通常 SCSI RAID 會用多顆 SCSI HD 組合成一個邏輯裝置(LUN),SCSI 控制器就可以使用單一的邏輯裝置來做存取,通常 LUN 是由 0 開始但是 RHEL5 的 iSCSI Target 的 lun0 是用來當作管理控制 controller device.所以你使用的是 RHEL5 Target 為基礎的 iSCSI 第一個分享出來的則是 LUN1.
iSCSI 採用 CHAP-Challenge Handshake Authentication Protocol(以 MD5 為基礎的加密驗證),來做身分驗證. 單向 CHAP 驗證:在此安全性等級,只有目標 Target 會做驗證.
-
User Name
iSCSI target 端所設定的 CHAP 使用者名稱. -
Target Secret
iSCSI target 端所設定的 CHAP 密碼. 這密碼不可和 Initiator Secret 端所設定的密碼相同. -
Use Mutual CHAP
相互(Mutual) CHAP 驗證,在此安全性等級,目標 Target 與啟動器 Initiator 皆會被彼此做驗證 -
Initiator Secret
iSCSI Initiator Mutual CHAP 密碼.這密碼不可和 Target Secret 端所設定的密碼相同.
如果沒有設定上的錯誤登出之後你可以看到系統會多出一個 iSCSI 的 drive.
Intel(R) iSCSI Boot version 2.3.17 Copyright (c) 2003-2009 Intel Corporation. All rights reserved. Press ESC key to skip iSCSI boot initialization. Initializing adapter configuration – MAC address(001517785DD6). Using STATIC configuration for primary port, please wait. iSCSI Target Name : iqn.2009-4.bios:storage iSCSI Target IP Address : 192.8.1.1 LUN ID: 1 Port: 3260 iSCSI Initiator IP : 192.8.1.24 iSCSI Gateway IP : 192.8.1.1 iSCSI Initiator Name : iqn.ben Attempting to connect to target disk using MAC address(001517785DD6) LUN: 1 DEVICE: IET VIRTUAL-DISK 18.63 GB
BIOS Boot Menu:
更新完 Intel iSCSI Remote Boot 後在 BIOS 的 Boot Menu 會多出一個 Intel® iSCSI Remote Boot 的選項.下面你看到的是我 IBM 的 Server 每一家的 Boot Menu 顯示出來的都不盡相同.
自從 RHEL5 開始安裝的時候多了一個選項 "Advanced Storage Configuration" ,這選項就是可以讓你從 iSCSI 開機.步驟如下:
選擇 "Add iSCSI Target"
Target IP Address :這就是 iSCSI Target 端的 IP
iSCSI initiator Name : iSCSI Target 所指定的 iqn(iSCSI Qualified Name)
如果順利完成即刻就會看到 iSCSI Target 所指派的硬碟空間.
RHEL5 U3 iSCSI boot 多加了 user / password (CHAP-Challenge Handshake Authentication Protocol 使用 MD5 的加密驗證) 來做身分驗證.
接下來安裝的步驟都會像是安裝在一般硬碟上面.RHEL5 U3 有支援 IBFT(iSCSI Boot Firmware Table) 所以可以直接安裝在這一顆硬碟上安裝作業系統不需要其他 dirver.
Broadcom iSCSI Remote Boot ROM
Broadcom 官方網站上是找不到 iSCSI Remote Boot ROM 這個東西,除非你是 OEM 的廠商,而且還必須透過 Broadcom 的 sales 或是 FAE 才拿的到,所以目前一般使用者是無法將自己的 PXE ROM 改成 iSCSI Remote Boot ROM.
還是有人知道有其它方式可以透過正常管道取得!!
用 gpxe 就可以了,不用受限於網卡廠商本身提供,且功能更加強大..
感嗯!!!我會試試看的.
Intel 出了 Intel® iSCSI Remote Boot 這個 ROM 就包含了 iSCSI Boot 的功能.下載點在 http://support.intel.com/support/network/iscsi/remoteboot/
RHEL5 U3 iSCSI boot 多加了 user / password (CHAP-Challenge Handshake Authentication Protocol 使用 MD5 的加密驗證) 來做身分驗證.
不過很可惜的是,如果你的 BIOS 不支援從 iSCSI Boot,那安裝完系統後就再也開不了機,因為一般 BIOS 只能從當地端的硬碟開機(硬體的 iSCSI 會被視為當地硬碟),目前只有 uEFI(Unified Extensible Firmware Interface,目前是由 Intel 主導,主要目的是取代現前使用的 BIOS) 的系統會支援從 iSCSI Boot ,所以呢!!!
一般的網卡是軟體的 iSCSI + TOE 還要有 EFI 才能實現由 iSCSI Boot (硬體的 iSCSI 不在此限).
iSCSI Boot Firmware Table (iBFT) 它是 ACPI 3.0b 協定中的一個元件,主要提供給作業系統一個標準的 software-initiated iSCSI 遠端開機通訊協定.
http://en.wikipedia.org/wiki/ISCSI_Boot_Firmware_Table