Intel iSCSI Remote Boot導入
Intel iSCSI Remote Boot導入のため,調達したNICのファームウエアを書き換え.
デフォルトで導入されている,PXE boot可能なIntel Boot Agentを置き換える.
ちなみに,ローカルストレージからbootしたOSで,iSCSIのストレージを
使用したいだけなら,今回の作業は必要ない.
# それは,OSのiSCSI Initiatorのお話なので.
iSCSI Remote Bootを導入(かつ,必要な設定も実施)すれば,NICがBIOSレベルで
SCSI HBA(Host Bus Adapter)として振る舞うようになるらしい.
当然,OSからはブロックデバイスに見える.
早い話,OSからは単にSCSI HBAに見えるので,当然OSのインストールも可能な
ワケで,当然そこからOS bootも可能になる.
でも,それはNICが上手くやってくれていて,実はIPネットワーク上のiSCSI targetと
SCSIデータを送受信してくれる.
ま,SCSI over IP を(NICの)BIOS側でやっちゃいましょう,ということですか.
で,高いサーバ向けのGbEアダプタやiSCSIアダプタなら,TOE(TCP Offload Engine)やら,
iOE(iSCSI Offload Engine)やらが付いていて,これらのハードウエアがあると,
iSCSI処理に係る処理を,CPUではなくNIC側で請け負いますよ,と.
# まあいえば,GPU(昔でいう,Graphics Accelerator)と同じ発想ですねw
そんなこんなで,EXPI9301CTを適当なサーバへ実装.
Intel Boot Agentが2つ表示されているが,下側が実装したNICのもの.
# 上側はマザーボードに実装されているGbEコントローラのもの.
で,iSCSI Remote Bootへの書き換えは,iSCSI Remote Boot Setup Utility(ISBoot.exe)を
取得して,その中にある「iscsiutl.exe」を使用する.
ISBoot.exeは,IntelのDownload Centerから入手可能.
ちなみに,iscsiutl.exeの動作環境は「DOS」.仕方ないので,FreeDOSを取ってきて入れたw
iscsiutl をオプションなしで実行すると,現状一覧が表示される.
「iscsiutl -ALL -UP」で,iSCSI Boot imageに書き換えが実行される.
書き換えが無事終了して,Port #2が「iSCSI Enabled」となっている.
書き換えるNICを指定するときは,「-NIC=xx」オプションで個別指定
可能なようだが,今回実行したバージョンではエラーで指定できなかった.
で,システムを再起動すると,BIOSレベルで「iSCSI Boot」が組み込まれて
いるのがわかる.
CTRL+Dで設定モード.設定するポート選ぶと,iSCSI targetの設定やらが可能.
とりあえず何も設定せず再起動.DHCP Serverからの応答がないので,
timeoutで普通にローカルストレージからOSが起動した.
ちなみに,再びPXE boot可能なファームウエアに戻すときは,
Intel Boot Agent for Intel Network Adapters(PROBOOT.exe)を取得し,
その中にある「ibautil.exe」を使う.
(当然ながら)Intel Boot Agentもバージョンアップされて,いい感じw
# 実験済みw
デフォルトで導入されている,PXE boot可能なIntel Boot Agentを置き換える.
ちなみに,ローカルストレージからbootしたOSで,iSCSIのストレージを
使用したいだけなら,今回の作業は必要ない.
# それは,OSのiSCSI Initiatorのお話なので.
iSCSI Remote Bootを導入(かつ,必要な設定も実施)すれば,NICがBIOSレベルで
SCSI HBA(Host Bus Adapter)として振る舞うようになるらしい.
当然,OSからはブロックデバイスに見える.
早い話,OSからは単にSCSI HBAに見えるので,当然OSのインストールも可能な
ワケで,当然そこからOS bootも可能になる.
でも,それはNICが上手くやってくれていて,実はIPネットワーク上のiSCSI targetと
SCSIデータを送受信してくれる.
ま,SCSI over IP を(NICの)BIOS側でやっちゃいましょう,ということですか.
で,高いサーバ向けのGbEアダプタやiSCSIアダプタなら,TOE(TCP Offload Engine)やら,
iOE(iSCSI Offload Engine)やらが付いていて,これらのハードウエアがあると,
iSCSI処理に係る処理を,CPUではなくNIC側で請け負いますよ,と.
# まあいえば,GPU(昔でいう,Graphics Accelerator)と同じ発想ですねw
そんなこんなで,EXPI9301CTを適当なサーバへ実装.
Intel Boot Agentが2つ表示されているが,下側が実装したNICのもの.
# 上側はマザーボードに実装されているGbEコントローラのもの.
で,iSCSI Remote Bootへの書き換えは,iSCSI Remote Boot Setup Utility(ISBoot.exe)を
取得して,その中にある「iscsiutl.exe」を使用する.
ISBoot.exeは,IntelのDownload Centerから入手可能.
ちなみに,iscsiutl.exeの動作環境は「DOS」.仕方ないので,FreeDOSを取ってきて入れたw
iscsiutl をオプションなしで実行すると,現状一覧が表示される.
「iscsiutl -ALL -UP」で,iSCSI Boot imageに書き換えが実行される.
書き換えが無事終了して,Port #2が「iSCSI Enabled」となっている.
書き換えるNICを指定するときは,「-NIC=xx」オプションで個別指定
可能なようだが,今回実行したバージョンではエラーで指定できなかった.
で,システムを再起動すると,BIOSレベルで「iSCSI Boot」が組み込まれて
いるのがわかる.
CTRL+Dで設定モード.設定するポート選ぶと,iSCSI targetの設定やらが可能.
とりあえず何も設定せず再起動.DHCP Serverからの応答がないので,
timeoutで普通にローカルストレージからOSが起動した.
ちなみに,再びPXE boot可能なファームウエアに戻すときは,
Intel Boot Agent for Intel Network Adapters(PROBOOT.exe)を取得し,
その中にある「ibautil.exe」を使う.
(当然ながら)Intel Boot Agentもバージョンアップされて,いい感じw
# 実験済みw