VMware下的Centos7實踐Kvm虛擬化(通俗易懂)


雖然網上已經有很多關於kvm安裝的教程了,但我還是看得頭暈,有的教程里安裝的包很多,有的很少,也沒說明那些安裝包的作用是干嘛的,用的命令也不一樣,也沒解釋命令的意思是什么。

 我重新寫一個教程,盡量通俗易懂點,也是給增強我的記憶。

這里提示下,Hyper-v就是一個大坑!本來我是用Hyper-v來學習這個Kvm虛擬化的,我創建的宿主虛擬機可以連外網,宿主機里創建的kvm虛擬機是用橋接網絡,但無論怎樣設置都連接不了外網,kvm的虛擬機可以ping得通宿主機,宿主機也能ping得通kvm的虛擬機,宿主機可以ping得通外網,但就是kvm的虛擬機ping不通外網,但害我查了一整天,后面無奈用回VMware后,網絡全都正常。

而且用Hyper-v,明顯我的電腦內存占好多,每次啟動,還要等半天的什么合並檢查點,還不能連接U盤。

 

准備工作:一台能上網的Centos7虛擬機,VncViewer(這是在window運行的,到時可以連接虛擬機),XShell(遠程ssh工具),XFtp(上傳安裝包)

VncViewer下載地址:https://www.realvnc.com/en/connect/download/viewer/

XShell、XFtp下載地址:https://www.netsarang.com/zh/free-for-home-school/

主要步驟:

  1. 開啟嵌套虛擬功能(如果你不是用虛擬機的話,這步就不用)
  2. 安裝kvm工具包
  3. 設置橋接網卡(如果是用Nat的,這步不用)
  4. 創建第一個kvm虛擬機(安裝方式分控制台安裝及遠程圖形化安裝

 


 

1、開啟嵌套虛擬功能

一開始我是在hyper-v的虛擬機上安裝的,hyper-v比vmware麻煩點,得用以下命令操作

#以下命令不區分大小寫
Get-VM    #獲取全部虛擬機
Get-VMProcessor -VMName xxx | fl    #查看虛擬機屬性,ExposeVirtualizationExtensions屬性代表是否開啟嵌套虛擬化
Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName xxx    #開啟嵌套虛擬化,得先把虛擬機關機,不然會出錯

 

 

后面改用VMware就簡單多了,如下圖,把紅圈里兩個復選框勾上就行了,虛擬機得先關機才能修改

 

 打開虛擬機,輸入以下命令,查看是否支持虛擬化,如果沒上面的操作是肯定沒有的

cat /proc/cpuinfo | egrep "vmx|svm"

 


 

2、安裝kvm工具包

我看網上好多教程安裝的包很多,但又沒說明各個包是干什么的,原諒我有點強迫症,我必須得了解每個包作用到底是干什么的

但經我測試后,最終發現只需安裝三個包,分別是libvirt、qemu-kvm、virt-install(網上寫的一些其它的包,如libvirt-python、libvirt-client、qemu-img,其實在安裝這3個包時也會順帶安裝了)。

我的理解:kvm只是linux一個功能,但linux沒有提供任何方便我們去使用它的命令,所以需要安裝一些工具,而libvirt、qemu-kvm、virt-install都是工具包,qemu-kvm提供一些qemu開頭的命令(這個不安裝會提供錯誤主機不支持任意虛擬化選項),libvirt提供一個服務(libvirtd)和其它virsh管理命令,virt-install提供安裝管理虛擬機的命令

yum -y install qemu-kvm libvirt virt-install

因為我的是命令行管理,不在虛擬機上用圖形化管理,所以只需這三個包,因為要在虛擬機上圖形管理,還得安裝個XWindows,我覺得生產環境應該也沒人去裝個圖形管理。

 

還有一個包bridge-utils,這是用來管理橋接網卡的,這個我裝libvirt包時也順帶裝了,如果你的沒包裝,就安裝一下

yum -y install bridge-untils

 


 

3、設置橋接網卡

 經常玩虛擬機的都知道有兩種試,一種是Nat,一種是橋接,

Nat就好比宿主機(就是安裝kvm虛擬化的主機)是台路由器,虛擬機是連接路由器下面的電腦,跟宿主機同個網段的電腦是訪問不了虛擬機的,要訪問的話,就得在宿主機上設置端口映射。

而橋接就是把宿主機的物理網卡當做一個交換機,虛擬機直接連接交換機,那就跟宿主機是同一個網段的了,可以被其它電腦訪問到,一般做服務虛擬化都是用橋接模式。

 先切換到網卡目錄,然后把原來的網卡文件復制一份,名稱為ifcfg-br0,命令如下

cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-br0  #你的不一定是ifcfg-ens33,我開始用hyper-v時,接口是叫eth0

然后修改ifcfg-br0的配置,如下

 

修改ifcfg-ens33,主要是新增加一行,如下所示,如果你的本來是靜態IP的話,就把靜態IP的配置注釋掉,只保留在br0就行了

然后重啟下網絡服務

systemctl restart NetworkManager
systemctl restart network

 然后查看下網橋接口

brctl show

這個圖是我在后面補的,紅圈的是在啟動虛擬機后才有的,你如果按博客順序的話,現在應該是看不到這個紅圈的vnet0的,等你把虛擬機啟動后,再查看就看到這個vnet0,這表示vnet0也撟接在br0下面

 


 

 4、創建第一個kvm虛擬機

 這個就需要用到之前安裝的包virt-install了,我先把命令主要參數列出來

#virt-install參數
--name=xxx                            #虛擬機唯一名稱
--memory=1024[,maxmemory=2048]        #虛擬機內存,單位為mb --memory=1024,maxmemory=2048
--vcpus=1[,maxvcpus=4]                #虛擬機CPU數量
--cdrom=/xxx/xxx                     #指定安裝源文件
--location=/xxx/xxx                    #指定安裝源文件,跟--cdrom二選一,如果要用控制台安裝得用這個,配合--extra-args參數
--disk path=/xx/xxx[,size=10,format=raw] #存儲文件及格式
--graphics vnc,port=xxx,listen=xxx     #圖形化參數,不用圖形化用--graphics none --extra-args="console=ttyS0"
--network bridge=br0              #網絡連接方式
--os-variant=xxx               #對應的系統值,可以osinfo-query os這個查對應值
--virt-type=kvm                   #虛擬機類型
--noautoconsole                #不自動連接,默認是安裝時用virt-viewer或者virsh console去連接虛擬機

 把管理虛擬機的命令也寫一下

virsh list --all    #查看所有虛擬機,加all列出關機狀態的
virsh console xxx    #以控件台連接到指定虛擬機
virsh start xxx        #啟動虛擬機
virsh shutdown xxx    #關閉虛擬機,一般關不了
virsh destroy xxx    #強制關閉虛擬機
virsh autostart xxx    #設置虛擬機隨機啟動
virsh undefine xxx    #刪除虛擬機,只會刪除對應的xml,硬盤文件不會刪除
virsh autostart xxx    #設置虛擬機自動啟動

 

4.1、利用VncViewer遠程圖形化安裝的方式

virt-install主要參數--graphics vnc,port=5901,listen=xxx

原理就是用virt-install命令安裝時,在宿主機上開啟一個vnc端口5901,然后用VncViewer程序連接宿主機的5901端口,跟平時圖形化安裝一樣了。

推薦用Xshell連接,因為可以方便地復制命令,再裝個XFtp上傳iso文件到/data/iso目錄里

 創建所需目錄

mkdir -p /data/iso /data/vm

把安裝文件上傳到/data/iso后,用Xshell連接后,復制以下命令,回車(以下命令的斜杠,只是為了好看分行,不是必要的)

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來連接了,對了,得先把防火牆服務給關了

systemctl stop firewalld  #關閉防火牆服務
systemctl --zone=public --add-ports=5900/tcp --permanent    #或者用這個開放5900端口

 在vncViewer上輸入ip跟端口號

然后就可以圖形化安裝了,非常方便。

 

 4.2、用控制台安裝的方式

virt-install主要參數--location跟--extra-args配合,不用--cdrom參數,復制以下命令,回車

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'

 

接着就會進入控制台安裝界面,如下圖所示

 

可能還有些人沒在控制台安裝過centos7,那我簡單說下

觀察這個,這些可以對應我上面的那個圖形化安裝的圖,注意紅圈,打X的就是已經設置好了,!的代表還沒設置,需要進行配置,輸入q退出安裝,輸入b開始安裝,輸入r刷新

  1. 語言設置
  2. 時區設置
  3. 安裝源
  4. 軟件選擇
  5. 安裝位置
  6. Kdump
  7. 網絡配置
  8. Root密碼
  9. 用戶設置

那我們需要對那些!的配置項進行設置,或者修改原來設置,先修改第1項,語言設置,輸入1回車,會顯示下圖,找到我們的中文,輸入68,回車

 

然后輸入1,簡體中文,回車

 

會回到主界面,你會看到第1項已經變了,變成簡體中文了

 

 

再配置時區,輸入2,回車,然后輸入1(Set timezone),然后輸入2(Asia亞洲),然后輸入64(Shanhai上海)

 

回到主界面,發現第2項已改變了

 

 

接着再設置安裝位置,輸入5,回車,如下圖,看到硬盤前面已經是X,說明已經選擇了,直接輸入c繼續就好了

 

這里不太懂,我默認,輸入c繼續

 

還是保持默認LVM,輸入c繼續

 

會回到主界面,發現安裝位置也改變了,那最后來設置下Root密碼,輸入8,回車

 

重復輸入兩次root密碼

 

 

回到主界面,發現沒有!號了,那輸入b就可以進行安裝了,你會發現其實控制台安裝跟圖形化安裝也是差不多的。

 

安裝好后啟用下網卡,就可以正常連接外網的,我一開始是用Hyper-v,導致虛擬機一直連不了外網,以為哪里配置不對,用回VMware后就一切正常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM