virshの使い方
概要
- CUIで仮想マシンの作成、管理ができる
- QEMU, VirtualBoxなどがあるが、簡単さの観点で最初の選択肢になる
- ネットワークの複雑な設定など、dockerでは難しいことができる
- 実態は
libvirt
とqemu
のラッパー - GUIで更にラップしたものとして、
virt-manager
,virt-viewer
がある
インストール
ubuntu
$ sudo apt install qemu-kvm libvirt-daemon-system
動作確認
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
# このようなメッセージが出ればOK
ユーザグループの追加
$ sudo usermod -aG libvirt $USER
$ sudo usermod -aG kvm $USER
$ sudo systemctl restart libvirtd.service
環境変数の追加
$ export LIBVIRT_DEFAULT_URI=qemu:///system
権限の追加
$ sudo setfacl -m u:libvirt-qemu:x /path/to/dir
$ sudo setfacl -R -m u:libvirt-qemu:rX /path/to/dir/vm
QEMUの権限の設定
$ sudo chmod u+s /usr/lib/qemu/qemu-bridge-helper
各コマンド
- ゲストの操作
virsh list --all
- すべてのvmの一覧を表示virsh pool-list
- すべてのpoolの一覧を表示virsh dominfo <guest name>
- vmの情報を表示virsh start <guest name>
- vmの起動virsh reboot <guest name>
- vmの再起動virsh shutdown <guest name>
- vmのシャットダウンvirsh destroy <guest name>
- vmの強制終了virsh console <guest name>
- vmのコンソールに接続virsh suspend <guest name>
- vmの一時停止virsh undefine <guest name>
- vmの削除virsh edit <guest name>
- vmの設定ファイルを編集(メモリやCPUの割当など)
- ネットワークの操作
virsh net-start <virtual network name>
- virtual networkの起動virsh net-list
- virtual networkの一覧を表示virsh net-dhcp-leases default
- virtual networkのdhcpのリース情報を表示(IPアドレスなど)virsh net-edit <virtual network name>
- virtual networkの設定ファイルを編集
- その他
virt-clone
- vmのクローン
VMの作成
qeumu-img
コマンドを使って、イメージファイルを作成する- インストーラーのisoファイルをダウンロードする
$ virt-install \
--name ubuntu-server \
--ram 2048 \
--disk path=./disk.qcow2,size=50 \
--vcpus 2 \
--os-type linux \
--network bridge=virbr0 \
--graphics none \
--console pty,target_type=serial \
--location './ubuntu-22.04.2-live-server-amd64.iso' \
--extra-args 'console=ttyS0,115200n8 serial'