天天看點

KVM指令安裝虛拟機與virt管理虛拟機

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)
           

繼續閱讀