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
詳見: