KVM指令安裝虛拟機
-
- 指令安裝虛拟機
- VNC安裝
- virsh指令使用
指令安裝虛拟機
使用qemu-img建立磁盤檔案
qemu-img create -f qcow2 /kvm-vm/vmtest1.qcow2 10G
通過qemu-img info 可以檢視磁盤情況
qemu-img info /kvm-vm/vmtest1.qcow2
通過檔案管理可以直接檢視、修改、複制虛拟機的内部檔案。例如,當系統因為配置檔案無法啟動時,可以直接修改虛拟機持鏡像zlib磁盤壓縮AES加密等。要使用鏡像功能,磁盤格式必須為qcow2。raw格式的話, 速度稍微快點,在高版本的qemu-kvm中,幾乎不比qcow2的格式快,而qcow2格式節省空間,可動态增長,在公有雲中廣泛使用,建議使用qcow2.
是以有時候,我們需要将raw格式的磁盤轉換成qcow2格式。建立一個raw格式的磁盤檔案.
可以将raw格式轉換成qcow2格式
qemu-img convert -f raw -O qcow2 /kvm-vm/vmtest1.raw /kvm-vm/vmtest1.qcow2
安裝虛拟機
virt-install指令參數
通用選項:
-n NAME, --name=NAME:虛拟機名稱,需全局惟一;
-r MEMORY, --ram=MEMORY:虛拟機内在大小,機關為MB;
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU個數及相關配置;
--cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?來擷取支援的CPU模式;
安裝方法:
-c CDROM, --cdrom=CDROM:CD光牒安裝媒體;
-l LOCATION, --location=LOCATION:安裝源URL,支援FTP、HTTP及NFS等,如ftp://172.16.0.1/pub;
--pxe:基于PXE完成安裝;
--livecd: 把CD光牒當作LiveCD;
--os-type=DISTRO_TYPE:作業系統類型,如linux、unix或windows等;
--os-variant=DISTRO_VARIANT:某類型作業系統的變體,如rhel5、fedora8、debian10等;
-x EXTRA, --extra-args=EXTRA:根據--location指定的方式安裝GuestOS時,用于傳遞給核心的額外選項,例如指定kickstart檔案的位置,--extra-args "ks=http://172.16.0.1/class.cfg"
--boot=BOOTOPTS:指定安裝過程完成後的配置選項,如指定引導裝置次序、使用指定的而非安裝的kernel/initrd來引導系統啟動等 ; 例如:
--boot cdrom,hd,network:指定引導次序;
--boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定啟動系統的核心及initrd檔案;
存儲配置:
--disk=DISKOPTS:指定儲存設備及其屬性;格式為--disk /some/storage/path,opt1=val1,opt2=val2等;常用的選項有:
device:裝置類型,如cdrom、disk或floppy等,預設為disk;
bus:磁盤總結類型,其值可以為ide、scsi、usb、virtio或xen;
perms:通路權限,如rw、ro或sh(共享的可讀寫),預設為rw;
size:建立磁盤映像的大小,機關為GB;
cache:緩存模型,其值有none、writethrouth(緩存讀)及writeback(緩存讀寫);
format:磁盤映像格式,如raw、qcow2、vmdk等;
sparse:磁盤映像使用稀疏格式,即不立即配置設定指定大小的空間;
--nodisks:不使用本地磁盤,在LiveCD模式中常用;
網絡配置:
-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:将虛拟機連入主控端的網絡中,其中NETWORK可以為:
bridge=BRIDGE:連接配接至名為“BRIDEG”的橋裝置;
network=NAME:連接配接至名為“NAME”的網絡;
其他選項:
model:GuestOS中看到的網絡裝置型号,如e1000、rtl8139或virtio等;
mac:固定的MAC位址;省略此選項時将使用随機位址,但無論何種方式,對于KVM來說,其前三段必須為52:54:00;
--nonetworks:虛拟機不使用網絡功能;
圖形配置:
--graphics TYPE,opt1=val1,opt2=val2:指定圖形顯示相關的配置,此選項不會配置任何顯示硬體(如顯示卡),而是僅指定虛拟機啟動後對其進行通路的接口;
TYPE:指定顯示類型,可以為vnc、sdl、spice或none等,預設為vnc;
port:TYPE為vnc或spice時其監聽的端口;
listen:TYPE為vnc或spice時所監聽的IP位址,預設為127.0.0.1,可以通過修改/etc/libvirt/qemu.conf定義新的預設值;
password:TYPE為vnc或spice時,為遠端通路監聽的服務進指定認證密碼;
--noautoconsole:禁止自動連接配接至虛拟機的控制台;
裝置選項:
--serial=CHAROPTS:附加一個串行裝置至目前虛拟機,根據裝置類型的不同,可以使用不同的選項,格式為“--serial type,opt1=val1,opt2=val2,...”,例如:
--serial pty:建立僞終端;
--serial dev,path=HOSTPATH:附加主機裝置至此虛拟機;
--video=VIDEO:指定顯示卡裝置模型,可用取值為cirrus、vga、qxl或vmvga;
虛拟化平台:
-v, --hvm:用戶端應該是一個全虛拟化用戶端;
-p, --paravirt:用戶端應該是一個半虛拟化用戶端;
--virt-type=HV_TYPE:要用的管理程式名稱(kvm,qemu,xen)
--arch=ARCH :模拟的CPU構架
-u UUID: 用戶端UUID
其他選項:
--autostart:引導主機時自動啟動域
--print-xml 輸出所生産、成域的XML,而不是定義虛拟機
--print-step=XMLSTEP 輸出具體安裝步驟
--noreboot 完成安裝後不要引導虛拟機
--wait=WAIT 要等待的時間
--dry-run 完成安裝步驟,但不要建立裝置或者定義虛拟機
--force 對任意應用程式提示強制回答‘yes’ 終止其他提示
-q, --quite 禁止無錯誤輸出
-d, --debug 輸入故障排除資訊
--prompt 要求使用者為模糊情況或者需要的選項輸入
安裝
virt-install -n test1 -r 1024 --vcpus=1 --location=/iso/CentOS-7-x86_64-DVD-1611.iso --disk path=/kvm-vm/vmtest1.qcow2,size=10,format=qcow2,sparse --nographics -x 'console=ttyS0'
使用互動式配置一些選項
VNC安裝
virt-install -n test2 -r 1024 --vcpus=1 --location=/iso/CentOS-7-x86_64-DVD-1611.iso --disk path=/kvm-vm/vmtest2.qcow2,sparse --accelerate --graphics vnc,listen=0.0.0.0,port=8888 --noautoconsole
需要開放端口
通過vnc連接配接配置
配置完成用無法用virsh console 登入上去,但是可以用vnc或ssh連接配接
有以下方法:(修改vnc安裝的虛拟機)
修改grub配置檔案,在核心一行加入console=ttyS0,重新開機
或者:
grubby --update-kernel=ALL --args="console=ttyS0"
如果是Ubuntu使用以下方法:
#sudo systemctl enable [email protected]
#sudo systemctl start [email protected]
#virsh edit VPS-Domain
\<graphics type='vnc' port='8888' autoport='no' listen='0.0.0.0' keymap='en-us'\/>
在其中加入passwd的屬性
\<graphics type='vnc' port='8888' autoport='no' listen='0.0.0.0' passwd='123456' keymap='en-us'\/>
virsh指令使用
virsh list # 檢視在運作的虛拟機
virsh dumpxml vm-name # 檢視kvm虛拟機配置檔案
virsh edit vm-name # 修改虛拟機的配置檔案(部分選項修改以後start虛拟機就可以生效)
virsh start vm-name # 啟動kvm虛拟機
virsh shutdown vm-name # 正常關機
virsh destroy vm-name # 非正常關機,強制關閉虛拟機
virsh undefine vm-name # 删除vm的配置檔案
ls /etc/libvirt/qemu
virsh define file-name.xml # 根據配置檔案定義虛拟機
virsh suspend vm-name # 挂起,終止
virsh resumed vm-name # 恢複被挂起的虛拟機
virsh autostart vm-name # 開機自啟動vm
virsh console # 連接配接虛拟機
删除虛拟機的方法
virsh destroy vm-name 關閉虛拟機
virsh undefine vm-name 删除vm配置檔案
rm /opt/kvm.raw 删除虛拟機磁盤(qcow2/row)