KVM
- https://www.redhat.com/ja/topics/virtualization/what-is-KVM
- https://www.kagoya.jp/howto/rentalserver/linuxkvm/
目次
KVMとは
- KVM (Kernel-based Virtual Machine)は、Linuxに組み込まれたオープンソースの仮想化テクノロジー
- 具体的には、KVM を使用すると、Linux をハイパーバイザーすることができる
- これによりホストマシンは、ゲストや仮想マシンと呼ばれる複数の独立した仮想化環境を稼働させることができる。
- KVM は Linux の一部です。Linux 2.6.20 以降、KVM が搭載されている
QEMUとは
- QEMUとは仮想マシン・エミュレータと呼ばれ、KVMなどの仮想マシンとともに利用する場合がある。
- KVMとの組み合わせにより、それぞれが得意な役割を担うことで、処理速度が向上するなどメリットが生まれる。
- 具体的には、KVMは仮想CPUを提供する一方、QEMUはメモリや仮想I/Oデバイスを提供。
Ubuntuをホストとしてインストール
ハードウェアの仮想化チェック
- $ egrep -c '(vmx|svm)' /proc/cpuinfo
- 0 : ハードウェア仮想化未サポート
- 1:以上サポートされているが、有効化の確認が必要
- $ lscpu
- アーキテクチャ: x86_64
- CPU 操作モード: 32-bit, 64-bit
- バイト順序: Little Endian
- Address sizes: 36 bits physical, 48 bits virtual
- CPU: 4
- オンラインになっている CPU のリスト: 0-3
- コアあたりのスレッド数: 2
- ソケットあたりのコア数: 2
- ソケット数: 1
- NUMA ノード数: 1
- ベンダー ID: GenuineIntel
- CPU ファミリー: 6
- モデル: 42
- モデル名: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
- ステッピング: 7
- CPU MHz: 799.076
- CPU 最大 MHz: 3200.0000
- CPU 最小 MHz: 800.0000
- BogoMIPS: 4993.70
- 仮想化: VT-x
- L1d キャッシュ: 64 KiB
- L1i キャッシュ: 64 KiB
- L2 キャッシュ: 512 KiB
- L3 キャッシュ: 3 MiB
- NUMA ノード 0 CPU: 0-3
- Vulnerability Itlb multihit: KVM: Mitigation: Split huge pages
- Vulnerability L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
- Vulnerability Mds: Mitigation; Clear CPU buffers; SMT vulnerable
- Vulnerability Meltdown: Mitigation; PTI
- Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
- Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
- Vulnerability Spectre v2: Mitigation; Full generic retpoline, IBPB conditional, IBRS_FW, STIBP conditional, R
- SB filling
- Vulnerability Srbds: Not affected
- Vulnerability Tsx async abort: Not affected
- フラグ: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
- acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pe
- bs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_
- cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadl
- ine_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpr
- iority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
必要パッケージのインストール
- 18.10 以降
- $ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
ユーザーをグループに追加
- $ sudo adduser `id -un` libvirt
- ユーザー `piroto' をグループ `libvirt' に追加しています...
- ユーザ piroto をグループ libvirt に追加
- 完了。
- $ sudo adduser `id -un` kvm
- ユーザー `piroto' をグループ `kvm' に追加しています...
- ユーザ piroto をグループ kvm に追加
- 完了。
インストールの検証
- インストールが成功したか以下のコマンドで確認
- $ virsh list --all
- Id Name State
- --------------------
- sock ファイルのパーミッションは以下
- $ sudo ls -la /var/run/libvirt/libvirt-sock
- srwxrwx--- 1 root libvirt 0 8月 20 22:40 /var/run/libvirt/libvirt-sock
- 仮想マシンのインストールで問題を感じたらオーナーを以下にしてみる
- $ sudo chown root:libvirt /dev/kvm
© 2006 矢木浩人