Upgrade to Pro — share decks privately, control downloads, hide ads and more …

virsh の使い方

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

virsh の使い方

Avatar for akam1o

akam1o

March 07, 2026

More Decks by akam1o

Other Decks in Technology

Transcript

  1. libvirt とは? • libvirt とは? ◦ 仮想化環境を管理するためのオープンソースのライブラリ・ ツールセット • 仮想マシンやストレージ、ネットワークなどを

    API や CLI から操 作できる ◦ C言語の API が実装されているが、Python, Java, Go などの 言語バインディングがある • libvirt の domain = 仮想マシンのこと
  2. virsh とは? • virsh は libvirt を操作する CLI ツール •

    仮想マシンの管理(起動・停止・作成・削除など)を行う 基本コマンド体型 • 基本構文例: virsh [サブコマンド] [オプション] ◦ virsh list ◦ virsh start ◦ virsh shutdown ◦ ...
  3. 仮想マシンの一覧確認 • virsh list [--all] ◦ --all をつけると shut off

    の VM も表示される # virsh list Id Name State ------------------------------- 1 ubuntu-dpdk01 paused 2 ubuntu-mig02 running # virsh list --all Id Name State -------------------------------- 1 ubuntu-dpdk01 paused 2 ubuntu-mig02 running - ubuntu-dpdk02 shut off - ubuntu-dpdk03 shut off - ubuntu-dpdk04 shut off
  4. 仮想マシンの起動・停止 • 起動 ◦ virsh start <VM名> • 停止 ◦

    virsh shutdown <VM名> • 休止状態 ◦ virsh suspend/resume <VM名> • 強制終了 ◦ virsh destroy <VM名>
  5. 仮想マシンの作成アプローチ • virsh での作成(XMLファイルから定義) ◦ virsh define: 既存の XML 定義を元に

    VM を登録 • virt-install でのインストール ◦ OS インストールも含めて新規VMを作成・定義
  6. virt-install の基本 • CLI で新規仮想マシン作成+OSインストールを自動化 • 必要パラメータ ◦ 例:名前、メモリ、ディスク、ISOファイル等 #

    virt-install \ --name test-vm \ --memory 2048 \ --vcpus 2 \ --disk size=20 \ --cdrom /var/lib/libvirt/images/CentOS-Stream-9.iso \ --os-type linux\ --network bridge=virbr0
  7. virt-install よく使うオプション • --name, -n: 名前 • --memory: 割り当てるメモリ(MiB) •

    --vcpus: CPU 数 • --disk: ディスク • --cdrom: マウントする CDROM • --network: 接続するネットワーク
  8. virt-install の例 (1) # virt-install \ --connect qemu:///system \ --name

    my-win10-vm \ --memory 4096 \ --disk size=40 \ --osinfo win10 \ --cdrom /path/to/my/win10.iso
  9. virt-install の例 (2) # virt-install \ --connect qemu:///system \ --memory

    8192 \ --vcpus 8 \ --graphics vnc \ --osinfo centos7.0 \ --location http://mirror.centos.org/centos-7/7/os/x86_64/
  10. virt-install の例 (3) # virt-install \ --import \ --memory 512

    \ --disk /home/user/VMs/my-debian9.img \ --osinfo debian9
  11. virt-install の例 (4) # virt-install \ --name armtest \ --memory

    1024 \ --arch armv7l --machine vexpress-a9 \ --disk /home/user/VMs/myarmdisk.img \ --boot kernel=/tmp/my-arm-kernel,initrd=/tmp/my-arm-initrd,dtb=/tmp/my-arm-dtb,kernel_args="co nsole=ttyAMA0 rw root=/dev/mmcblk0p3" \ --graphics none
  12. virt-install の例 (5) # virt-install \ --name foo \ --memory

    4096 \ --boot uefi \ --machine q35 \ --memtune hard_limit=4563402 \ --disk size=15,target.bus=scsi \ --import \ --controller type=scsi,model=virtio-scsi,driver.iommu=on \ --controller type=virtio-serial,driver.iommu=on \ --network network=default,model=virtio,driver.iommu=on \ --rng /dev/random,driver.iommu=on \ --memballoon driver.iommu=on \ --launchSecurity sev
  13. 仮想マシンの構成変更 • virsh edit <VM名> • libvirt xml 形式のファイルの編集画面に入る ◦

    virt-install で最低限の設定 -> virsh edit がおすすめ • libvirt xml: ◦ https://libvirt.org/formatdomain.html ◦ いろいろできるように継ぎ足しされた秘伝のタレ状態 • 既存の仮想マシン構成の確認 ◦ virsh dumpxml <VM名>
  14. 仮想マシンの define/undefine • virsh define <libvirt xml> ◦ 他のホストなどから xml,

    qcow2 などを持ってきて起動 • virsh undefine <VM名> ◦ libvirt の管理下から外す ▪ VM の削除のときに使う
  15. configdrive の作成 (1) • configdrive とは ◦ cloud-init を受け渡すための方法の一つ ◦

    仮想 CDROM を介して cloud-init の情報を受け渡す • cloud-localds ◦ configdrive を簡単に作成するためのコマンド ◦ cloud-localds [options] output user-data [meta-data]
  16. configdrive の作成 (2) • configdrive 生成例 ◦ cloud-localds --network-config NETWORK_CONFIG_FILE

    output USERDATA_FILE # cat /tmp/userdata #cloud-config hostname: HOSTNAME user: USER password: PASSWORD chpasswd: expire: False ssh_pwauth: True # /tmp/network-config version: 2 ethernets: eth0: dhcp4: false dhcp6: false addresses: [192.168.0.2/24] gateway4: 192.168.0.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 # cloud-localds --network-config=/tmp/network-config \ /var/lib/libvirt/images/VMNAME-config.img \ /tmp/userdata
  17. configdrive の使い方 • virt-install で組み込むとき ◦ --disk path=/path/to/config.img,device=cdrom • virsh

    edit で組み込むとき <devices> ... <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/path/to/config.img'/> <target dev='sdd' bus='sata'/> <readonly/> </disk> ... </devices>
  18. コンソールへの接続 • virsh console <VM名> # virsh console ubuntu-dpdk01 Connected

    to domain 'ubuntu-dpdk01' Escape character is ^] (Ctrl + ])
  19. virsh コマンドまとめ コマンド 説明 virsh list [--all] VM のリストを表示 virsh

    start/shutdown <VM名> VM の起動/停止 virsh suspend/resume <VM名> VM の休止状態/リジューム virsh destroy <VM名> VM の強制終了 virsh edit <VM名> VM の構成変更 virsh define <libvirt xml> XML から VM を作成 virsh undefine <VM名> libvirt の管理から VM を削除 virsh console <VM名> VM のコンソールに接続
  20. EOP

  21. 参考資料 • Ubuntu Manpage: virt-install - provision new virtual machines

    ◦ https://manpages.ubuntu.com/manpages/jammy/man1/virt-i nstall.1.html • cloud-localds(1) — cloud-image-utils — Debian testing — Debian Manpages ◦ https://manpages.debian.org/testing/cloud-image-utils/cloud -localds.1.en.html • libvirt: Domain XML format ◦ https://libvirt.org/formatdomain.html