ライン

ポイント:ゲストOSから直接SATAにアクセスしてNASをつくる

ライン

 NAS4Free

 やっと機材パーツの準備できたので作業を開始できます。
今回の目的は、FreeNASの派生で 0.7系の流れで開発が続けられているNAS4Freeを使い、ESXiのiSCSIサーバとして動作するように作ることとします。
これは、「環境さんぷる」で書かれている通りを確認検証することで動きを実際に見てみたいというところにあります。

 環境は意外と簡単に集まりました。何しろ似たものを保有しているからでありました。
サーバには、NEC Express 5800/S70 タイプPJ 。これは先週までPCとして使っていたマシンです。メモリーは4GBx4本あります。
起動は、USBメモリー(2GB)を使用し、HDDは、SATA物を3本準備しました。(後述)

 VMwareのバージョンは、5.1ではなく、5.0 Update1 にしました。まだバグありでダイレクトパスが動作しないからとのことでしたので、あえてこの版としました。まずは、Update1以降に出ているパッチの適用から開始します。
 ESXi500-201209001 というものが最新ということになりそうです。
 ウェブサイトから入手した「ESXi500-201209001.zip」をSSHを有効にしてSFTPで/tmpにアップする…と思いきや、容量不足といわれてしまいました。今回は、ゲスト用に準備したディスクがあるので、そちらに変更して導入します。

# esxcli software vib install -d /vmfs/volumes/501〜/ESXi500-201209001.zip
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMware_bootbank_esx-base_5.0.0-1.22.821926, VMware_bootbank_misc-drivers_5.0.0-1.22.821926,
 VMware_bootbank_net-e1000_8.0.3.1-2vmw.500.1.18.768111, VMware_bootbank_scsi-mptsas_4.23.01.00-5vmw.500.1.18.768111,
 VMware_locker_tools-light_5.0.0-1.22.821926
   VIBs Removed: VMware_bootbank_esx-base_5.0.0-1.11.623860, VMware_bootbank_misc-drivers_5.0.0-1.11.623860,
 VMware_bootbank_net-e1000_8.0.3.1-2vmw.500.0.7.515841, VMware_bootbank_scsi-mptsas_4.23.01.00-5vmw.500.0.0.469512,
 VMware_locker_tools-light_5.0.0-1.11.623860
   VIBs Skipped: VMware_bootbank_ata-pata-amd_0.3.10-3vmw.500.0.0.469512,
 VMware_bootbank_ata-pata-atiixp_0.4.6-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-cmd64x_0.2.5-3vmw.500.0.0.469512,
 VMware_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-pdc2027x_1.0-3vmw.500.0.0.469512,
 VMware_bootbank_ata-pata-serverworks_0.4.3-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-sil680_0.4.8-3vmw.500.0.0.469512,
 VMware_bootbank_ata-pata-via_0.3.3-2vmw.500.0.0.469512, VMware_bootbank_block-cciss_3.6.14-10vmw.500.0.0.469512,
 VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.1.11.623860, VMware_bootbank_esx-tboot_5.0.0-0.0.469512,
 VMware_bootbank_ima-qla4xxx_2.01.07-1vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-devintf_39.1-4vmw.500.0.0.469512,
 VMware_bootbank_ipmi-ipmi-msghandler_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.500.0.0.469512,
 VMware_bootbank_misc-cnic-register_1.1-1vmw.500.0.0.469512, VMware_bootbank_net-be2net_4.0.88.0-1vmw.500.0.7.515841,
 VMware_bootbank_net-bnx2_2.0.15g.v50.11-5vmw.500.0.0.469512, VMware_bootbank_net-bnx2x_1.61.15.v50.1-1vmw.500.0.0.469512,
 VMware_bootbank_net-cnic_1.10.2j.v50.7-2vmw.500.0.0.469512, VMware_bootbank_net-e1000e_1.1.2-3vmw.500.1.11.623860,
 VMware_bootbank_net-enic_1.4.2.15a-1vmw.500.0.0.469512, VMware_bootbank_net-forcedeth_0.61-2vmw.500.0.0.469512,
 VMware_bootbank_net-igb_2.1.11.1-3vmw.500.0.0.469512, VMware_bootbank_net-ixgbe_2.0.84.8.2-10vmw.500.0.0.469512,
 VMware_bootbank_net-nx-nic_4.0.557-3vmw.500.1.11.623860, VMware_bootbank_net-r8168_8.013.00-3vmw.500.0.0.469512,
 VMware_bootbank_net-r8169_6.011.00-2vmw.500.0.0.469512, VMware_bootbank_net-s2io_2.1.4.13427-3vmw.500.0.0.469512,
 VMware_bootbank_net-sky2_1.20-2vmw.500.0.0.469512, VMware_bootbank_net-tg3_3.110h.v50.4-4vmw.500.0.0.469512,
 VMware_bootbank_ohci-usb-ohci_1.0-3vmw.500.0.0.469512, VMware_bootbank_sata-ahci_3.0-6vmw.500.1.11.623860,
 VMware_bootbank_sata-ata-piix_2.12-4vmw.500.1.11.623860, VMware_bootbank_sata-sata-nv_3.5-3vmw.500.0.0.469512,
 VMware_bootbank_sata-sata-promise_2.12-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-sil_2.3-3vmw.500.0.0.469512,
 VMware_bootbank_sata-sata-svw_2.3-3vmw.500.0.0.469512, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.500.1.11.623860,
 VMware_bootbank_scsi-adp94xx_1.0.8.12-6vmw.500.0.0.469512, VMware_bootbank_scsi-aic79xx_3.1-5vmw.500.0.0.469512,
 VMware_bootbank_scsi-bnx2i_1.9.1d.v50.1-3vmw.500.0.0.469512, VMware_bootbank_scsi-fnic_1.5.0.3-1vmw.500.0.0.469512,
 VMware_bootbank_scsi-hpsa_5.0.0-17vmw.500.0.0.469512, VMware_bootbank_scsi-ips_7.12.05-4vmw.500.0.0.469512,
 VMware_bootbank_scsi-lpfc820_8.2.2.1-18vmw.500.0.0.469512,
 VMware_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.500.0.0.469512,
 VMware_bootbank_scsi-megaraid-sas_5.34-1vmw.500.1.11.623860,
 VMware_bootbank_scsi-megaraid2_2.00.4-9vmw.500.0.0.469512,
 VMware_bootbank_scsi-mpt2sas_06.00.00.00-6vmw.500.1.11.623860,
 VMware_bootbank_scsi-mptspi_4.23.01.00-5vmw.500.0.0.469512,
 VMware_bootbank_scsi-qla2xxx_901.k1.1-14vmw.500.0.0.469512, VMware_bootbank_scsi-qla4xxx_5.01.03.2-3vmw.500.0.0.469512,
 VMware_bootbank_scsi-rste_2.0.2.0088-1vmw.500.1.11.623860, VMware_bootbank_uhci-usb-uhci_1.0-3vmw.500.0.0.469512
/vmfs/volumes/501〜

…以上のように適用されたました。ここまであると、やっぱり試してからでも遅くない気がしてきました。

しかしながら、結果見えていない。821926というビルドにはなっていましたが…。

 CPUは、VT-dが使えるように Core i5 650にしました。
ストレージは、NAS4Free用の専用ディスクで日立の80GBのSATAを使いました。これは余っていたパーツです。
その他2本のWD20EARSがありますが、これはNAS4Freeで利用する分としてここでは何もせずにあります。
これは、DirectPath I/Oを使って、仮想ゲストのNAS4Freeより使わせる用としたいためです。

 すごい。ちゃんとパススルーできそうです。

 この後は、一度ESXiを再起動させる必要があります。
しかしこれをパススルーすると、現在接続しているSATAが見えなってしましました。
NAS4Freeが仮想ゲストOSで動かすための環境ができないことに理解できていませんでした。
VMwareのゲストOSでNASサーバを動作させるには、(1)パススルー用のディスクに接続するための拡張カードのSATAカード (2)NAS4FreeのゲストOSのためだけに使うSATAのHDD が必要ということですね。
(aoyamaさんのブログに書いてあるじゃん。やってみるまでその意味がわからなかっただけ。)"負け"っすね。

 さて、数日時間をおきまして、購入した商品を入れてみます。
SATA3I2-PCIe (玄人志向 チップは、88SE9128)をPCIeに入れて起動します。
USB起動で通常通りあげてみました。ちょっと認識までにかかりましたが、無事に見えてきた感じです。

アダプタは見えてきましたが、ディスクが見えてこない状態でした。
再起動後は、
のように見えてきました。

 認識はバッチリです。

# /usr/sbin/lspci -v|grep 88SE9123
000:013:00.0 SATA controller Mass storage controller: Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller [vmhba1]
# /usr/sbin/hwinfo -p|grep 000:013
000:013:00.0 1b4b:9123 1b4b:9123  5/  5/0xb0 A V ahci         vmhba1

追加したカードに接続したディスクが見えてこないので、試行錯誤開始。

駄目でした。見えてきません。
仕方なく、PCIの SATARAID-PCIという Sil3512チップのものを出してきて接続してみました。
こちらでは見えていました。こっちで作業することに決定です。
さて、オンボード側をパススルーをしてみることにします。
…大丈夫しっかりみえました。

この状態なら試すことができそうなので、先に進みます。

 ゲストにNAS4Freeを導入する

 オンボードに接続されたハードディスク側にゲストOSを入れて動かすことにします。
細かな部分は割愛で進めます。

 こんな環境にしました。PCIパススルーの設定ってこんなだったのです。

 では、早速初めてのNAS4Freeのインストールです。

 この版でいいのだろうか。先に進もう。

 人気の高い? x64のISOイメージで良さそうだ。200Mない程度なのに、3分程度かかるみたいなので、ページの入力を先に入れておく。
NAS4Free-x64-LiveCD-9.1.0.1.457.iso をVMwareにマウントして導入を開始しましょう。

パススルーできているじゃないですか。
今回は、「3」です。USB以外に導入するなんで結構久々かも。
なんか、ディスクの音が聞こえます。

 細かくキャプチャーを取得しようと思っていたのに、取得以前に勝手に先に進んでいました。
そのまま先に進めて導入を終えてしまいました。必要な方は、FreeNASの旧版の導入ページを参照ください。

とりあえず、こんな感じで。
次はウェブブラウザで設定を進めます。

適当にIPアドレスも割り当てて使える状態にしましょう。
Userとパスワードは知らないなぁ…。そうでしたか。adminとnas4freeがデフォルトとのことです。

 では、ストレージの設定です。

40GBのiSCSIターゲットを作成して、現在メモを書いているPCにマウントしてみた結果です。
なんか全然問題のない数値が出ています。

 FreeNASをがんばって使っていくよりも、こっちの方が簡単そうに思えます。
さて、ESXi上で今度はこのディスクを使っていく設定に入ります。

 NAS4Freeの設定(iSCSIサーバの動作)

 iSCSIが動作できていることは確認できていますし、ESXi上でこれを使う部分を開始しましょう。

追加をクリックします。
NAS4Freeのアドレスを指定します。
こんな感じで見えてきます。
同様に見えてきました。

 目的のストレージができました。

 こんな感じです。

 他のゲストから、作成したストレージを使ってみる

 まず最初に、このゲストが自動で起動していないと使えないストレージとなるので自動起動をするように設定します。

 これでストレージは利用できる前提となります。
さて、試すゲストOSですがWindows 2012にすることにしました。
触ったことがないので見てみたいというのもあります。

 普通に導入することができました。AFTで動作しているのにも関わらず遅くなることもなく安心して利用できることができます。
この後はもうちょい、NAS4Freeのその他の機能をみてみようと思っています。(別ページをどうぞ)

ちなみに、ESXiを翌日立ち上げると、

という感じで見えない状態。
ESXi上のiSCSIの認識が見えていないのだね。更新すると見えてきた。ゲストOSの起動にも問題なし。
…しっかし、2012の起動は早いな。これは驚き。
2012のPowerShellは、pwd ls psなどのコマンドがあるんですね。grepがないのが納得できないけど。
何にしても使い勝手が(サーバなのに)タッチパネルを意識したWindows8と同じなのは厳しいなと思う。

iSCSIのストレージでの数値はこんな感じでした。

NAS4Freeがあがって120秒後にWin2012を自動起動するようにしたけど、同様にiSCSIストレージが見えていなくてダメ。
クライアントから「再スキャン」「更新」するまでは復活できてこない。
この版の問題なのか、手順的な考慮不足なのかがわからない。

~ # /sbin/esxcli storage core adapter rescan --adapter vmhba34
~ # /sbin/esxcli storage core adapter list
HBA Name  Driver       Link State  UID                                    Description
--------  -----------  ----------  -------------------------------------  ---------------------------------------------------------------------------------
vmhba1    sata_sil     link-n/a    sata.vmhba1                            (0:17:0.0) Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller
vmhba32   usb-storage  link-n/a    usb.vmhba32                            () USB
vmhba33   sata_sil     link-n/a    sata.vmhba33                           (0:17:0.0) Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller
vmhba34   iscsi_vmk    online      iqn.1998-01.com.vmware:VM500-448641ca  iSCSI Software Adapter

これで見えてくるので、/etc/init.d や /etc/rc.local に工夫(sleepなどをいれて)し、動作するように考えましたがうまくいかず。
rc.localに(sleep 150 && /sbin/esxcli storage core adapter rescan --adapter vmhba34)& としてみたところ、タイミングはかなり遅いながら見つけてくるようになりました。でも時間を短めにするとダメ。init.d の下にスクリプトを書いても、ブート時にはないみたい。
このあたりのESXiのノウハウを知らないので、苦労しそう。こんな手間かけて使っていないですよね?
システム→高度な設定→スクリプトで追加できる部分でPostInitの部分で追加するとかできないかな…と考え中。


【改訂履歴】作成:2012/11/18  改訂: 2012/11/25
【参考リンク】

環境さんぷる…NEC Express 5800/S70 タイプPJ とESXi5のDirectPass I/OでNAS4Free用VMを作ってみる
       aoyamaさんのブログページ。今回はほぼこの日のブログの追従を実施しているページになりそうです。

 
Copyright © 1996,1997-2006,2007- by F.Kimura,