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