使用者工具

網站工具


tech:centos6_kvm

CentOS 6 KVM 命令操作相關

列出 VM 清單

  • virsh list --all

建立 qcow2 格式的 image

建立虛擬網路

建立全新的 VM

  • Exp. ever-test-1 2 vCPU/2G RAM/20G HD CDROM:CentOS-6.8-x86_64-minimal.iso
    virt-install --name ever-test-1 --vcpu 2 --ram 2048 --cdrom /home/ISO/CentOS-6.8-x86_64-minimal.iso --os-type linux --disk /kvm/image/ever-test-1.qcow2,device=disk,bus=virtio,format=qcow2,size=20 --network bridge:br0 --network bridge:br1 

透過 image template 建立 VM

強制關閉 VM

  • Exp. ever-test-1
    virsh destroy ever-test-1

啟動 VM

設定 Host 開機自動啟動 VM

  • Exp. ever-percona1
    virsh autostart ever-percona1
    [[email protected] ~]# virsh autostart ever-percona1
    Domain ever-percona1 marked as autostarted
  • 如果要關閉自動啟動, 後面增加 –disable Exp. ever-percona1
    virsh autostart ever-percona1 --disable
    [[email protected] ~]# virsh autostart ever-percona1 --disable
    Domain ever-percona1 unmarked as autostarted
  • 如果要查看有哪些 VM 會開機自動啟動, 可以看 /etc/libvirt/qemu/autostart/ 內的 VM 清單
    ls -lt /etc/libvirt/qemu/autostart/
    [[email protected] ~]# ls -lt /etc/libvirt/qemu/autostart/
    總計 0
    lrwxrwxrwx 1 root root 34 2018-01-14 13:59 ever-phplist.xml -> /etc/libvirt/qemu/ever-phplist.xml
    :
    :

啟動 VM 並顯示 console

  • Exp. ever-test-1
    virsh start ever-test-1 && virsh console ever-test-1
  • 要離開 console 模式可以輸入 CTRL + 5 或 CTRL + ]
  • 為了讓 guest vm 開機時的過程可以在遠端命令畫面看見, 可以透過
  1. 確認 guest vm xml 內定義的 serial Exp.
    virsh edit ever-test-1
    :
        <serial type='pty'>
          <target port='0'/>
        </serial>
        <console type='pty'>
          <target type='serial' port='0'/>
        </console>
    :
  2. guest vm 開機時的 kernel 參數增加 console=ttyS0,115200 Exp. 進入 guest vm 內
    vi /boot/grub/grub.conf
    :
    title CentOS (2.6.32-642.6.1.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-642.6.1.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=zh_TW.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0,115200
            initrd /initramfs-2.6.32-642.6.1.el6.x86_64.img
    :

VM 掛上與卸下光碟 ISO 檔案

VM 掛上與卸下外部磁碟 qcow2 檔案

  • Exp. 對 VM ever-percona1 掛上 ever-hd-db1.qcow2 磁碟檔
  • 先建立 ever-hd-db1.qcow2
    qemu-img create -f qcow2 -o preallocation=off kvm.30G.qcow2 30G
    cp kvm.30G.qcow2 ever-hd-db1.qcow2
  • 立即掛上 vm
    virsh attach-disk ever-percona1 /kvm/image/ever-hd-db1.qcow2 vdb --subdriver qcow2 --cache none
  • 立即卸下 vm
    virsh detach-disk ever-percona1 vdb
  • 如果要重起後看到掛上的這外部磁碟, 可以使用 –config 語法 Exp.
    virsh attach-disk --config ever-percona1 /kvm/image/ever-hd-db1.qcow2 vdb --subdriver qcow2 --cache none

移除 VM

  • 主要是移除 kvm 內這 VM 的定義, 讓該 VM 不會出現在清單內
    virsh list --all
  • Exp. 要移除 ever-test
  1. 先關閉 ever-test
  2. 移除 ever-test
    virsh undefine ever-test
  • 如果 VM 之前有建立 snapshot 就會出現錯誤訊息 - Requested operation is not valid: cannot delete inactive domain with 2 snapshots
    [[email protected] ~]# virsh undefine kvm-oVirt0
    錯誤:無法為區域 kvm-oVirt0 取消定義
    錯誤:Requested operation is not valid: cannot delete inactive domain with 2 snapshots
  • 解決方式就是先移除這些 snapshots 語法如下:
    virsh snapshot-list --domain VM_NAME
    [[email protected] ~]# virsh snapshot-list --domain kvm-oVirt0
     名稱               Creation Time             狀態
    ------------------------------------------------------------
     1383751914           2013-11-06 23:31:54 +0800 running
     1383753206           2013-11-06 23:53:26 +0800 running
    virsh snapshot-delete --domain VM_NAME --snapshotname SNAPSHOT_NAME
    [[email protected] ~]# virsh snapshot-delete --domain kvm-oVirt0 --snapshotname 1383751914
    Domain snapshot 1383751914 deleted
    
    [[email protected] ~]# virsh snapshot-delete --domain kvm-oVirt0 --snapshotname 1383753206
    Domain snapshot 1383753206 deleted
  • 再來就可以移除掉這 VM
    [[email protected] ~]# virsh undefine kvm-oVirt0
    區域 kvm-oVirt0 已經取消定義

更改 VM 名稱

  • Exp. 對 VM ever-test-1 改成 ever-esetras
  1. 先關閉 ever-test-1
  2. 複製 vm 定義檔
    cd /etc/libvirt/qemu
    virsh dumpxml ever-test-1 > ever-esetras.xml
  3. 編輯 ever-esetras.xml
    :
     <name>ever-esetras</name>
    :
  4. 移除 ever-test-1 與啟用 ever-esetras
    virsh undefine ever-test-1
    virsh define ever-esetras.xml
    virsh start ever-esetras

其他相關頁面

2016/10/30 11:22  
2016/10/30 11:21  
2017/01/16 20:31  
2014/12/05 12:17  
2016/11/08 09:48 Jonathan Tsai
2015/05/27 19:33  
tech/centos6_kvm.txt · 上一次變更: 2018/06/03 08:11 由 Jonathan Tsai