仮想デバイスの実現には大きく分けて2通りのアプローチがある。1つは物理デバイスと全く同一のデバイスをソフトウェアで仮想的に構築する「完全仮想化」と呼ばれる方法である。もう1つの方法として、ゲストOS内のデバイスドライバ側にも専用のコードを入れて実現する「準仮想化」と呼ばれる方法がある。
完全仮想化で実装された仮想デバイスは、ゲストOSからは物理デバイスと全く同一に見えるため、OSベンダやデバイスベンダから提供されている一般のデバイスドライバに手を加えることなく、そのまま利用することができる。一方で処理の効率性という面では、完全仮想化を実現するためのさまざまなコードが実行されるため、比較的CPU資源を消費する。
準仮想化で実装された仮想デバイスは、専用のデバイスドライバをゲストOS内にインストールする必要がある。一方で、仮想化を前提とした専用設計にすることができるため、処理効率という面では有利になる。
VMwareではこれまでにもさまざまな準仮想化デバイスとそのデバイスドライバを提供してきた。例えばVMXNETと呼ばれる仮想ネットワークアダプタや、仮想VGAアダプタなどが準仮想化デバイスである。これらはVMware Toolsをインストールすると専用のドライバが導入され、高速で効率的な処理ができるようになる。
仮想SCSIコントローラに関しては、これまでは全て完全仮想化デバイスを提供してきた。LSI LogicもしくはBus LogicのSCSIコントローラが仮想デバイスとして構成され、ゲストOS側より提供されるデバイスドライバを利用していた。vSphere 4では仮想SCSIコントローラに関しても準仮想化デバイスが提供されるようになった。VMware PVSCSI Controllerと呼ばれる仮想デバイスである。これを用いることで、ディスクI/Oの処理をより効率的にハンドルすることが可能となった。
PVSCSIは起動デバイスとして用いることはできない。従って、起動ディスクは従来通り完全仮想化のSCSIコントローラを用いる方法で構成し、データディスク部分に対してPVSCSIコントローラを利用するよう構成する。サポートされているゲストOSは、本稿執筆時点では以下の3種類となっている。
PVSCSI機能を利用している仮想マシンはRecord/Replay機能、Fault Tolerance機能が利用できない。またMSCSを構成できないという制約があるため注意が必要だ。
それでは実際にPVSCSIコントローラの構成を行なってみよう。ここではすでに構築済みのWindows Server 2003の仮想マシンにPVSCSIを用いたデータディスクを追加する手順を紹介する。先述の通り、起動ディスクはPVSCSIコントローラを用いることができないため、デフォルトのLSI Logic SCSIコントローラで構成している。仮想マシンのプロパティにて、データディスク用ハードディスクの追加を行なうが、このとき仮想デバイスノードとしてscsi(1:0)?scsi(3:15)のいずれかを選ぶようにする。これは、scsi(0:N)を選択してしまうと、起動用ディスクが接続されているSCSIコントローラに仮想ディスクが追加構成されてしまうためである。scsi(1:0)?scsi(3:15)を指定すると、別のコントローラが構成され、そこに仮想ディスクが接続される。
新規に仮想SCSIコントローラと仮想ディスクが作成されるが、このまま作成してしまうとデフォルトの完全仮想化によるSCSIコントローラで作成されてしまう。ここではPVSCSIコントローラを利用したいため、新規に作成されるSCSIコントローラを選択し、「タイプの変更」を選択する。
SCSIコントローラのタイプを変更するダイアログウィンドウが起動するため、ここでSCSIコントローラタイプとして「VMware準仮想化」を選択する。
新規作成されるSCSIコントローラのタイプが「準仮想化」になったことを確認後、「OK」を選択して実際に仮想マシンの構成変更を行う。
仮想マシンの構成変更が完了したら、仮想マシンをパワーオンして内容を確認してみよう。VMware Toolsがインストール済の環境であれば、VMware PVSCSI Controllerとして自動的に認識され、利用可能となっているはずだ。
このように、比較的簡単な操作で準仮想化SCSIコントローラの構成を行うことができる。現時点ではPVSCSIの利用がサポートされているゲストOSは3種類しかないため全ての用途に対応できるわけではないが、ディスクI/Oの負荷が比較的高いマシンを仮想化する場合は利用を検討してみるといいだろう。
ストレージアレイ装置はさまざまな機能を提供しているが、オンライン状態でのLUNサイズの動的拡大機能を持つ機種も最近は多くなってきた。vSphere 4環境ではVMFSと呼ばれるファイルシステムが用いられるが、ストレージのLUNの拡大機能を利用した場合は、その後VMFSそのもののサイズを拡大する必要がある。これを行うのがVMFS Volume Growである。
複数のLUNもしくはパーティションを連結して単一のVMFSにする機能はVMware Infrastructure 3より提供されていたが、単一エクステントのままVMFSを拡大する機能はvSphere 4の新機能として提供されるようになった。これにより、エクステントの数を増加させることなくファイルシステムの動的な拡大が可能になった。
それでは実際の操作手順を紹介しよう。例として以下の40GBのVMFSデータストアを用いることにする。現在このボリュームは40GBのLUN全体を単一のパーティションとしてVMFSを構成している。
まずストレージアレイ装置側の機能を用いて該当のLUNを拡大する。ここでは20GB追加して合計60GBのLUNに再構成している。
次に、vSphere 4側でVMFS Volume Growを実行してファイルシステム側の容量を拡大する。データストアのプロパティを選択し、「拡大」を選択する。
他のLUNと連結して容量を拡大することもできるが、今回は同一LUN上で、単一エクステントのまま拡大する処理を行いたい。これには現在利用しているLUNをエクステントデバイスとして選択する。
現在のディスクレイアウトの確認、追加する容量の指定を行うと、最後に拡張完了後のディスクレイアウトが表示される。内容を確認し、問題ない場合は「終了」を選択する。
VMFS Volume Grow処理が実行される。無事に完了すれば、データストアが拡大されたことを確認できるはずだ。
VMFS Volume Growは、そのVMFS上で仮想マシンが動作中であっても利用できる。ストレージ装置側のLUN動的拡張の機能と組み合わせることで、サービスを止めることなくストレージ資源の拡大を行うことができる。
Copyright © ITmedia, Inc. All Rights Reserved.