一 KVM概念
? Linux Kernel-based Virtual Machine (KVM) 是一款 Linux 開(kāi)放源碼虛擬化軟件,基于硬件虛擬化擴(kuò)展(Intel VT- X 和 AMD-V)和 QEMU 的修改版。KVM 的實(shí)現(xiàn)模塊又兩個(gè),分別是: kvm.ko是提供核心虛擬化的基礎(chǔ)架構(gòu);特定于處理器的模塊 kvm-intel.ko 和 kvm-amd.ko 。其設(shè)計(jì)目標(biāo)是在需要引導(dǎo)多個(gè)未改動(dòng)的 PC 操作系統(tǒng)時(shí)支持完整的硬件模擬。 一個(gè)普通的linux進(jìn)程有兩種運(yùn)行模式:內(nèi)核和用戶。而KVM增加了第三種模式:客戶模式(有自己的內(nèi)核和用戶模式)。在kvm模型中,每一個(gè)虛擬機(jī)都是由linux調(diào)度程序管理的標(biāo)準(zhǔn)進(jìn)程。
kvm由兩個(gè)部分組成:一個(gè)是管理虛擬硬件的設(shè)備驅(qū)動(dòng),該驅(qū)動(dòng)使用字符設(shè)備/dev/kvm作為管理接口;另一個(gè)是模擬PC硬件的用戶空間組件,這是一個(gè)稍作修改的qemu進(jìn)程。 KVM 所支持的功能包括:
支持CPU 和 memory 超分(Overcommit)
支持半虛擬化I/O (virtio)
支持熱插拔(cpu,塊設(shè)備、網(wǎng)絡(luò)設(shè)備等)
支持對(duì)稱多處理(Symmetric Multi-Processing,縮寫(xiě)為 SMP )
支持 PCI 設(shè)備直接分配和 單根I/O 虛擬化 (SR-IOV)
支持 內(nèi)核同頁(yè)合并 (KSM )
支持 NUMA (Non-Uniform Memory Access,非一致存儲(chǔ)訪問(wèn)結(jié)構(gòu) )
二 安裝KVM組件
2.1 安裝KVM前提
在BIOS需要開(kāi)啟虛擬機(jī)支持
2.2 KVM管理工具
Virt-manager 圖形化管理工具
Virsh 命令行管理工具
Virt-clone 克隆工具
Virt-install 安裝工具
2.3 KVM安裝
2.3.1 安裝kvm組件
執(zhí)行如下命令進(jìn)行安裝
yum install libvirt* qemu* virt-manager -y
2.3.2 啟動(dòng)服務(wù)并設(shè)置開(kāi)機(jī)自啟
啟動(dòng)服務(wù):
systemctl start libvirtd
設(shè)置開(kāi)機(jī)自啟動(dòng):
systemctl enable libvirtd
三 創(chuàng)建&管理虛擬機(jī)
3.1 創(chuàng)建虛擬機(jī)
*后續(xù)步驟很重要,否則可能會(huì)無(wú)法創(chuàng)建成功*
執(zhí)行命令virt-manager打開(kāi)KVM圖形化管理工具
3.2 安裝過(guò)程
3.2.1 選擇安裝方式
這里選擇本地按安裝 點(diǎn)擊文件–>新建虛擬機(jī)–>選擇本地安裝介質(zhì)–>前進(jìn)。如下圖1所示。
3.2.2 選擇安裝ISO文件
點(diǎn)擊瀏覽,選擇ISO文件–>前進(jìn)。如下圖2所示;
3.2.3選擇內(nèi)存和CPU設(shè)置
設(shè)置分配給虛擬機(jī)的內(nèi)存大小和CPU個(gè)數(shù)–>前進(jìn)。如下圖3所示;
3.2.4 配置存儲(chǔ)池
方式一:為虛擬機(jī)啟用存儲(chǔ)–>為虛擬機(jī)創(chuàng)建磁盤(pán)鏡像(設(shè)置磁盤(pán)空間大小,默認(rèn)的存儲(chǔ)路徑為/var/lib/libvirt/images)–>前進(jìn);
方式二:為虛擬機(jī)啟用存儲(chǔ)–>選擇或創(chuàng)建自定義存儲(chǔ)–>管理–>選擇default存儲(chǔ)池–>添加卷(設(shè)置卷名,卷大小,磁盤(pán)格式)–>選擇卷–>前進(jìn);
下面示例采用方式二進(jìn)行配置。如下圖4所示;
3.2.5 設(shè)置虛擬機(jī)名稱及網(wǎng)絡(luò)
設(shè)置虛擬機(jī)名稱–>選擇在安裝前自定義配置–》選擇網(wǎng)絡(luò)為橋接或者NAT(示例選擇橋接)–>完成。如下圖5所示;
KVM虛擬機(jī)網(wǎng)絡(luò)配置的兩種方式:
NAT方式和Bridge方式。Bridge方式適用于服務(wù)器主機(jī)的虛擬化。NAT方式適用于桌面主機(jī)的虛擬化。
3.2.6 安裝前配置
(1)添加硬件–輸入–通用USB Keyboard,不添加鍵盤(pán)無(wú)法使用。如下圖6所示;
(2)添加硬件–輸入–通用EvTouch USB圖形數(shù)位板,不添加鼠標(biāo)無(wú)法使用。圖下圖6所示;
(3)添加硬件–圖形–類型選擇Spice服務(wù)器
3.2.7 開(kāi)始安裝
點(diǎn)擊開(kāi)始安裝,即可進(jìn)入到系統(tǒng)安裝引導(dǎo)界面。如下圖8、圖9所示;
圖9 選擇安裝引導(dǎo)菜單進(jìn)行系統(tǒng)安裝
3.3 通過(guò)virt-install進(jìn)行安裝
3.3.1 參數(shù)介紹
*參數(shù)說(shuō)明:*
–name指定虛擬機(jī)名稱
–ram分配內(nèi)存大小
–vcpus分配CPU核心數(shù),最大與物理機(jī)CPU核心數(shù)相同
–disk指定虛擬機(jī)鏡像,size指定分配大小單位為G
–network網(wǎng)絡(luò)類型,此處用的是默認(rèn),一般用是bridge橋接
–accelerate加速
–cdrom指定安裝鏡像iso
–vnc啟用VNC遠(yuǎn)程管理,一般系統(tǒng)都要啟用。
–vncport指定VNC監(jiān)控端口,默認(rèn)端口為5900,不能重復(fù)
–vnclisten指定VNC綁定IP,默認(rèn)綁定127.0.0.1,改為0.0.0.0
*一般選項(xiàng):指定虛擬機(jī)的名稱、內(nèi)存大小、VCPU個(gè)數(shù)及特性等;*
? -n NAME, --name=NAME:虛擬機(jī)名稱,需【全局惟一】;
? -r MEMORY, --ram=MEMORY:虛擬機(jī)內(nèi)在大小,單位為MB;
? --vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU個(gè)數(shù)及相關(guān)配置;
? --cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?來(lái)獲取支持的CPU模式;
*安裝方法:指定安裝方法、GuestOS類型等;*
? -c CDROM, --cdrom=CDROM:光盤(pán)安裝介質(zhì);
? -l LOCATION, --location=LOCATION:安裝源URL,支持FTP、HTTP及NFS等;
? 如:http://mirror.centos.org/centos/6.9/os/x86_64/
? --pxe:基于PXE完成安裝;
? --livecd: 把光盤(pán)當(dāng)作LiveCD;
? --os-type=DISTRO_TYPE:操作系統(tǒng)類型,如linux、unix或windows等;
? --os-variant=DISTRO_VARIANT:某類型操作系統(tǒng)的變體,如rhel5、fedora8等;
? -x EXTRA, --extra-args=EXTRA:根據(jù)–location指定的方式安裝GuestOS時(shí),用于傳遞給內(nèi)核的額外選項(xiàng);
? 例如指定kickstart文件的位置,–extra-args “ks=http://172.16.0.1/ks.cfg”
? --boot=BOOTOPTS:指定安裝過(guò)程完成后的配置選項(xiàng);
? 如指定引導(dǎo)設(shè)備次序、使用指定的而非安裝的kernel/initrd來(lái)引導(dǎo)系統(tǒng)啟動(dòng)等;
? --boot cdrom,hd,network:指定引導(dǎo)次序;
? --boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定啟動(dòng)系統(tǒng)的內(nèi)核及initrd文件;
? 在半虛擬化模式中較為常見(jiàn),其他模式較少;
?
*存儲(chǔ)配置:指定存儲(chǔ)類型、位置及屬性等;*
? --disk=DISKOPTS:指定存儲(chǔ)設(shè)備及其屬性;格式為–disk /some/storage/path,opt1=val1,opt2=val2等;常用的選項(xiàng)有:
? device:設(shè)備類型,如cdrom、disk或floppy等,默認(rèn)為disk;
? bus:磁盤(pán)總線類型,其值可以為ide、scsi、usb、virtio或xen;
? perms:訪問(wèn)權(quán)限,如rw、ro或sh(共享的可讀寫(xiě)),默認(rèn)為rw;
? size:新建磁盤(pán)映像的大小,單位為GB;
? cache:緩存模型,其值有none、writethrouth(緩存讀)及writeback(緩存讀寫(xiě));
? format:磁盤(pán)映像格式,如raw、qcow2、vmdk等;
? sparse:磁盤(pán)映像使用稀疏格式,即不立即分配指定大小的空間;
? --nodisks:不使用本地磁盤(pán),在LiveCD模式中常用;
*網(wǎng)絡(luò)配置:指定網(wǎng)絡(luò)接口的網(wǎng)絡(luò)類型及接口屬性如MAC地址、驅(qū)動(dòng)模式等;*
? -w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:將虛擬機(jī)連入宿主機(jī)的網(wǎng)絡(luò)中,其中NETWORK可以為:
? bridge=BRIDGE:連接至名為“BRIDEG”的橋設(shè)備;
? network=NAME:連接至名為“NAME”的網(wǎng)絡(luò);
? 其它常用的選項(xiàng)還有:
? model:GuestOS中看到的網(wǎng)絡(luò)設(shè)備型號(hào),如e1000、rtl8139或virtio等;
? mac:固定的MAC地址;省略此選項(xiàng)時(shí)將使用【隨機(jī)】地址,但無(wú)論何種方式,對(duì)于KVM來(lái)說(shuō),其前三段必須為52:54:00;
? 最好不要使用隨機(jī)地址,而是使用我們自己提供的隨機(jī)數(shù)生成器,按順序給虛擬機(jī)生成,保證不會(huì)重復(fù)。
? 可用隨機(jī)數(shù)有1600多萬(wàn)個(gè)(2^24),應(yīng)該夠用了。。。
? --nonetworks:虛擬機(jī)不使用網(wǎng)絡(luò)功能;
*圖形配置:定義虛擬機(jī)顯示功能相關(guān)的配置,如VNC相關(guān)配置;*
? --graphics TYPE,opt1=val1,opt2=val2:指定圖形顯示相關(guān)的配置;
? 此選項(xiàng)不會(huì)配置任何顯示硬件(如顯卡),而是僅指定虛擬機(jī)啟動(dòng)后對(duì)其進(jìn)行訪問(wèn)的接口;
? TYPE:指定顯示類型,可以為vnc、sdl、spice或none等,默認(rèn)為vnc;
? port:TYPE為vnc或spice時(shí)其監(jiān)聽(tīng)的端口;
? listen:TYPE為vnc或spice時(shí)所監(jiān)聽(tīng)的IP地址,默認(rèn)為127.0.0.1,可以通過(guò)修改/etc/libvirt/qemu.conf定義新的默認(rèn)值;
? password:TYPE為vnc或spice時(shí),為遠(yuǎn)程訪問(wèn)監(jiān)聽(tīng)的服務(wù)進(jìn)指定認(rèn)證密碼;
? --noautoconsole:禁止自動(dòng)連接至虛擬機(jī)的控制臺(tái);
*設(shè)備選項(xiàng):指定文本控制臺(tái)、聲音設(shè)備、串行接口、并行接口、顯示接口等;*
? --serial=CHAROPTS:附加一個(gè)串行設(shè)備至當(dāng)前虛擬機(jī);
? 根據(jù)設(shè)備類型的不同,可以使用不同的選項(xiàng),格式為“–serial type,opt1=val1,opt2=val2,…”
? --serial pty:創(chuàng)建偽終端;
? --serial dev,path=HOSTPATH:附加主機(jī)設(shè)備至此虛擬機(jī);
? --video=VIDEO:指定顯卡設(shè)備模型,可用取值為cirrus、vga、qxl或vmvga;
*虛擬化平臺(tái):*
? 虛擬化模型(hvm或paravirt)、模擬的CPU平臺(tái)類型、模擬的主機(jī)類型、hypervisor類型(如kvm、xen或qemu等)以及當(dāng)前虛擬機(jī)的UUID等;
? -v, --hvm:當(dāng)物理機(jī)同時(shí)支持完全虛擬化和半虛擬化時(shí),指定使用完全虛擬化;
? -p, --paravirt:指定使用半虛擬化;
? --virt-type:使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令獲??;
*其它:*
? --autostart:指定虛擬機(jī)是否在物理啟動(dòng)后自動(dòng)啟動(dòng);
? --print-xml:如果虛擬機(jī)不需要安裝過(guò)程(–import、–boot),則顯示生成的XML而不是創(chuàng)建此虛擬機(jī);
? 默認(rèn)情況下,此選項(xiàng)仍會(huì)創(chuàng)建磁盤(pán)映像;
? --force:禁止命令進(jìn)入交互式模式,如果有需要回答yes或no選項(xiàng),則自動(dòng)回答為yes;
? --dry-run:執(zhí)行創(chuàng)建虛擬機(jī)的整個(gè)過(guò)程,但不真正創(chuàng)建虛擬機(jī)、改變主機(jī)上的設(shè)備配置信息及將其創(chuàng)建的需求通知給libvirt;
? -d, --debug:顯示debug信息;
盡管virt-install命令有著類似上述的眾多選項(xiàng),但實(shí)際使用中,其必須提供的選項(xiàng)僅包括–name、–ram、–disk(也可是–nodisks)及安裝過(guò)程相關(guān)的選項(xiàng)。此外,有時(shí)還需要使用括–connect=CONNCT選項(xiàng)來(lái)指定連接至一個(gè)非默認(rèn)的hypervisor。連"–vcpus"參數(shù)都不用給,默認(rèn)為1。
3.3.2 raw格式和qcow2磁盤(pán)類型介紹
(1)raw格式
raw格式是最簡(jiǎn)單,什么都沒(méi)有,所以叫raw格式。連頭文件都沒(méi)有,就是一個(gè)直接給虛擬機(jī)進(jìn)行讀寫(xiě)的文件。raw不支持動(dòng)態(tài)增長(zhǎng)空間,必須一開(kāi)始就指定空間大小。所以相當(dāng)?shù)暮馁M(fèi)磁盤(pán)空間。
raw鏡像格式是虛擬機(jī)種I/O性能最好的一種格式,大家在使用時(shí)都會(huì)和raw進(jìn)行參照,性能越接近raw的越好。但是raw沒(méi)有任何其他功能。對(duì)于稀疏文件的出現(xiàn),像qcow這一類的運(yùn)行時(shí)分配空間的鏡像就沒(méi)有任何優(yōu)勢(shì)了。
(2)qcow2格式
qcow2 鏡像格式是 QEMU 模擬器支持的一種磁盤(pán)鏡像。它也是可以用一個(gè)文件的形式來(lái)表示一塊固定大小的塊設(shè)備磁盤(pán)。與普通的 raw 格式的鏡像相比,有以下特性:
更小的空間占用,即使文件系統(tǒng)不支持空洞(holes);
支持寫(xiě)時(shí)拷貝(COW, copy-on-write),鏡像文件只反映底層磁盤(pán)的變化;
支持快照(snapshot),鏡像文件能夠包含多個(gè)快照的歷史;
可選擇基于 zlib 的壓縮方式;
可以選擇 AES 加密;
qcow2是集各種技術(shù)為一體的超級(jí)鏡像格式,支持內(nèi)部快照,加密,壓縮等一系列功能,訪問(wèn)性能也在不斷提高。但qcow2的問(wèn)題就是過(guò)于臃腫,把什么功能都集于一身。
3.3.3 virt-install安裝
(1)創(chuàng)建橋接網(wǎng)卡
如果是虛擬機(jī)網(wǎng)卡是NAT模式,則不用創(chuàng)建
1)在網(wǎng)卡配置文件里面添加BRIDGE="br0"參數(shù)。其中NAME,UUID,DEVICE參數(shù)請(qǐng)根據(jù)實(shí)際情況進(jìn)行配置,以下示例僅供參考。
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=e0d11a2f-6c67-4ead-a36a-847712934acf
DEVICE=ens33
ONBOOT=yes
BRIDGE=“br0”
2)創(chuàng)建br0網(wǎng)卡,具體參數(shù)請(qǐng)根據(jù)實(shí)際情況進(jìn)行修改,以下示例僅供參考。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=“Bridge”
BOOTPROTO=“static”
DEVICE=“br0”
ONBOOT=“yes”
IPADDR=192.168.146.137
NETMASK=255.255.255.0
GATEWAY=192.168.146.2
(2)創(chuàng)建磁盤(pán)
以下示例,在 /var/lib/libvirt/images目錄下創(chuàng)建一個(gè)名為kylin.img的30G qcow2的磁盤(pán)文件。
執(zhí)行命令:qemu-img create -f qcow2 /var/lib/libvirt/images/kylin.img 30G
(3)創(chuàng)建虛擬機(jī)
具體參數(shù)請(qǐng)根據(jù)實(shí)際情況進(jìn)行修改,以下示例僅供參考。
執(zhí)行命令:virt-install --name=kylin-test --ram 2048 --vcpus=2 --disk path=/var/lib/libvirt/images/kylin.img,format=qcow2,size=30,bus=ide --accelerate --cdrom /root/Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso --vnc --vncport=5920 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-757867.html
執(zhí)行完成之后打開(kāi)虛擬系統(tǒng)管理器,選擇安裝引導(dǎo)菜單進(jìn)行系統(tǒng)安裝。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-757867.html
到了這里,關(guān)于銀河麒麟服務(wù)器系統(tǒng)安裝KVM和創(chuàng)建KVM虛擬機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!