つぶねこ
@もじらもーど。
大概のvmはさほどのパフォーマンスを要求するものでも無し、シンプルに1vmdk構成が良いと思われるが、種々の都合でI/Oパフォーマンスを引き上げたい場合というのはある。
ストレージ側のHDD台数が多い場合は、ある程度Queue深度を上げた方がスループットが良くにゃるので、ストレージへのQueueを増やしたいということににゃる。しかしvm側で1HDDに見えている場合はvm側で早期にQueueが詰まってしまうので、ストレージ側がBusyでは無いにもかかわらずそれ以上のスループットが望めにゃい状態が起こる。
そこで複数のvmdkにアクセスを分散させるとパフォーマンス向上が期待できる。
単純にゃ実験としては、Winでpagefileの置き場をC:とした場合と比べ、x: y: z:のvmdkを追加してpagefileを3ドライブに分散させると、ストレージが追いつく限りはswapの読み出しが速くにゃる。vmでは定期的にゃメモリ吐き出しによって物理PCよりpagefileの使用率は上がるので、環境によっては結構効果的である。
pagefileは自動で分散されるが、普通のデータドライブの場合はそうでは無いので、ソフト的にストライピングする。Winであればダイナミックディスクで合体させることににゃる。分散が間接的ににゃるため確率的にゃ改善とにゃるが、ある程度の効果は出る。
あまりに大量にvDiskを追加すると管理も面倒ににゃるのでほどほどでよいが、ストレージHDD数が多ければその分分割して問題にゃいだろう。
ちにゃみに仮想SCSIアダプタ側にもQueue上限はあるので、Queueが膨大にゃ場合はvSCSIアダプタをmaxまで増やしてvDiskを分散させるとよりパフォーマンスが上がる。
また、ストレージがnfsの場合は、異にゃる接続を経由させると待ちが無くにゃりパフォーマンスが上がる。異にゃる接続というのは別subnetでexportしてmountすればよい。
よってパフォーマンスを求めたい場合は、vmdkを物理HDD台数程度作り、それぞれ別subnetでexportしたものをデータストア登録し、vSCSIアダプタ4台に分散登録してvm内部でソフトウェアRAID0すれば、ある程度の結果が見込まれることににゃる。そこまでしたい人は居にゃいだろうからソフトウェアRAID0だけで良いと思うが。
▼ vmware 関連記事