雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

virshの使い方

  • KVMCLIで操作するコマンドのvirshのメモ。ちょくちょく更新する。かも。

とりあえずこまったら

  • このコマンドを実行!
# virsh help

情報の表示

稼働中のVMの一覧を見たい

# virsh list

停止中も含めVMの一覧を見たい

# virsh list --all

稼働中のネットワーク一覧を見たい

# virsh net-list

停止中も含めネットワーク一覧を見たい

# virsh net-list --all

リソースの利用状況を見たい

# virt-top

VMの操作

VMを起動したい

# virsh start [ドメイン名]

VMを停止したい

# virsh stop [ドメイン名]

VMを強制停止したい(=電源プチ)

# virsh destroy [ドメイン名]

VMを一時停止したい

# virsh suspend [ドメイン名]

VMを再起動したい

# virsh reboot [ドメイン名]

VMのコンソールに直接接続したい

# virsh console [ドメイン名]
  • VMの停止/再起動に関しては直接VMに入っての操作を推奨。stopとかほぼまともに動作しない。destroyは最終手段。

VMの作成/削除

最初からインストール

  • 以下の手順となります
  1. イメージの作成
  2. インストールの実行
  3. OSのインストール
  • イメージの作成
# qemu-img create -f qcow2 [ドメイン名].img [サイズ]G
  • 例)
# qemu-img create -f qcow2 example.img 20G
  • インストールの実行
# virt-install \
--connect qemu:///system \
--name=[ドメイン名] \
--ram=[メモリ:単位はメガ] \
--disk path=[作成したイメージファイルのパス] \
--vcpus=[CPUの割り当て数] \
--os-type=linux \
--os-variant=rhel6 \
--network bridge=br0 \
--nographics \
--location='http://ftp.riken.jp/Linux/centos/6/os/x86_64/' \
--hvm \
--accelerate \
--extra-args='console=tty0 console=ttyS0,115200n8'
  • 実行後、いつものOSインストール画面が出てくる。ただし、テキストモード。
  • OSのインストール
    • 通常通りに。
    • ただ、テキストモードなのでパーティションなどの細かい設定はできないです。その辺りはkickstartを利用して対応で。

VMをコピーしたい

# virt-clone \
--original [コピー元のVMドメイン名] \
--name [新規で作成するドメイン名] \
--file [新規で作成するVMのイメージファイルの設置場所]

VMを削除したい

# virt undefine [ゲスト名]

VMの設定変更

xmlを編集する

# virsh edit [ドメイン名]

xmlの内容を適用する

# virsh define [xmlのパス]
  • 設定の流れとしてはedit->define
  • CPUやメモリの変更は要再起動。

動的にネットワークインターフェースを追加

# virsh atatch-interface [ドメイン名] インターフェースの形式 インターフェースのソース
  • 例)
# virsh attach-interface example bridge virbr1

ネットワーク設定

仮想ブリッジを作成したい

<network>
<name>network-name</name>
<bridge name="virbr1" stp='on' delay='0'/>
</network>
  • 適用
# virsh net-create network-name.xml
  • 作成したネットワークをVMで利用する時はVMxmlに設定してインターフェースを追加するなり再起動するなりすればOK。

スナップショット関連

スナップショットを作成したい

# virsh snapshot-create-as ドメイン名 スナップショット名 "ディスクリプション"
  • 例)
# virsh snapshot-create-as examle examle-snap "なにかしらのコメント"
  • 作成中はVMが一時停止となります。

スナップションを確認したい

# virsh snapshot-list [ドメイン名]

スナップショットから復元したい

# virsh snapshot-revert [ドメイン名] [復元するスナップショット名]
  • VM稼働中に実行すると復元後リブートします。停止中に実施するのがよさげ。

スナップショットの削除

# virsh snapshot-delete [ドメイン名] [削除するスナップショット名]

無停止でスナップショットを作成したい

# virsh snapshot-create-as [ドメイン名] [スナップショット名] "ディスクリプション" --disk-only --atomic
  • ただし、まだ開発中の機能なので動作が不安定とのこと。テストした限りは大丈夫だったけど。

一番安全なスナップショットの作成方法

  • VM停止してからスナップショットを作成することですって。であればイメージファイルをコピーすればいいと思うのだが。。