環境のチューニング
VMwareによると、「VMware vSphere」は汎用的なワークロードを念頭に置いてチューニングされているという。筆者の経験に照らし合わせてみても、それは概ね正しいと言える。従って、仮想化されたワークロードのパフォーマンスが思うように出ないという場合、最初にゲストとVMホストの双方のチューニングを見直してほしい。よくある間違いが、I/Oサブシステムの設定ミスだ。このためまず、VMホスト上とゲストOS上の双方でストレージとネットワークに関する設定を見直すべきだ。
ゲストOSのI/O設定では常にベストプラクティスに従ってほしい。以下は、VMwareにおけるベストプラクティスとともに、筆者のお勧めを挙げたものだ。
- 「VMXNET3」ドライバがVMのゲスト上で使用されていることを確認する。
- 「VMware Tools」の最新版をインストールしておく。
- 不要なサービスを無効化しておく
- ホスト全体および個別VMにおけるウイルス保護機能を活用する。
- ストレージのマルチパスに関する設定を見直し、機能していることを確認する。
これらの確認により、ほとんどのワークロードのパフォーマンスが最適化される。しかし、より複雑なシステムにはさらなる最適化が必要だ。一般的には高パフォーマンスコンピューティング(HPC)やビッグデータ関連のアプリケーションに関する仮想化の場合、パフォーマンスの問題に直面する。
仮想化の代償
仮想化のメリットが何の代償も無く得られるという漠然とした考えを抱いてしまうのは非現実的だ。ハイパーバイザというレイヤによって、CPUとI/Oトランザクションの双方でレイテンシが発生する。そして、アプリケーションによるパフォーマンス要求が厳しいほど、レイテンシの影響は無視できなくなる。
VMwareはこういったハイパーバイザのオーバーヘッドによる影響を緩和するための先進的な最適化ツールを提供している。これらのツールはVMware vSphereの各バージョンで改善が進められてきている。なお、ほとんどの最適化は、物理的なサブシステムをゲストOSから使えるようにする形態となっている。
リモートダイレクトメモリアクセス(RDMA)は、物理ハードウェアから直接、VMにアクセスを提供するというものだ。VMwareは以下の3種類のRDMA技術を提供している。
- 「DirectPath I/O」(「VMware vSphere 4.0」以降でサポート)
- 「SR-IOV」(「VMware vSphere 5.1」以降でサポート)
- 「vRDMA」(VMware vSphereの将来版でサポートの予定)
ここで3つの最適化の1つを例にとって見てみよう。DirectPath I/OはIntelの「VT-d」やAMDの「AMD-Vi」における仮想化拡張機能の利点を生かすものだ。ネットワークにおけるDirectPath I/Oによって、サーバのネットワークインターフェースカード(NIC)への直接アクセスが可能になる。直接アクセスにより、ハイエンドNICが搭載している先進的なパケットオフロード機能をVMが活用できるわけだ。VMwareは、大量のトラフィックを扱うウェブサーバでのパフォーマンステストにおいて、DirectPath I/Oを有効化すると、従来の仮想化NICに比べてCPU当たり15%多くのユーザーを扱えると実証してみせた。
しかし、直接アクセスの最適化には代償がある。仮想マシンに対するネットワークのDirectPath I/Oを有効化すると、「vMotion」といったVMware vSphereの先進的な機能を利用できなくなるのだ。VMwareは現在、機能を犠牲にすることなくハードウェアへの直接アクセスを可能にするようなテクノロジを開発しているところだ。
まとめ
複雑なワークロードは、データセンター内における100%の仮想化を達成するという野望の行く手を阻む難関となり得る。VMwareは最も要求の多いワークロードで善戦しているものの、ある種のワークロードの仮想化はまだ非現実的なのかもしれない。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。