貧乏人のためのboot-from-SAN (1) 導入編
かなり前にこんなことを書いたのですが、もう実現された方はいるでしょうか。
ホストにiSCSI initiatorを設定してVMのディスクイメージをやっすくでっち上げたiSCSIストレージサーバ上に置いて、general public向け"Boot from SAN"を実現するのとかどうよ、と思っている。
VMware Server 1.0.1で遊んでみる - Ogawa::Memoranda
VMware Server、Workstation、PlayerのVMのディスクイメージの保持の仕方にはいくつかバリエーションがあり得ます。
- ホストマシンのローカルディスクにVirtual Diskを作成する(最も一般的な構成)
- ホストマシンのローカルディスクのパーティションをVMがPhysical Diskとして利用する
- NFSサーバ、iSCSIサーバなどが提供するパーティションをホストマシンがアタッチ(マウント)し、その中にVirtual Diskを作成する
- iSCSIサーバが提供するパーティションをホストマシンがアタッチし、そのディスクをVMがPhysical Diskとして利用する
1.と3.はVirtual Diskを利用するため、ディスクI/Oの操作自体のオーバーヘッドがあります。また、1.と2.はローカルドライブへのアクセスで済みますが、多数のホストマシンがある環境ではオペレーション自体の(人的)コストが大きくなり得ます。これに対し、3.と4.はネットワークごしのアクセスによるオーバーヘッドがありますが、ネットワークの高速化の恩恵を享受できますし、オペレーションコストは小さく抑えられます。また、ローカルのI/Oリソース競合による性能低下がリモートアクセスのオーバーヘッドによる性能低下を上回るという現象も、デスクトップPC環境の例を挙げるまでもなく、よく見かける現象だと言えます。
総合的に考えると、4.がそれなりにリーズナブルな解だと言えるでしょう。
さて、1.~3.の実現方法は比較的自明ですが、4.はそうでもありません。実際にやってみたら案外簡単にできてしまったので、ここではその方法について説明します。ちょっと長いので2,3回に分けて書きます。
はじめに
ここでは、VMware ServerのVirtual Machine(以降、VM)をiSCSI bootすることを考えます。
そもそもVMware ESX ServerではネイティブにVMのiSCSI bootに対応していますが、VMware Server、Workstation、Playerは対応していません。単体サーバで少数のVMをサービスしている従来の構成から考えれば、VMがiSCSI Initiatorになるというのが安直で自然な拡張と言えますが、ストレージの一部をストレージサーバ上にオフロードできてもブートイメージを含めてオフロードすることはできません。
しかし、ちょっとだけ見方を変えて、VMのホストマシン(VMware Serverの動作するマシン)がiSCSI Initiatorとして機能すれば、iSCSI bootに準じた構成を採ることができ、しかも直感的には思いがけず効率が良さそうな印象があります。印象が…というのは定性的な議論だけでは本当に効率が良いのかどうかは判別できないからです。
論より証拠、試してみました。
いろいろな構成があり得ますが、ここでは試しに、
- ストレージサーバ上のハードディスクのスライスもしくはLogical Volumeを切り出して、ソフトウェアiSCSI Targetを使ってiSCSIデバイスとしてサービスする
- VMware ServerホストはInitiatorとなり、iSCSIデバイスをローカルSCSIデバイスとしてアタッチする
- VMware Server上のVMはローカルSCSIデバイスをPhysical Diskとして利用する
という構成を考えます(下図参照)。
この構成の利点を挙げてみると、
- VMwareの使うストレージがストレージサーバ上で集中管理される。ストレージサーバのLVMの機能を使ってミラーリングやバックアップを行える。
- VMware ServerホストのディスクI/Oによるボトルネックが解消される。
- VMware ServerのVirtual Diskのオーバーヘッドがほとんどなくなる。
- VMのプロビジョニングが容易になる。例えば、負荷に応じて一方のVMware Serverホストから他方のホストにVMの動作イメージを移動するとか、LVMミラーリングで作られたLogical Volumeコピーを他のVMが利用するとか、いろいろ夢が広がる。
といった点になります。
もちろん、単体サーバでVMをサービスするのに比べて構成が複雑になるとか、民生用にはGigabit Ethernetしか使えないのでストレージネットワークとしての性能がしょぼいだとか、ストレージサーバの負荷はどうすんのとか、問題点もないわけではありません。そうした定性的な議論はさておき、単に面白そうというだけでもやってみる価値があります。
- 貧乏人のためのboot-from-SAN (1) 導入編 (このエントリー)
- 貧乏人のためのboot-from-SAN (2) iSCSI Target編
- 貧乏人のためのboot-from-SAN (3) iSCSI InitiatorとVM編
- 貧乏人のためのboot-from-SAN (4) 性能比較編 (気が向いたら書く予定のエントリー)
Comments and Trackbacks