18.5.3.2. 仮想マシンでのメモリーのオンライン化設定
virtio-mem を使用して実行中の仮想マシンにメモリーを接続する (メモリーのホットプラグとも呼ばれます) 前に、ホットプラグされたメモリーが自動的にオンライン状態に設定されるように仮想マシン (VM) オペレーティングシステムを設定する必要があります。そうしないと、ゲストオペレーティングシステムは追加メモリーを使用できなくなります。メモリーのオンライン化については、次のいずれかの設定から選択できます。
-
online_movable -
online_kernel -
auto-movable
これらの設定の違いについては、メモリーのオンライン化設定の比較 を参照してください。
RHEL では、メモリーのオンライン化はデフォルトで udev ルールで設定されます。ただし、virtio-mem を使用する場合は、カーネル内でメモリーのオンライン化を直接設定することを推奨します。
前提条件
- ホストは Intel 64、AMD64、ARM 64、または IBM Z CPU アーキテクチャーを使用している。
ホストは、以下のいずれかのオペレーティングシステムバージョンを使用します。
- Intel 64 ホストおよび AMD64 ホスト - RHEL 9.4 以降
- ARM 64 ホストの場合:RHEL 9.6 以降
- IBM Z ホストの場合:RHEL 9.7 以降
ホスト上で実行されている仮想マシンが、次のいずれかのオペレーティングシステムバージョンを使用している。
Intel 64 ホストおよび AMD64 ホスト - RHEL 8.10、RHEL 9.4 以降、または RHEL 10.0 以降
重要RHEL 8.10 仮想マシンでは、実行中の仮想マシンからメモリーをアンプラグすることはデフォルトで無効になっています。
- ARM 64 ホストの場合:RHEL 9.6 以降または RHEL 10.0 以降
- IBM Z ホストの場合:RHEL 9.7 以降または RHEL 10.1 以降
手順
仮想マシンで
online_movable設定を使用するようにメモリーオンライン化を設定するには、以下を実行します。memhp_default_stateカーネルコマンドラインパラメーターをonline_movableに設定します。# grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online_movable- 仮想マシンを再起動します。
仮想マシンで
online_kernel設定を使用するようにメモリーオンライン化を設定するには、以下を実行します。以下のように、
memhp_default_stateカーネルコマンドラインパラメーターをonline_kernelに設定します。# grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online_kernel- 仮想マシンを再起動します。
仮想マシンで
auto-movableメモリーオンライン化ポリシーを使用するには、以下の手順を実行します。memhp_default_stateカーネルコマンドラインパラメーターをonlineに設定します。# grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=onlinememory_hotplug.online_policyカーネルコマンドラインパラメーターをauto-movableに設定します。# grubby --update-kernel=ALL --remove-args="memory_hotplug.online_policy" --args=memory_hotplug.online_policy=auto-movableオプション:
auto-movableオンライン化ポリシーをさらにチューニングするには、memory_hotplug.auto_movable_ratioおよびmemory_hotplug.auto_movable_numa_awareパラメーターを変更します。# grubby --update-kernel=ALL --remove-args="memory_hotplug.auto_movable_ratio" --args=memory_hotplug.auto_movable_ratio=<percentage> # grubby --update-kernel=ALL --remove-args="memory_hotplug.memory_auto_movable_numa_aware" --args=memory_hotplug.auto_movable_numa_aware=<y/n>-
memory_hotplug.auto_movable_ratio parameterは、任意の割り当てに使用できるメモリーと比較すると、移動可能な割り当てにのみ使用できるメモリーの最大比率を設定します。比率はパーセントで表され、デフォルト値は 3:1 の比率である 301 (%) です。 memory_hotplug.auto_movable_numa_awareパラメーターは、memory_hotplug.auto_movable_ratioパラメーターを使用可能なすべての NUMA ノードのメモリーに適用するか、単一の NUMA ノード内のメモリーのみに適用するかを制御します。デフォルト値は y (yes) です。たとえば、最大比率を 301% に設定し、
memory_hotplug.auto_movable_numa_awareが y (yes) に設定されている場合は、アタッチされたvirtio-memデバイスを持つ NUMA ノード内でも 3:1 の比率が適用されます。パラメーターが n (no) に設定されている場合、最大 3:1 の比率はすべての NUMA ノード全体に対してのみ適用されます。また、比率を超えていない場合、新しくホットプラグされたメモリーは、移動可能な割り当てに対してのみ利用できます。それ以外の場合では、新しくホットプラグされたメモリーは、移動可能な割り当てと移動不可能な割り当ての両方に使用できます。
-
- 仮想マシンを再起動します。
検証
online_movable設定が正しく設定されているかを確認するには、memhp_default_stateカーネルパラメーターの現在の値を確認します。# cat /sys/devices/system/memory/auto_online_blocks online_movableonline_kernel設定が正しく設定されているかを確認するには、memhp_default_stateカーネルパラメーターの現在の値を確認します。# cat /sys/devices/system/memory/auto_online_blocks online_kernelauto-movable設定が正しく設定されているかを確認するには、以下のカーネルパラメーターを確認してください。memhp_default_state:# cat /sys/devices/system/memory/auto_online_blocks onlinememory_hotplug.online_policy:# cat /sys/module/memory_hotplug/parameters/online_policy auto-movablememory_hotplug.auto_movable_ratio:# cat /sys/module/memory_hotplug/parameters/auto_movable_ratio 301memory_hotplug.auto_movable_numa_aware:# cat /sys/module/memory_hotplug/parameters/auto_movable_numa_aware y