VMware仮想マシンの高速化:Virtual NVMeへの移行でSSDの真の力を引き出す

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

午前2時のディスクレイテンシの悪夢

午前2時、スマートフォンが激しく振動した。Zabbixのモニタリングシステムが赤色の警告を発している。データベースサーバーのDisk I/O Latencyが500msという閾値に達していた。物理サーバーがSamsung PM1733 NVMe Enterpriseを搭載していることを考えると、あり得ない数字だ。

SSHで確認したところ、仮想マシン(VM)がいまだに**LSI Logic SAS**コントローラーを使用していることが判明した。これは、互換性を維持するための古いVMwareのデフォルト設定だ。モダンなアプリケーションにおいて、この「ボトルネック」は仮想マシンの「重い」動作の原因となり、SSDハードウェアの性能を著しく制限してしまう。

**Virtual NVMe (vNVMe)**への移行は、物理ディスクへの「直接アクセス」を検討するのと同様に、物理SSDのパワーを最大限に活用するための最短ルートだ。追加コストなしで、劇的な速度向上を実感できるだろう。

なぜLSI Logic SASやSATAでは不十分なのか?

VM作成時に「次へ」を連打する習慣のせいで、図らずも古い規格に縛られてしまうことがある。問題は技術的な限界にある:

  • LSI Logic SAS: HDD(磁気ディスク)向けに設計されている。データ処理時に大きなソフトウェアオーバーヘッドが発生する。
  • SATA: コマンドキューの深さ(Queue Depth)が32に制限されている。
  • Virtual NVMe: 最大64kのキューをサポート。各キューで同時に64kのコマンドを処理可能。I/OタスクあたりのCPUサイクルを削減できる。

本物のNVMe SSDを使用しながらSCSIをエミュレートしているなら、実際のパフォーマンスの20〜30%を無駄にしていることになる。これはデータストア整理で容量を最適化しても解決できない問題だ。例えば、NVMe単体で500,000 IOPS出せるとしても、古いコントローラー経由では350,000 IOPS程度に落ち込んでしまう。

vNVMeアップグレードの前提条件

すぐに変更してはいけない。ブルースクリーン(BSOD)を避けるために、以下のチェックリストを確認してほしい:

  1. ハードウェアバージョン: 仮想マシンがバージョン13以上であること(ESXi 6.5またはVMware Workstation 14以降に相当)。
  2. オペレーティングシステム: Windows 8.1またはWindows Server 2012 R2以降。Linuxの場合、カーネル3.3以上(Ubuntu 20.04+、CentOS 7+は標準対応)。
  3. バックアップ: 実行前に必ず仮想マシンのスナップショットを取得すること。些細なミスで、当直の夜がOS再インストールの惨劇に変わらないように。

Windowsでの安全な移行方法

設定から直接コントローラーを変更すると、Windowsは「Inaccessible Boot Device」エラーで起動しなくなる。これはブートプロセスにNVMeドライバがロードされていないためだ。以下の「ドライバの先行読み込み」テクニックを使用しよう。

ステップ1:ダミーのNVMeディスクを追加する

  1. 仮想マシンを完全にシャットダウンする。
  2. 設定の編集から、新しいデバイスとして**NVMeコントローラー**を追加する。
  3. 新しいハードディスク(1GB程度)を追加し、作成したNVMeコントローラーに割り当てる。
  4. Windowsを通常通り起動する。

Share: