12. kvm - virtinst

virt-manager

 

virt-* 是由 Radhat 出品的東西來, 它們是用 Python 寫成的

而其中 virt-manager 是一個 GUI 的控制工具來

  • virt-manager
  • virt-viewer
  • virt-image
  • virt-clone
  • virt-install

virt-* 是建基於 libvirt 去實現 VM 的控制


virt-install 與 virt-clone

 

安裝:

apt-get install virtinst

 

virt-install

virt-install 它可以用來建立 KVM, Xen, 及 container 的工具, 而且有能力用 NFS, HTTP, FTP servers 存取必要的 file

選項:

-h, --help

速成:

virt-install -n web_devel -r 256 --arch=i686 \                         <-- default 的 arch 同 host 一樣
--disk path=/mnt/vm/debian1.qcow2,bus=virtio \
--network bridge=virbr0,model=virtio \
--noautoconsole \
-v \                                                                                        <-- 相當於 --hvm, 另有 -p, --paravirt
--boot hd                                                                               <-- 一定要指明一種, --boot hd|cdrom
                                                                                                                             --cdrom CD/ISO

 

完整:

virt-install -n web_devel -r 256 --arch=i686 \
--disk path=/mnt/vm/debian1.qcow2,bus=virtio \
--network bridge=virbr0,model=virtio \
--graphics vnc,password=foobar,port=5901,listen=192.168.123.10 \
--noautoconsole -v --boot hd

 

當沒有注明 --connect 時, 會根據如下次序選擇 xen, qemu:///system, qemu:///session

其他選項:

  • -v, --hvm  /  -p, --paravirt
  • --arch=     i686 | x86_64
  • --noautoconsole                      <-- default auto 會行 vnc-viewer 或 virsh console
  • --boot   hd                              <-- 在沒有 CD 時是必要的 (引起 An install method must be specified )
  • --dry-run                                <--  學習一切的開始
  • --print-xml                             <-- Output Configure file 而已, 並不建立 VM
  • --noreboot

--virt-type      kvm, qemu, xen, or kqemu    <-- 查看本系統支持什麼 virsh capabilities

-c CDROM   ( Example: -c install_cd.iso )

--boot cdrom,fd,hd,network,menu=on                <-- 順序 boot

--os-variant=OS_VARIANT <-- 為不同 OS 做優化 ( 查看支援什麼 OS: --os-variant list )

  • win7, winxp, ubuntuprecise, debiansqueeze, virtio26

--accelerate   <--- Default

 

Output:

Starting install...
Creating domain...                                                      |    0 B     00:00
Domain creation completed. You can restart your domain by running:
  virsh --connect qemu:///system start debian1

 


 

Graphics 選項:

 

  • --graphics vnc                                                                                         <--- Default: 127.0.0.1:5900
  • --graphics vnc,password=foobar,port=5901,listen=192.168.123.10
  • --graphics spice                                                                                       <-- Spice protocol

 


 

CPU:

--vcpus=VCPUS

--cpuset=CPUSET (Example: 0-2,3,5)

--cpu host

 


 

Storage:

device  'cdrom', 'disk'(Default: disk)

LVM:

  • size=n                                    // 單位 GB
  • vol 'poolname/volname'

bus= ???                        // ???:  'ide', 'sata', 'scsi', 'usb', 'virtio' or 'xen'

cache= ???                    // ???:  'none', 'writethrough', or 'writeback'

format= ???                  // ???:  'raw', 'qcow2', 'vmdk'

io =???                          // ???:  Disk IO backend. Can be either "threads" or "native".

sparse=true(default)

perms=rw(default)        // 另有  ro | sh (Shared Read/Write)

 

Example:

--disk path=/dev/HostVG/DemoVM

--disk /home/user/VMs/mydisk.img

--disk path=/var/lib/libvirt/images/demo.img,size=8

--disk path=/dev/hdc

--nodisks

 


 

Networking

 

-w <NETWORK 類型>            // --network <NETWORK 類型>

ETWORK 類型:

  • bridge=BRIDGE
  • network=NAME
  • user

 

mac=RANDOM         <--  default (Xen: 00:16:3e:xx:xx:xx ,  Kvm: 52:54:00:xx:xx:xx )

model=???      'e1000', 'rtl8139', 'virtio'

 


 

Deprecated Options

  • --vnc

 


 

virt-clone:

virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \
--connect=qemu:///system

-o: original virtual machine.
-n: name of the new virtual machine.
-f: path to the file, logical volume, or partition to be used by the new virtual machine

 

virt-image

virt-image [OPTION]... IMAGE.XML

 


 

virt-viewer

virt-viewer qemu:///system web_devel

virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system web_devel

 

重點:

virt-manager -c qemu+ssh://virtnode1.mydomain.com/system
virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system VM_NAME

 

詳見:

http://virt-manager.org/