Windows Server 2012以降のHyper-Vでは、「静的(固定)メモリ」または「動的メモリ」のどちらかで仮想マシンにメモリを割り当てることができます。静的メモリは、一定のサイズのメモリを仮想マシンに割り当て、仮想マシンの起動後はメモリサイズを変更できません。動的メモリは「スタートアップRAM」「最小RAM」「最大RAM」で構成し、スタートアップRAMで起動後は、最小RAMと最大RAMの間でゲストOSのメモリ要求やホストのリソース量に応じてメモリサイズが動的に自動調整されます。
Windows Server 2016およびWindows 10のHyper-Vでは、静的メモリ割り当ての実行中の仮想マシンに対して、メモリを「追加(ホットアド)」したり、「削除(ホットリムーブ)」したりできるようになります。この機能が、Linuxゲストでも部分的にサポートされるというわけです。“部分的”にと言ったのは、Linuxゲストでサポートされるのは、現状、メモリの「ホットアド」だけだからです。
次の画面4は、CentOS 7.1のビルトインのHyper-Vドライバ環境で、メモリのホットアドを実行してみたところです。ゲストOSが対応していないため、メモリのホットアドは失敗します。
次の画面5は、LIS 4.1がインストールされた、初期割り当てメモリが2048MBの仮想マシンに、さらに2048MBを追加して、合計4096MBに変更したところです。
今度は問題なくメモリのホットアドを実行できました。「free」コマンドの変化を見れば、ゲストOSでも、追加のメモリを認識できていることが分かります。
次の画面6は、4096MBまで割り当てたメモリから、2048MBを削除して、元の割り当てサイズに戻したところです。
Linuxゲストでは、「メモリのホットリムーブ」はサポートされません。ホットリムーブは実行され、Hyper-V側から見た割り当てサイズは2048MBに戻りました。しかし、Linuxゲスト側の「free」コマンドの結果を見ると、メモリサイズは減っていないことが分かります。
Linuxゲストは4096MBのメモリと認識していますが、実際には2048MBしか割り当てられていないため、Linuxゲストが2048MB以上のメモリを要求すると何らかの問題が発生するでしょう。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.