こ の記事はopenSUSE Advent Calendar 2022 8日目の記事です。
virtio-mem とは
virtio-memとは、ゲスト(仮想マシン )のメモリ提供手段の一つです。
Overview
A virtio-mem device manages a memory region in the the guest physical address space of a virtual machine and provides a dynamic amount of memory via this memory region to the virtual machine.
https://virtio-mem.gitlab.io/user-guide/
従来のメモリ管理の方法として virtio balloon memory がありましたが、virtio-memには ゲストに割り当てたメモリを、ゲストの起動中に縮小できる という特徴があります。
なお現在 Tech-preview 扱いのため、本番環境での使用は推奨されていません。念のため。
動作要件
ネスト環境で virtio-mem は正常に動作しないため、L2ゲストに virtio-mem は使用できません。
またメモリを動的に縮小・完全に取り外し可能であるというvirtio-memの性質上、virtio-mem とは別に初期メモリの領域をゲストに割り当てる必要があります。
virtio-mem は新しい実装のため、qemu5.1.0-rc1 以降、libvirtv7.9.0-rc1 以降の環境が必要です。
注意点として、ゲストOSはLinux のみ、かつ kernel 5.8-rc1 以降のみ対応しています。
また対応アーキテクチャ は現時点で x64・aarch64のみです。
メジャーどころでは openSUSE Leap 15.4 や Fedora 36/37、RHEL 9.0/9.1 が上記の環境を備えています。
今回は openSUSE Leap 15.4 で構築したKVM ホスト上で検証を行います。
検証環境:
GIGABYTE MZ32-AR0
- AMD EPYC 7401P / DDR4 256GB / PM1725(HHHL) 3.2TB
openSUSE Leap 15.4
- kernel : 5.14.21-150400.24.11
- qemu : 6.2.0-150400.37.5.3
- libvirt : 8.0.0-150400.5.8
現在の手元環境たち。機会があればそのうちまとめたい。
続きを読む