使用virsh工具創建虛擬機模板
首先準備基礎環境:
在vmware上安裝一臺Centos7.0的虛擬機
打開CPU的虛擬化功能
安裝完操作系統之後驗證虛擬化功能是否打開
使用 egrep --color=auto "(svm|vmx)" /proc/cpuinfo進行查看
安裝libvirt的工具組件
yum install libvirt libvirt-client virt-manager virt-install
因為我們要使用libvirt組件去管理kvm,所以在物理機上需要安裝qemu-kvm
systemctl start libvirtd 啟動服務
守護進程配置文件:/etc/libvirt/libvirt.conf
/etc/libvirt/qemu/networks/目錄下面有一個default.xml的配置文件
此文件中定義的是qemu系的虛擬機的基本配置信息,例如安裝完libvirt之後會生成一個名為bridge的網橋,並生成一個IP地址,還可以實現dhcp服務的自動分配。
下面我們使用virt-install進行虛擬機模板鏡像的制作
Centso7.0鏡像模板制作
下面這個示例創建一個名為rhel7.0的虛擬機,其hypervisor為kvm,內存大小為512MB,存儲磁盤為20G的映像文件/images/rhel7.0.img,通過iso光盤鏡像來引導啟動安裝過程,虛擬機網卡連接物理主機上的名為brnet0的橋接網絡;虛擬機顯卡類型為cirrus。
虛擬機安裝完成後,進入虛擬機查看驅動信息
在宿主機機上使用brctl查看網橋信息可以看到虛擬機的網卡掛載到virbr下面
我們使用virsh工具組件創建的虛擬機關機之後可以在virt-manager圖像化管理工具中看到此虛擬機實例。
此時將/image/rhel7.0.img鏡像文件拷出來上傳到雲平臺即可
virt-install命令有許多選項,這些選項大體可以分為下面幾大類,同時對每類中的常用選選項也做出簡單說明;
一般選項:指定虛擬機的名稱、內存大小、VCPU個數及特性等;
-n NAME -name=NAME //虛擬機名稱,需全局唯一;
-r MEMORY --ram=MEMORY ,虛擬機內存大小,單位為MB
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cires=#][,threads=#] //VCPU個數及縣官配置;
---cpu=CPU //CPU模式及特性,如coreduo等,可以使用qemu-kvm -cpu?來獲取支持的CPU模式;
安裝方式:指定光盤安裝方式、GuestOS類型等;
-c CDROM,--cdrom=CDROM //光盤安裝介質;
-l LOCATION,--location=LOCATION //安裝源URL,支持FTP\HTTP及NFS等,如ftp://172.16.0.1/pub:
--pxe //基於PXE完成安裝;
--livecd //把光盤當作LiveCD;
--os-type=DISTRO_VARIANT //操作系統類型,如Linux、unix或windows等;
--os-variant=DISTRO_VARIANT //某類型操作系統的變體,如rhel5,fedora8等;
-x EXTRA,--extra-args=EXTRA //根據--location指定的方式安裝GuestOS時,用於傳遞給內核的額外選項,例如指定kickstart文件位置,--extra=args "ks=http://172.16.0.1/class.cfs"
--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:磁盤映像使用稀疏格式,即不立即分配指定大小的空間;
--nodisk:不使用本地磁盤,在LiveCD模式中常用;
網絡配置:指定網路接口的網絡類型及接口屬性如MAC地址、驅動模式等;
-w NETWORK,--network=NETWORK,opt1=val1,opt2=val2 //將虛擬機連入宿主主機的網絡中,其中NETWORK可以為:
bridge=BRIDGE:連接至名為“BRIDEFG"的橋設備;
network=NAME:連接至名為“NAME"的網絡;
常用的其它選項還有:
model:GuestOS中看到的網絡設備號,如e1000,rtl8139或virtio等;
mac:固定的MAC地址;省略此選項時將使用隨機地址,但無論何種方式,對於KVM來說,其前三段必須為52:54:00
--nonetworks:虛擬機不適用網絡功能
圖形配置:定義虛擬機顯示功能相關的配置,如VNC相關配置;
--graphics TYPE,opt1=val1,opt2=val2 //指定圖形顯示相關的配置,此選項不會配置任何顯示硬件(如顯卡),而是僅指定虛擬機啟動後對其進行訪問的接口;
TYPE:指定顯示類型,可以為vnc,sdl,soice或none,默認問vnc;
port:TYPE為vnc或spice時其監聽的端口;
listen:TYPE為vnc或spice時所監聽的IP地址,默認為127.0.0.1,可以通過修改/etc/libvirt/qemu
conf定義新的默認值:
password:TYPE為vnc或spice時,為遠程訪問監聽的服務指定認證密碼;
windows2008鏡像制作
virt-install --connect=qemu:///system -n "windows2008" -r 1024 --vcpus 1 --network bridge=virbr0,model=virtio --disk path=/image/win08.img,format=qcow2,device=disk,bus=virtio,size=15,sparse --cdrom /tmp/cn_windows_server_2008_r2_hpc_edition_with_service_pack_1_x64_dvd_700632.iso --disk path=/tmp/virtio-win-1.7.4.iso,device=cdrom --graphics vnc --os-type windows --boot cdrom,hd
運行創建虛擬機命令之後,如果控制臺顯示如下,說明系統沒有將windows2008的鏡像文件作為第一啟動順序了,需要設置一下引導的啟動。
註意哪一個cdrom是windows2008的鏡像文件將其調整到第一引導順序,關閉虛擬機然後啟動。
在安裝操作系統選擇安裝磁盤目錄的時候會提示沒有驅動程序
這時候需要我們去virtis的鏡像文件中去加載驅動,選擇對應的版本
加載完成後會顯示如下信息
安裝完成後查看windows2008的驅動加載信息
右鍵點擊更新驅動
選擇virtio文件讓系統自動檢索
將所有需要更新的驅動更新完,然後關閉虛擬機,將/image文件下的win08.img磁盤文件上傳到雲平臺即可。
使用virsh工具創建虛擬機模板