雖然網(wǎng)上已經(jīng)有很多關(guān)于kvm安裝的教程了,但我還是看得頭暈,有的教程里安裝的包很多,有的很少,也沒說明那些安裝包的作用是干嘛的,用的命令也不一樣,也沒解釋命令的意思是什么。 ?我重新寫一個教程,盡量通俗易懂點,也是給增強我的記憶。
? 準(zhǔn)備工作:一臺能上網(wǎng)的Centos7虛擬機(jī),VncViewer(這是在window運行的,到時可以連接虛擬機(jī)),XShell(遠(yuǎn)程ssh工具),XFtp(上傳安裝包) VncViewer下載地址:https://www./en/connect/download/viewer/ XShell、XFtp下載地址:https://www./zh/free-for-home-school/ 主要步驟:
? ? 1、開啟嵌套虛擬功能一開始我是在hyper-v的虛擬機(jī)上安裝的,hyper-v比vmware麻煩點,得用以下命令操作 #以下命令不區(qū)分大小寫 Get-VM #獲取全部虛擬機(jī) Get-VMProcessor -VMName xxx | fl #查看虛擬機(jī)屬性,ExposeVirtualizationExtensions屬性代表是否開啟嵌套虛擬化 Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName xxx #開啟嵌套虛擬化,得先把虛擬機(jī)關(guān)機(jī),不然會出錯 ? ? 后面改用VMware就簡單多了,如下圖,把紅圈里兩個復(fù)選框勾上就行了,虛擬機(jī)得先關(guān)機(jī)才能修改 ? ?打開虛擬機(jī),輸入以下命令,查看是否支持虛擬化,如果沒上面的操作是肯定沒有的 cat /proc/cpuinfo | egrep "vmx|svm" ? ? 2、安裝kvm工具包我看網(wǎng)上好多教程安裝的包很多,但又沒說明各個包是干什么的,原諒我有點強迫癥,我必須得了解每個包作用到底是干什么的 但經(jīng)我測試后,最終發(fā)現(xiàn)只需安裝三個包,分別是libvirt、qemu-kvm、virt-install(網(wǎng)上寫的一些其它的包,如libvirt-python、libvirt-client、qemu-img,其實在安裝這3個包時也會順帶安裝了)。 我的理解:kvm只是linux一個功能,但linux沒有提供任何方便我們?nèi)ナ褂盟拿?,所以需要安裝一些工具,而libvirt、qemu-kvm、virt-install都是工具包,qemu-kvm提供一些qemu開頭的命令(這個不安裝會提供錯誤主機(jī)不支持任意虛擬化選項),libvirt提供一個服務(wù)(libvirtd)和其它virsh管理命令,virt-install提供安裝管理虛擬機(jī)的命令 yum -y install qemu-kvm libvirt virt-install 因為我的是命令行管理,不在虛擬機(jī)上用圖形化管理,所以只需這三個包,因為要在虛擬機(jī)上圖形管理,還得安裝個XWindows,我覺得生產(chǎn)環(huán)境應(yīng)該也沒人去裝個圖形管理。 ? 還有一個包bridge-utils,這是用來管理橋接網(wǎng)卡的,這個我裝libvirt包時也順帶裝了,如果你的沒包裝,就安裝一下 yum -y install bridge-untils ? ? 3、設(shè)置橋接網(wǎng)卡?經(jīng)常玩虛擬機(jī)的都知道有兩種試,一種是Nat,一種是橋接, Nat就好比宿主機(jī)(就是安裝kvm虛擬化的主機(jī))是臺路由器,虛擬機(jī)是連接路由器下面的電腦,跟宿主機(jī)同個網(wǎng)段的電腦是訪問不了虛擬機(jī)的,要訪問的話,就得在宿主機(jī)上設(shè)置端口映射。 而橋接就是把宿主機(jī)的物理網(wǎng)卡當(dāng)做一個交換機(jī),虛擬機(jī)直接連接交換機(jī),那就跟宿主機(jī)是同一個網(wǎng)段的了,可以被其它電腦訪問到,一般做服務(wù)虛擬化都是用橋接模式。 ?先切換到網(wǎng)卡目錄,然后把原來的網(wǎng)卡文件復(fù)制一份,名稱為ifcfg-br0,命令如下 cd /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-br0 #你的不一定是ifcfg-ens33,我開始用hyper-v時,接口是叫eth0 然后修改ifcfg-br0的配置,如下 ? 修改ifcfg-ens33,主要是新增加一行,如下所示,如果你的本來是靜態(tài)IP的話,就把靜態(tài)IP的配置注釋掉,只保留在br0就行了 然后重啟下網(wǎng)絡(luò)服務(wù) systemctl restart NetworkManager systemctl restart network ?然后查看下網(wǎng)橋接口 brctl show 這個圖是我在后面補的,紅圈的是在啟動虛擬機(jī)后才有的,你如果按博客順序的話,現(xiàn)在應(yīng)該是看不到這個紅圈的vnet0的,等你把虛擬機(jī)啟動后,再查看就看到這個vnet0,這表示vnet0也撟接在br0下面 ? ? ?4、創(chuàng)建第一個kvm虛擬機(jī)?這個就需要用到之前安裝的包virt-install了,我先把命令主要參數(shù)列出來 #virt-install參數(shù) --name=xxx #虛擬機(jī)唯一名稱 --memory=1024[,maxmemory=2048] #虛擬機(jī)內(nèi)存,單位為mb --memory=1024,maxmemory=2048 --vcpus=1[,maxvcpus=4] #虛擬機(jī)CPU數(shù)量 --cdrom=/xxx/xxx #指定安裝源文件 --location=/xxx/xxx #指定安裝源文件,跟--cdrom二選一,如果要用控制臺安裝得用這個,配合--extra-args參數(shù) --disk path=/xx/xxx[,size=10,format=raw] #存儲文件及格式 --graphics vnc,port=xxx,listen=xxx #圖形化參數(shù),不用圖形化用--graphics none --extra-args="console=ttyS0" --network bridge=br0 #網(wǎng)絡(luò)連接方式 --os-variant=xxx #對應(yīng)的系統(tǒng)值,可以osinfo-query os這個查對應(yīng)值 --virt-type=kvm #虛擬機(jī)類型 --noautoconsole #不自動連接,默認(rèn)是安裝時用virt-viewer或者virsh console去連接虛擬機(jī) ?把管理虛擬機(jī)的命令也寫一下 virsh list --all #查看所有虛擬機(jī),加all列出關(guān)機(jī)狀態(tài)的 virsh console xxx #以控件臺連接到指定虛擬機(jī) virsh start xxx #啟動虛擬機(jī) virsh shutdown xxx #關(guān)閉虛擬機(jī),一般關(guān)不了 virsh destroy xxx #強制關(guān)閉虛擬機(jī) virsh autostart xxx #設(shè)置虛擬機(jī)隨機(jī)啟動 virsh undefine xxx #刪除虛擬機(jī),只會刪除對應(yīng)的xml,硬盤文件不會刪除 virsh autostart xxx #設(shè)置虛擬機(jī)自動啟動 ? 4.1、利用VncViewer遠(yuǎn)程圖形化安裝的方式virt-install主要參數(shù)--graphics vnc,port=5901,listen=xxx 原理就是用virt-install命令安裝時,在宿主機(jī)上開啟一個vnc端口5901,然后用VncViewer程序連接宿主機(jī)的5901端口,跟平時圖形化安裝一樣了。 推薦用Xshell連接,因為可以方便地復(fù)制命令,再裝個XFtp上傳iso文件到/data/iso目錄里 ?創(chuàng)建所需目錄 mkdir -p /data/iso /data/vm 把安裝文件上傳到/data/iso后,用Xshell連接后,復(fù)制以下命令,回車(以下命令的斜杠,只是為了好看分行,不是必要的) virt-install --name=c7 --memory=1024 --vcpus=1 --cdrom=/data/iso/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/vm/c7.qcow2,size=10,format=qcow2 --network bridge=br0 --virt-type=kvm --os-variant=centos7.0 --graphics vnc,listen=0.0.0.0,port=5900 --noautoconsole 看到以上提示,就可以用VncViewer來連接了,對了,得先把防火墻服務(wù)給關(guān)了 systemctl stop firewalld #關(guān)閉防火墻服務(wù) systemctl --zone=public --add-ports=5900/tcp --permanent #或者用這個開放5900端口 ?在vncViewer上輸入ip跟端口號 然后就可以圖形化安裝了,非常方便。 ? ?4.2、用控制臺安裝的方式virt-install主要參數(shù)--location跟--extra-args配合,不用--cdrom參數(shù),復(fù)制以下命令,回車 virt-install --name=c7-2 --memory=1024 --vcpus=1 --location=/data/iso/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/vm/c7-2.qcow2,size=5,format=qcow2 --network bridge=br0 --virt-type=kvm --os-variant=centos7.0 --graphics none --extra-args 'console=ttyS0' ? 接著就會進(jìn)入控制臺安裝界面,如下圖所示 ? 可能還有些人沒在控制臺安裝過centos7,那我簡單說下 觀察這個,這些可以對應(yīng)我上面的那個圖形化安裝的圖,注意紅圈,打X的就是已經(jīng)設(shè)置好了,!的代表還沒設(shè)置,需要進(jìn)行配置,輸入q退出安裝,輸入b開始安裝,輸入r刷新
那我們需要對那些!的配置項進(jìn)行設(shè)置,或者修改原來設(shè)置,先修改第1項,語言設(shè)置,輸入1回車,會顯示下圖,找到我們的中文,輸入68,回車 ? 然后輸入1,簡體中文,回車 ? 會回到主界面,你會看到第1項已經(jīng)變了,變成簡體中文了 ? ? 再配置時區(qū),輸入2,回車,然后輸入1(Set timezone),然后輸入2(Asia亞洲),然后輸入64(Shanhai上海) ? 回到主界面,發(fā)現(xiàn)第2項已改變了 ? ? 接著再設(shè)置安裝位置,輸入5,回車,如下圖,看到硬盤前面已經(jīng)是X,說明已經(jīng)選擇了,直接輸入c繼續(xù)就好了 ? 這里不太懂,我默認(rèn),輸入c繼續(xù) ? 還是保持默認(rèn)LVM,輸入c繼續(xù) ? 會回到主界面,發(fā)現(xiàn)安裝位置也改變了,那最后來設(shè)置下Root密碼,輸入8,回車 ? 重復(fù)輸入兩次root密碼 ? ? 回到主界面,發(fā)現(xiàn)沒有!號了,那輸入b就可以進(jìn)行安裝了,你會發(fā)現(xiàn)其實控制臺安裝跟圖形化安裝也是差不多的。 ? 安裝好后啟用下網(wǎng)卡,就可以正常連接外網(wǎng)的,我一開始是用Hyper-v,導(dǎo)致虛擬機(jī)一直連不了外網(wǎng),以為哪里配置不對,用回VMware后就一切正常。 來源:https://www./content-3-326251.html |
|