KVM全稱"Kernel-based Virtual Machine",即基于內(nèi)核的虛擬機,在linux內(nèi)啟用kvm需要硬件,內(nèi)核和軟件(qemu)支持,這篇文章教你如何配置并安裝KVM虛擬機.
-
檢查硬件和系統(tǒng)的兼容性
-
檢查硬件虛擬化:LC_ALL=C lscpu | grep Virtualization
這行代碼其中 LC_ALL=C為設(shè)置輸出語言用,lscpu輸出CPU信息,在輸出的CPU信息里面查找“Virtualization”(虛擬化),輸出結(jié)果如果有"AMD-V"(AMD CPU) 或者"VT-X"(Intel CPU),則說明你的電腦硬件支持并且已開啟虛擬化,可以下一步
那如果沒有顯示以上兩種呢,就進入BIOS(或者UEFI)找到虛擬化/virtualization/VT-X/AMD-V一般來說是這四個名字里面任意一個,當然,如果你的班子BIOS里面是virtualization里面有vt-x和vt-d兩個的話,就兩個都開。然后,理論上你就能繼續(xù)了,除非,你的硬件 根本不支持虛擬化(除非廠家手動閹割,現(xiàn)在一般不會有這問題,博主的本本一開始買來BIOS里面就是沒有AMD-V的,后來就是靠BIOS更新加上的)。
舉個例子:博主linux上的顯示是:Virtualization: AMD-V 則證明該電腦支持AMD 的虛擬化技術(shù)
-
檢查系統(tǒng)是否支持lsmod | grep kvm
這行代碼告訴你系統(tǒng)是否加載了KVM有關(guān)模塊,如果有輸出相關(guān)模塊,請看kvm配置,否則接著看kvm的安裝(kvm基于內(nèi)核,需要內(nèi)核模塊才能正常工作)
-
KVM 安裝過程
KVM的依賴項除了內(nèi)核和內(nèi)核模塊主要有這些:firewalld(防火墻),dnsmasq,ebtables(網(wǎng)絡(luò)方面),libvirt(虛擬化接口),qemu(虛擬機本體)。另外,使用bridge-utils可以設(shè)置網(wǎng)卡橋接。
知道了需要的包,安裝就好了.
如果你的系統(tǒng)是Centos(RHEL/Fedora同理)你完全可以在安裝的時候就選擇虛擬化服務(wù)器的,如果要手動安裝,那么需要跑這樣一條命令(CENTOS8/fedora可能需要把yum替換為dnf):
sudo yum install -y virt-* libvirt bridge-utils qemu qemu-img qemu-kvm ,需不需要操作selinux就看著辦,如果因為selinux的原因?qū)е聼o法開機,那就改,沒問題就不需要動了(博主不是專業(yè)的運維。平時主玩ARCH,對這塊不是特別了解)
玩Ubuntu系列(ubuntu/deepin/mate/kali……)的同學(xué)安裝kvm的話也類似,不過這包名可能和上面有所不同,代碼如下:
sudo apt install qemu qemu-kvm libvirt-bin bridge-utils
Arch用戶
sudo pacman -S qemu libvirt ebtables dnsmasq firewalld bridge-utils
安裝完軟件包,接下來開啟防火墻和libvirt守護進程
sudo systemctl start firewalld && sudo systemctl start libvirtd 需不需要enable看你們自己的需要,如果是虛擬化母機或者經(jīng)常用到虛擬機的話,那么建議enable,開機自動把虛擬化服務(wù)啟動。
講完了基礎(chǔ)安裝工作,剩下的就是你如何控制kvm的事情了。圖形化/命令行
圖形化控制KVM一般使用virt-manager(中文名:虛擬系統(tǒng)管理器),剩下的就是圖形化設(shè)置的工作了。
嗯,沒錯,就是這個東西,創(chuàng)建虛擬機的話,只需要點創(chuàng)建虛擬機按鈕就好了(就是圖上那個亮著的按鈕)。
然后,連接這里選擇QEMU/KVM,就是使用KVM虛擬機創(chuàng)建.
番外內(nèi)容:[有的同學(xué)可能先裝了libvirt和virt-manager后裝qemu的,就會出現(xiàn)沒有連接或者連接里面沒有KVM的,那么,在確保kvm服務(wù)開啟的狀態(tài)下,點擊文件,添加連接。
![](https://img2020.cnblogs.com/blog/2045563/202006/2045563-20200625211926555-1690702968.png)
出來這個頁面,這里不用動,直接確定,不出意外,你就能導(dǎo)入KVM的連接了,需要知道的是,如果你之前使用virsh或者qemu命令行管理的話,你能夠在這里導(dǎo)入kvm連接,但是,并不能接管原來創(chuàng)建的虛擬機。]
至于以何種方式創(chuàng)建虛擬機,就看你需要,不過一般使用第一項使用ISO安裝系統(tǒng),如果你之前有kvm/qemu的磁盤鏡像(qcow2),你也可以用第四個(導(dǎo)入現(xiàn)有磁盤鏡像).
這里選擇需要使用的ISO鏡像文件.
點擊瀏覽彈出這個窗口
然后本地瀏覽選擇鏡像
選擇CPU/運行內(nèi)存資源
然后創(chuàng)建虛擬硬盤,這里如果你有現(xiàn)成的qcow2/row鏡像,你也可以直接拿來用。
番外內(nèi)容:[需要注意這點:通過libvirt 創(chuàng)建qemu鏡像的大小是固定的,就是分多少它馬上就吃多少的,不像vmware這樣會動態(tài)擴展,當然,也可以實現(xiàn),需要參考下面使用代碼創(chuàng)建虛擬機]
然后沒有什么問題了,就直接點完成,開始安裝系統(tǒng),安裝系統(tǒng)過程,這里就不贅述了,至于基礎(chǔ)的管理工作,進去虛擬機的窗口,點擊那個管理按鈕,會進入類似于vmware虛擬機設(shè)置的頁面,在里面可以進行操作(部分操作需要關(guān)機)。
下面是代碼創(chuàng)建虛擬機的介紹(高級玩法可能需要手動修改XML文件,這里就暫時不介紹了)
- 首先,你需要使用virsh這個命令來管理虛擬機,先創(chuàng)建存儲卷(磁盤鏡像)
virsh vol-create-as poolname volumename 10GiB --format aw|bochs|raw|qcow|qcow2|vmdk
一般QEMU/KVM支持的鏡像為qcow/qcow2/row
或者使用qemu-img來創(chuàng)建鏡像
敲黑板:qemu-img除了可以創(chuàng)建鏡像以外,也和virsh一樣支持鏡像修改,另外,qemu-img創(chuàng)建鏡像可以選擇預(yù)分配模式,從而解決上面使用圖形化鏡像過大的問題.
qemu-img create -f 'qcow2' -o preallocation=off /home/udream/test.qcow2 10G 這樣就可以創(chuàng)建一個10G大小的,關(guān)閉預(yù)分配的qcow2鏡像,這個鏡像文件沒安裝系統(tǒng)之前的大小是192.2Kb,默認直接創(chuàng)建的大小為10G
然后,有了磁盤鏡像,就可以創(chuàng)建虛擬機了
舉例代碼如下:
virt-install - --name test --memory 4096 --vcpus=2,maxvcpus=4 --cpu host --cdrom $HOME/test.iso --disk /home/udream/test.qcow2,size=10GiB --network user --virt-type kvm
這段代碼指定了虛擬機名字test,內(nèi)存1g,CPU最少2核最大4核,安裝盤位置:$HOME/test.iso,盤的大小,網(wǎng)絡(luò)類型,虛擬化接口KVM,使用之前創(chuàng)建的虛擬盤 /home/udream/test.qcow2 大小 10G
創(chuàng)建完成虛擬機以后使用```virsh start 虛擬機名字```啟動虛擬機
關(guān)閉虛擬機把start改為shutdown,強制關(guān)機為destory,重啟是reboot
管理虛擬網(wǎng)絡(luò),使用virsh net-后面跟操作(start/destory/create……)
當然,還有pool設(shè)置存儲池,vol設(shè)置存儲卷,snapshot設(shè)置快照,具體的,因為字數(shù)原因(怕某些同學(xué)太長不看),就不一個個碼了,你可以敲virsh --help查看具體幫助信息,不過。這幾個最常用的也就是create/start/stop/destory/list了,
這里舉個例子,啟動虛擬網(wǎng)絡(luò):```virsh net-start 虛擬網(wǎng)絡(luò)名``` 創(chuàng)建存儲池```virsh pool-create XML描述文件名```,其他的命令可以按照這樣的方式操作,下一篇是virsh命令的具體玩(配)法(制)介紹。
這次就講到這里了,本次內(nèi)容原創(chuàng)純手碼,部分命令為了確認正確性,參考了arch wiki,測試環(huán)境為ARCHLINUX 5.7.4-arch1-1 桌面環(huán)境kde plasma。
|