読者です 読者をやめる 読者になる 読者になる

KZKY memo

自分用メモ.

KVM How-To

How-To

Disk Formatの確認

qemu-img info disk.img

Disk作成

qemu-img create -f qcow2 ${disk-name}.${qcow2} ${n}G

Disk Copy

cp –sparse=never olddisk.img newdisk.img

Disk Convert

qemu-img convert -O raw file.qcow2 file.img
qemu-img convert -O qcow2 file.img file.qcow2

既存Disk ImageからDomainを追加

virt-manager
    • 新しい仮想マシンの作成→名前つける→既存のディスクイメージをインポート→
    • 既存のディスクイメージのパスを指定
command
virt-install -n ${vmname} -r 2048 --os-type=${os-type}  --os-variant=${os-variant} --disk ${disk-path},device=disk,bus=virtio -w bridge=br0,model=virtio --vnc --noautoconsole --import

既存Domainのクローン,コピー

virt-manager
    • domainを止める→cloneしたいdomainで右クリ→クローン→
    • storageは勝手にcloneされるが,自分で作成したstorageの指定も可能
command
virt-clone --connect=qemu:///system -o srchost -n newhost -f /path/to/newhost.qcow2 [--force] # 既存のimgに上書きするには--force
command2 (これでもイケルはず)
virt-clone --connect=qemu+ssh://ubuntu@10.0.0.2/system -o srchost -n newhost -f /path/to/newhost.qcow2

Disk Attach

command
  • general
virsh attach-disk ${domain} ${source} ${target}
  • virtioでのhot attach
virsh attach-disk ${domain} ${source} vd{b, c, d, ...}  --driver qemu \
--type disk --subdriver qcow2
  • domain: domain name
  • source: disk path
  • target: vd{b, c, d, ...} # /devの下に作られる
virt-manager
    • 仮想マシンクリック→インフォボタン→ハードウェア追加→Storage→
    • 管理しているストレージか... を選択→選択→
    • デバイスの種類等は選択したパスによる,qemu-imgで作ったqcow2なら
      • デバイスの種類: virtio
      • キャッシュモデル: default
      • ストレージ形式: qcow2
qcow2の場合の例

これの6をやる.

  • fdiskでpartionつくる
  • filesystemを作る
  • mount
  • reboot時にもmountしたかったら,autofs or fstabに書く.

以上.

deviceファイルも指定できるだろうから,予め
1. deviceファイル作成,もしくは既存のdisk
2. ファイルシステムを作成
3. "それを管理しているストレージか... を選択"で選択
4. vmでdeviceをmount
でもいいと思う.

Network Interface Attach

command
  • hot attach
virsh attach-interface ${domain} ${type} ${source}
  • domain: domain name
  • type: brdige, network, etc
  • source: interface name
virt-manager
    • 仮想マシンクリック→インフォボタン→ハードウェア追加→Network→
    • ホストデバイス,MACどドレス,デバイスモデルを選択

os-variant一覧

virt-install --os-variant list

用語

Virt-Manager

  • vmの管理 GPI
  • KVM Hostにかかわらず,localで実行してもいい
  • KVM Hostを接続として追加する

Storage Pool

  • vmを保存するdir, iSCSI, netfs, block device, LVM volumeなどの場所
  • defaultは,/var/lib/libvirt/images
  • /etc/libvirt/storage/${storage_pool_name}.xmlにpool単位で存在
  • 変更
command
virsh pool-edit ${storage_pool_name}
virt-manager

接続→プラスボタン→名前を入力→ターゲットパスの入力

Disk format

  • qcow2
    • スナップショット取れる
  • raw (sparse)
    • スナップショット取れない
  • raw
    • スナップショット取れない

Domain

  • vmのこと
  • defaultは,/var/lib/libvirt/images

Tips

  • virsh関連で何か調べたい時
    • virsh help [keyword] | less
  • commandはoption含めて,非常に多岐に渡るのでhelp/manualで調べる
    • virsh help keyword
    • man virt-XXX
  • domain nameとdisk nameの関連を決めておいたほうがいい
    • 同じにするとかなど