機能・要件 
 構成・方式 
 動作 
 タスク 
    仮想M起動/停止
    仮想M自動停止
    シリアル接続設定
    ストレージプール
    ディスク容量増加
    仮想M破棄
    仮想M設定変更
    仮想MNWの整合性
    仮想M shutdown
    クローン
    レスキューモード
    KVMゲスト名変更
 導入 

 仮想化 
 仮想マシンの起動/停止
 ・すべての仮想マシンの起動状況
# virsh list --all
 ・起動中の仮想マシン
# virsh list
 ・非起動の仮想マシン
# virsh list --inactive
 ・仮想マシンの起動
# virsh start KVMゲスト名
 ・仮想マシンの停止
# virsh shutdown KVMゲスト名
仮想マシン側でacpidが動作している必要あり(Linux)
 ・仮想マシンの強制停止
# virsh destroy KVMゲスト名
 ・仮想マシンの自動起動設定(物理マシン起動時に自動起動)
# virsh autostart KVMゲスト名
 ・仮想マシンの自動起動設定解除
# virsh autostart --disable KVMゲスト名
 ・仮想マシンの情報
$ virsh dominfo KVMゲスト名
 ・仮想マシンの起動とコンソールの接続
コンソール接続にはゲストOS側に シリアル接続設定が必要
# virsh start KVMゲスト名 --console
 ・起動している仮想マシンへのコンソールの接続
# virsh console KVMゲスト名
物理マシンにコンソール切り替えは、「Ctrl」+「]」
 ・libvirtが提供するAPIを用いて、Pythonスクリプトから仮想マシンの起動/停止
仮想マシンの起動/停止を自動化する。
 ・virt-manager
仮想マシン一覧画面で操作対象の仮想マシンをダブルクリック
画面上部のボタンで仮想マシンの起動/停止を行う。
ゲストOSのGUIデスクトップにログインしているユーザがいる場合
仮想マシンのシャットダウンを実行すると、デスクトップ上に
シャットダウンの確認を求めるウィンドウが表示される場合がある。
ユーザが確認ウィンドウのボタンを押すまでシャットダウンが開始しない。

 仮想マシンの自動停止
 ・/etc/sysconfig/libvirt-guests に記述
 ・平行数、タイムアウト時間は環境に応じて調整

 シリアル接続設定(centos7)
 ・/etc/default/grub (全体的な設定)か /etc/grub.d/40_custom (個別設定)のファイルを書換え
# sed -i '/GRUB_CMDLINE_LINUX=/s/"$/ console=tty0 \
console=ttyS0,115200n8r"/' /etc/default/grub
 ・GRUBの定義を生成
# grub2-mkconfig -o /boot/grub2/grub.cfg
 ・追加したカーネルオプションが有効になったかを確認
# shutdown -r now
GRUB_CMDLINE_LINUX= に、 console=tty0 console=ttyS0,115200n8r の追加確認
 ・centos6の場合
「/etc/grub.conf」に追加
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
kernelオプションにconsole=ttyS0,115200を追加
再起動で反映
有効確認
$ initctl list | grep serial
serial (ttyS0) start/running, process 2201

 ストレージプールの定義
 ・仮想ゲストを新規作成するときはデフォルトのプールが定義される。
 ・他の場所からイメージを移してくるときはストレージプールを手動で作成
ディレクトリーベースのストレージプール(名前:default)の作成
# virsh pool-define-as default dir ---"/var/lib/libvirt/images"
ストレージ・プールの確認
# virsh pool-list --all
ストレージプール起動
# virsh pool-start default
プール defaultのautostartオン
# virsh pool-autostart default

 ディスク容量増加
 ・仮想イメージファイルのサイズを大きくし、仮想ゲストのディスク容量を増加させる。
 ・仮想マシンをシャットダウンしてから実行
# qemu-img resize /var/lib/libvirt/images/guest01.img +50G
 ・仮想マシンを起動してディスクパーティションを変更する。

 ゲストの破棄
# virsh undefine guest01
# virsh vol-delete /var/lib/libvirt/images/guest01.img

 ゲストの設定変更
# virsh edit guest01
直接「/etc/libvirt/qemu/guest01.xml」を編集した場合
# virsh define /etc/libvirt/qemu/guest01.xml

 仮想マシンのネットワークの整合性
 ・ゲストOSのMACアドレスを /etc/libvirt/qemu/guest01.xml のinterfaceのmacに記述
interfaceのaddressは自動生成
# virsh edit guest01
直接 /etc/libvirt/qemu/guest01.xml を編集した場合
# virsh define /etc/libvirt/qemu/guest01.xml

 ゲストのシャットダウン設定
「/etc/sysconfig/libvirt-guests」を編集

 クローン(ゲストの作成:イメージのコピー)
 ・複製元(guest01)を停止
 ・複製元からコピー
# virt-clone --original guest01 --name guest02 \
    --file /var/lib/libvirt/images/guest02.img
# virsh start guest02
 ・シリアルコンソールが有効なら
# virsh console guest02
 ・ネットワーク名、ホスト名の変更
ログインし、「nmtui」などで設定、NetworkManager再起動、rebootで反映

 レスキューモード
 ・仮想マシンをシャットダウン
 ・開いて実行
 ・「0-rescue ・・・・」選択
ログイン
Welcame to emrgency mode!

 KVMゲスト名変更
 ・現状確認
# cd /etc/libvirt/qemu/
# ls -la
# cd /var/lib/libvirt/images/
# ls -la
# virsh list --all
 ・当該ゲスト停止
# virsh shutdown xxxx
# virsh list --all
 ・UUID確認
# virsh dominfo xxxx | grep UUID
UUID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
 ・UUID作成
# uuidgen
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
 ・旧xml保存
# virsh dumpxml xxxx > xxxx.xml
 ・ゲスト名とUUIDを変更
# virsh edit xxxx
ドメイン xxxx XML の設定は編集されました
 ・新xml保存
# virsh dumpxml xxxx2 > xxxx2.xml
 ・変更を確認
# virsh list --all
# diff xxxx.xml xxxx2.xml
 ・旧xmlを削除
# virsh undefine xxxx
 ・新で起動
# virsh start xxxx2
 ・確認
# virsh --version
# libvirtd --version