備忘録
■KVM(Kernel-Base Virtual Machine)
LinuxをType1のハイパーバイザーとして機能させる技術
・Linuxカーネルに組み込まれた仮想化技術
・CPU仮想化技術(Intel VT-x/AMD-V)と、PCエミュレータ(QEMU)を合わせて使用
■ハイパーバイザーの種類
Type1ハイパーバイザー
・ハードウェア上で直接動作(早い)
・KVM、Microsoft Hyper-V、VMware vSphere等
Type2ハイパーバイザー(ホスト型)
・OS上でアプリケーションとして動作(遅い)
・Oracle VirtualBox、Broadcom Fusion、VMware Workstation Player等
※CPU仮想化支援機能は、仮想CPU上では、実CPUと動作を変えるべき命令(=センシティプ命令)をTrapする仕組み。センシティプ命令以外は、実CPUで動作させれば良いので、高速に動作させる事ができる。
例:CPUID命令、デバイスIO
■仮想マシン一覧
稼働中の仮想マシン一覧
virsh list
#virsh list
Id 名前 状態
---------------------------
7 EVE-NG_10 実行中
全ての仮想マシン一覧(停止中を含む)
virsh list --all
#virsh list --all
Id 名前 状態
---------------------------
7 EVE-NG_10 実行中
- ACI6.03 シャットオフ
■仮想マシンの起動と停止
仮想マシンの起動
virsh start <VM_NAME>
# virsh start EVE-NG_10
ドメイン 'EVE-NG_10' が開始しました
仮想マシンのシャットダウン
virsh shutdown <VM_NAME>
# virsh shutdown EVE-NG_10
ドメイン 'EVE-NG_10' はシャットダウンされています
仮想マシンの強制停止
virsh destroy <VM_NAME>
virsh destroy EVE-NG_10
ドメイン 'EVE-NG_10' 破壊されました
■仮想マシンの詳細確認
仮想マシンの情報表示
virsh dominfo <VM_NAME>
# virsh dominfo EVE-NG_10
Id: 12
名前: EVE-NG_10
UUID: 25075ad4-87e9-49a1-8754-c5ad97ac9f7a
OS タイプ: hvm
状態: 実行中
CPU: 8
CPU 時間: 37.2s
最大メモリー: 33554432 KiB
使用メモリー: 33554432 KiB
永続: はい (yes)
自動起動: 無効にする
管理保存: いいえ (no)
セキュリティモデル: selinux
セキュリティ DOI: 0
セキュリティラベル: system_u:system_r:svirt_t:s0:c715,c1016 (permissive)
ネットワークインターフェースの情報表示
virsh domiflist <VM_NAME>
#virsh domiflist EVE-NG_10
インターフェイス 種類 ソース モデル MAC
----------------------------------------------------------------------
vnet11 network EVE-NG-NW virtio 52:54:00:8f:6a:08
■仮想マシンの作成や削除
XMLファイルを使って仮想マシンを定義
virsh define <XML_FILE>
#virsh define EVE-NG_11.xml
ドメイン 'EVE-NG_11' が EVE-NG_11.xml から定義されました
virsh autostart <VM_NAME>
#virsh autostart EVE-NG_11
ドメイン 'EVE-NG_11' は自動起動としてマークされています
仮想マシンの削除(設定も含めて削除)
virsh undefine <VM_NAME>
#virsh undefine EVE-NG_11
ドメイン 'EVE-NG_11' の定義が削除されました
■仮想マシンのスナップショット管理
スナップショット作成
virsh snapshot-create-as <VM_NAME> <SNAPSHOT_NAME>
#virsh snapshot-create-as EVE-NG_10 snap_1
ドメインのスナップショット snap_1 が作成されました
スナップショット一覧
virsh snapshot-list <VM_NAME>
# virsh snapshot-list EVE-NG_10
名前 作成時間 状態
-----------------------------------------------
snap_1 2024-11-24 09:23:01 +0900 running
スナップショットに戻す
virsh snapshot-revert <VM_NAME> <SNAPSHOT_NAME>
#virsh snapshot-revert EVE-NG_10 snap_1
ドメインスナップショット snap_1 が復元されました
スナップショット削除
virsh snapshot-delete <VM_NAME> --current
#virsh snapshot-delete EVE-NG_10 --current
ドメインのスナップショット snap_1 が削除されました
■管理
GUIで管理
virt-manager
Cockpitで管理
https://localhost:9090/
仮想マシンのリソース使用状況の確認
virt-top
■仮想マシンへの接続
仮想マシンのGUI接続
virt-viewer <VM_NAME>
仮想マシンのコンソール接続
virsh console <VM_NAME>
※ (Ctrl + ])で終了
事前に仮想マシンのシリアル接続の設定が必要
sudo systemctl enable serial-getty@ttyS0.service
reboot
ディフォルトでは、VNCで1ポート使用してしまう。使用するポート番号は、/etc/libvirt/qemu.confのremote_display_port_min項目で指定する。また、VNC使用しない方法は、graphics項目を削除する。
#virsh edit EVE-NG_10
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
# virsh console EVE-NG_10
ドメイン 'EVE-NG_10' に接続しました
エスケープ文字は ^] です (Ctrl + ])
eve-ng login:
■仮想マシンのネットワーク管理
ネットワーク一覧
virsh net-list --all
# virsh net-list --all
名前 状態 自動起動 永続
--------------------------------------------------
ACI 停止状態 いいえ (no) はい (yes)
default 動作中 はい (yes) はい (yes)
EVE-NG-NW 動作中 はい (yes) はい (yes)
ネットワークの作成
virsh net-define <NETWORK_XML>
#virsh net-define EVE-NG-NW.xml
ネットワーク EVE-NG-NW が EVE-NG-NW.xml から定義されました
ネットワークの自動起動の設定
virsh net-autostart <NETWORK_NAME>
#virsh net-autostart EVE-NG-NW
ネットワーク EVE-NG-NW が自動起動に設定されました
ネットワークの起動
virsh net-start <NETWORK_NAME>
#virsh net-start EVE-NG-NW
ネットワーク EVE-NG-NW が起動されました
ネットワークの停止
virsh net-destroy <NETWORK_NAME>
#virsh net-destroy EVE-NG-NW
ネットワーク EVE-NG-NW は強制停止されました
ネットワークの削除
virsh net-undefine <NETWORK_NAME>
virsh net-undefine EVE-NG-NW
ネットワーク EVE-NG-NW の定義が削除されました
ネットワークのDHCPリリース状況
virsh net-dhcp-leases <NETWORK_NAME>
#virsh net-dhcp-leases EVE-NG-NW
有効期限 MAC アドレス プロトコル IP アドレス ホスト名 クライアント ID または DUID
-------------------------------------------------------------------------------------------------------------------------------------------------
2024-11-24 10:38:57 52:54:00:8f:6a:08 ipv4 192.168.56.10/24 eve-ng ff:00:8f:6a:08:00:01:00:01:2e:d4:5a:0f:52:54:00:b3:63:9b