免責事項: これは英文の記事「Cannot set 100% CPU reservation using the nominal CPU frequency when the VM is powered on in vSphere 8.0 (433579)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
vSphere 8.0 環境において、仮想マシンの 100% CPU 予約を構成する際、以下の事象が発生する場合があります。
仮想マシンがパワーオフ状態の場合、CPU のカタログ公表値(例:2200 MHz)を使用した 100% CPU 予約の設定が成功する。
仮想マシンがパワーオン状態の場合、同じ公表値を使用して 100% CPU 予約を設定または変更しようとすると、InsufficientPerCpuCapacity などのエラーで失敗する。
VMware vSphere 8.0
実際のハードウェア CPU クロック周波数(実測値)は、公開されているカタログ公表値よりもわずかに低い場合があります(例:公表値 2200 MHz に対し、実測値が 2195 MHz など)。
設計上、システムにはこの微小な差異を吸収するための「許容バッファ(tolerance buffer)」が含まれており、本来は公表値を使用した 100% 予約の構成が許可されるようになっています。しかし、現行の vSphere 8.0 リリースには、オンラインでの再構成(仮想マシンのパワーオン中)において、この許容バッファが適用されないという既知の制限事項があります。その結果、実測された物理的な限界値を超える 100% 予約の要求は厳密に拒否されます。
vSphere 8.0 をご利用の場合は、以下のいずれかの回避策を実施してください。
回避策 1 CPU 予約をフル(100%)で構成する前に、仮想マシンをパワーオフしてください。パワーオフ状態で設定を行うことで、100% 予約の設定が成功し、その後仮想マシンは正常にパワーオンできます。
回避策 2 仮想マシンをパワーオンした状態のままフル予約を構成する必要がある場合は、ホストの実際の CPU 実測値を確認し、予約値がその値を上回らないように設定してください。
対象の ESXi ホストに SSH で接続します。
次のコマンドを実行して、実測された Core Speed の値を確認します: esxcli hardware cpu list
Core Speed を Hz から MHz に変換し(1,000,000 で割る)、仮想マシンの CPU 予約値を、この実測限界値以下の値(例:2195 MHz)に設定します。
この問題は、vSphere 9.0 リリースにて解決されています。
vSphere 9.0 以降では、パワーオン状態での再構成時にも許容バッファが正しく適用され、カタログ公表値を使用して 100% CPU 予約を設定できるようになっています。