プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

esxi iSCSIの設定

esxi 4.0 (update 4) のデータストアとして、ネットワーク上の領域を使ったほうが、サーバーにトラブルがあった場合も仮想マシンのバックアップなどの面で便利だろうと思い、iSCSIを試してみることにしました。

1.想定する環境

手元のNAS(NetGear ReadyNasUltra2)に、iSCSIで接続する機能があるので、それを利用することにします。

パフォーマンスが気になるのでサーバー(esxi4.0)にもnicを1枚増設して、NASと専用LAN(といっても直結ですが)でつなげることにします。

2. NAS側の設定

NAS側のiSCSIの機能を有効にします。この部分は、使用するiSCSIターゲット次第になると思います。

  1. ReadyNasUltraの場合は、ブラウザから管理画面に接続します。
  2. 次に、「ボリューム」→「ボリューム設定」→「iSCSI」を選択します。
  3. 「iSCSIサポートを有効にします」のチェックボックスにチェックをつけて、下の「適用」を押します。

次に、iSCSIターゲットを作成します。

  1. iSCSIサポートが有効になったら、画面の下のほうに「iSCSIターゲットの作成」というボタンが表示されるので、押します。
  2. ターゲット名と容量を入力します。問題がなければ、下記のようになります。
  3. 必要があれば、LUNを追加して作成します。

なお、LUNはiSCSI領域のバックアップ時の単位になります。また、esxiから使う場合、LUN単位でストレージの拡張に用いることができます。

注意

ReadyNasUltraのコントロールパネルに FireFoxで接続していると、画面に次のようなエラーが出ることがあります。

調べてみると、ブラウザ種類とファームウェアの組み合わせで起きる問題のようです。問題が起きた環境は、Firefox10.0.2とRAIDiator 4.2.15でした。IE8でつないだら問題なく操作できました。

NetGearのフォーラムを見ると、ReadyNasシリーズのFrontViewはFirefoxには対応していないようです。

参考:http://www.readynas.com/forum/viewtopic.php?f=126&t=51896

3.esxi側の設定:(1)ネットワークの追加

最初に、サーバー機を止めてnicを増設して、esxiを再起動すると自動的にnicが認識されました。

ちなみに、esxiはnicのチップを選ぶのでnicの選定は注意が必要です(今回はintelチップのものを使いました)。

nicが問題なく認識されると、vShere Clientでesxiにつなげて、「構成」→「ネットワークアダプタ」をみると、下記のようになります。

nicが無事に認識されたら、ネットワークを追加します。最初の状態は次のようになっています。

これに、VMkernelネットワークを追加します。詳細は、esxi4.0の「iSCSI SAN 構成ガイド」の「ソフトウェア iSCSI の VMkernel ポートの作成」あたり、または「ESXi 構成ガイド」の「VMkernelネットワークの設定」を参照してください。

  1. vSphere Client からesxiに接続します
  2. 「構成」→「ネットワーク」→「ネットワークの追加」を選択します
  3. 「接続タイプ」として、「VMkernel」を選択します
  4. 「仮想Switchの作成」を選択し、新しいvSwitchを作成します。この際、追加したnicが下に表示されます。
  5. 使用するアダプタを選択します
  6. 「ネットワークラベル」等の設定はデフォルトのままとしました。
  7. 次に、IP関連の設定を行います。DHCPを使わない場合は、ここでIPアドレスを指定します。
  8. IPv6を使用しないので、残りの問い合わせはデフォルトのままで進みます

VMkernelの追加が終了すると、下記のようになります。

4.esxi側の設定:(2)iSCSIソフトウェアイニシエータの設定

  1. 「構成」→「ストレージアダプタ」→「iSCSIソフトウェアアダプタ」を選択します
  2. 画面下側の「プロパティ」を選択します。下記の画面が表示されます。
  3. 「全般」タブ→「構成」を選択し、「ステータス」の「有効」にチェックをつけます
  4. 下記画面のようになります
  5. 再度、「プロパティ」を選択します
  6. 「動的検出」のタブを選択します
  7. iSCSIサーバー(この場合はNASサーバー)のIPアドレスとiSCCSIターゲット名を指定します
  8. 「OK」を押します
  9. 「閉じる」を押します
  10. 再スキャンを行うか尋ねるダイアログが表示されるので、「はい」と答えます
  11. 問題がなければ、画面下部にiSCSIターゲットがLUN毎に表示されます

詳細は、esxi4.0の「iSCSI SAN 構成ガイド」の「ソフトウェア iSCSI イニシエータの有効化」あたりを参照してください。

5.esxi側の設定:(3)ストレージの追加

  1. 「構成」→「ストレージ」→「ストレージの追加」を選択します
  2. 「ディスク/LUN」を選択します
  3. ストレージに追加したいiSCSIのLUNを選択します
  4. 問題がなければ、iSCSIストレージが追加されます

6.仮想マシンの移動と再登録

ローカルHDDにある、仮想マシンをiSCSI上に移動させます。

  1. ローカルhddのストレージを選択し、「データストアの参照」を選択します
  2. 移動したい仮想マシンのフォルダを選択します
  3. アイコンから「別の場所に移動」を選択します
  4. 移動先として、iSCSI上のデータストアを選択します

esxiに登録してある仮想マシンは、移動前のローカルHDDのファイルを指しているので、一旦インベントリから削除します。

そして、移動先のストレージを選択し、データストアの参照を行い、仮想マシンのファイル(~.vmx)を選択して、右クリックメニューから「インベントリへ追加」を選択します。

最後に、追加した仮想マシンを起動すると、仮想マシンを移動したかコピーしたか、を聞かれるので、移動したを選択して、起動します。

これで、無事に起動できれば仮想マシンがiSCSIから起動できるようになりました。

7.結局

ここまでやって、仮想マシンをiSCSIから起動できるようにしたのですが、今回使ったNASではiSCSIの領域をバックアップしようとするとディスクイメージとして容量分の一つの巨大なファイルになってしまうことが判明しました。

参考:http://www.readynas.com/forum/viewtopic.php?f=31&t=33589

トラブルがあった場合は、一応同じ容量のiSCSI領域を用意すれば、バックアップしたイメージから戻すこともできるようなのですが、日々のバックアップ作業にはあまり向いていないように思えます。

なにかいい方法はないものかとネットを見ていたら、下記のような資料がありました。これによると、ソフトウェアイニシエータのiSCSI とNFSは、Readだとそんなに大差がなく、WriteはiSCSIのほうが若干良さそうです。これを参考にして、専用LANを使ったNFS経由でNAS 領域に仮想マシンを置くことにしました。これだと、NFSで公開している領域はRsyncでのバックアップが可能になるので、現実的かと思います。

参考:http://www.vmware.com/files/pdf/perf_vsphere_storage_protocols.pdf

で、これで問題解決かと思ったのですが、実際に使い始めてみると、仮想マシンによっては、ネットワーク越しで使うのはストレスがたまるほど応答が悪いことが判明しました。iSCSIで本格的に使わなかったので前述のiSCSIとNFSのWriteの差の問題か、そもそもギガビット1本で直結程度のバンド幅だとだめなのか、NAS側の問題なのか、原因までは特定できていません。

なにはともあれ、使い物にならないのは意味がないので、二転三転しましたが、結局、一部の仮想マシンは、ローカルHDDにそのまま置いておき、たまにしか使わないものや反応が遅くてもいいものだけをNFS上に置くことにしました。

当面、ローカルHDDの仮想マシンのバックアップは当面手作業で、NFSへコピーで対応することにしました。なかなか一筋縄でいかないものだというのが感想です。

8.参考

作業するにあたり参考にしたサイトの記載しておきます。

以上