VMM での仮想 NUMA の展開
対象: System Center 2012 SP1 - Virtual Machine Manager、System Center 2012 R2 Virtual Machine Manager
System Center 2012 Service Pack 1 (SP1) より、Virtual Machine Manager (VMM) を使用して Hyper-V の Windows Server 2012 で導入された仮想 Non-Uniform Memory Access (NUMA) 機能を構成、展開、および管理できます。
NUMA は、特定のプロセッサからメモリにアクセスするための所要時間がプロセッサからのメモリ位置によって異なる、マルチプロセッサ システムで使用されるメモリ アーキテクチャです。 NUMA システムの場合、プロセッサはローカルでないメモリ (別のプロセッサに接続されているメモリ) よりも、ローカル メモリ (プロセッサに直接接続されているメモリ) の方が迅速にアクセスできます。 NUMA は、各プロセッサとその使用メモリの速度のギャップを縮めようとします。 このために NUMA はプロセッサごとに個別のメモリを提供し、したがって複数のプロセッサが同じメモリにアクセスしようとした場合に発生するパフォーマンスの劣化を回避することができます。 専用メモリの各ブロックのことを NUMA ノードといいます。
Windows Server 2012 からの Hyper-V の NUMA 機能
Windows Server 2012 より、Hyper-V は最大 320 の論理プロセッサを持つホスト システムでの実行をサポートします。 バーチャル マシンに構成できる仮想プロセッサの数は、物理コンピューターに搭載されているプロセッサの数によって異なります。 たとえば、最大 64 の仮想プロセッサをもつバーチャル マシンを構成するには、64 以上の論理プロセッサをもつ仮想化ホスト上で Hyper-V を実行しなければなりません。 このスケーラビリティをサポートするため、Windows Server 2012 より、Hyper-V はバーチャル マシン用の NUMA 風の環境である仮想 NUMA 機能を提供します。 仮想プロセッサとゲスト メモリが仮想 NUMA ノードにグループ化され、バーチャル マシンが基礎となる物理トポロジに基づいてゲスト オペレーティング システムにトポロジを提示します。
既定では、バーチャル マシンの作成時に Hyper-V が基礎となる物理トポロジを検査し、論理プロセッサの数や NUMA ノード 1 つあたりのメモリ容量といった各種の要因に基づき最適な設定を用いて仮想 NUMA トポロジを自動構成します。
仮想 NUMA では、物理 NUMA ハードウェアを搭載した仮想化されていないコンピューターを実行する場合と比べ、仮想環境においてパフォーマンスをあまり損なわずに実行できる、より大規模でミッションクリティカルなワークロードを展開することが可能です。 新しいバーチャル マシンを作成すると、Hyper-V は既定で Hyper-V のホスト NUMA トポロジと同期されているゲスト設定の値を使用します。 たとえば、ホストに 16 のコアと 64 GB があり、これが各物理プロセッサ ソケットあたり 2 つの NUMA ノードに均等に配分されているとします。その場合、16 の仮想プロセッサをもつホスト上に作成したバーチャル マシンでは、ノードあたりの最大プロセッサ数が 8、ソケットあたりの最大ノード数が 2、そしてノードあたりの最大メモリが 32 GB に設定されます。
また、NUMA のまたがりメモリ割り当ては有効にしたり無効にすることができます。 またがりメモリ割り当てを有効にすると、個々の仮想 NUMA ノードがローカルでないメモリを割り当てることができ、管理者は仮想 NUMA あたりの仮想プロセッサ数が、Hyper-V ホスト上の基礎となるハードウェア NUMA ノードで使用できるプロセッサの数よりも多いバーチャル マシンを展開できるようになります。 バーチャル マシンに NUMA のまたがりメモリ割り当てを使用すると、バーチャル マシンがローカルでない NUMA ノード上のメモリにアクセスするため、パフォーマンスは低下します。
仮想 NUMA の構成方法の詳細については、「VMM で仮想 NUMA を構成する方法」を参照してください。