1. 程式人生 > 實用技巧 >CentOS 7.5 安裝KVM虛擬機器(Linux)

CentOS 7.5 安裝KVM虛擬機器(Linux)

1.認識理解KVM虛擬機器

Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模組,自Linux 2.6.20之後整合在Linux的各個主要發行版本中。
它使用Linux自身的排程器進行管理,所以相對於Xen,其核心原始碼很少。KVM目前已成為學術界的主流VMM之一。
KVM的虛擬化需要硬體支援(如Intel VT技術或者AMD V技術)。是基於硬體的完全虛擬化。
而Xen早期則是基於軟體模擬的Para-Virtualization,新版本則是基於硬體支援的完全虛擬化。但Xen本身有自己的程序排程器,儲存管理模組等,所以程式碼較為龐大。
廣為流傳的商業系統虛擬化軟體VMware ESX系列是基於軟體模擬的Full-Virtualization。


2.探討目標
在CentOS7母機系統上安裝KVM服務,並啟動一個CentOS虛擬機器

安裝說明
KVM建立在母機系統上,因此對機器有一定的配置要求,比如svm, selinux等,這些基本問題不大。
另外有網友說不能用VMware虛擬機器做母機安裝KVM,本次實驗用的母機系統使用的是VMware Workstation 14 Pro安裝的CentOS7,結果證明可以使用。

KVM使用libvirt這個開源的API進行管理。
libvirt是提供了一個方便的方式來管理虛擬機器和其他虛擬化功能的軟體的集合,如儲存和網路介面管理。這些軟體包括一個API庫,一個守護程序(Libvirtd),和一個命令列實用程式(virsh)。
libvirt的首要目標是能夠管理多個不同的虛擬化供應商/虛擬機器管理程式提供一個單一的方式。例如,命令“virsh列表等等都可以用於任何支援現有的虛擬機器管理程式列表(KVM、Xen、VMware ESX,等)不需要學習管理程式特定的工具!

3.依賴包安裝
yum install -y qemu-kvm libvirt virt-install bridge-utils
安裝完上述依賴包好最好重啟一下伺服器

檢視KVM安裝的狀態,可以使用lsmod檢視狀態
[root@linux-node1]#lsmod |grep kvm

有上面三行輸出,說明KVM安裝成功

4.管理服務
啟動libvirtd守護程序
systemctl start libvirtd
systemctl status libvirtd


5.安裝虛擬機器
首先需要下載一個映象檔案到母機本地
我們的KVM虛擬機器將要安裝CentOS系統,於是到CentOS官網找一個映象的下載連結,使用wget命令下載到本地
之前測試將映象下載到/root目錄,結果安裝開始時提示無法讀取映象檔案,為了避免許可權問題,我們將映象檔案下載到/home目錄
wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso -P /home/

執行安裝虛擬機器命令:

virt-install \
--virt-type=kvm \
--name=kvm-1 \
--vcpus=2 \
--memory=2048 \
--location=/home/CentOS-7-x86_64-Minimal-1804.iso \
--disk path=/data/vms/kvm-1.qcow2,size=15,format=qcow2 \
--network bridge=virbr0 \
--graphics none \
--extra-args='console=ttyS0' \
--force

引數解析:
--name=kvm-1   虛擬機器名字為kvm-1
--vcpus=2      2個虛擬CPU核心
--memory=2048 2G記憶體
--disk path=/data/vms/kvm-1.qcow2,size=15,format=qcow2   虛擬機器硬碟檔案所在目錄及名字,大小為15G,格式為qcow2,此引數會自動生成該硬碟檔案在對應目錄
--network bridge=virbr0    虛擬機器橋接用的網絡卡,不一定是這個名字,在母機上用ifconfig檢視實際名字 (這裡預設使用的是NAT模式,如果要使用Bridge模式,請參考另外一篇文章)

如果一切正常,會進入安裝iso安裝介面。

上面的設定跟在圖形介面安裝操作一樣,分別進去設定一下就可以繼續安裝了,設定完如下

然後敲b開始進行安裝,成功安裝到最後頁面:

回車後虛擬機器會從開機介面一直進入到登陸介面,輸入root和密碼就登陸進了虛擬機器系統

CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-8707fc0ebc304aecae24959960933077) 7 (Core)

......

[ 10.953832] Netfilter messages via NETLINK v0.30.
[ 10.967303] ip_set: protocol 6

CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

localhost login: root
Password:
[root@localhost ~]#

檢視虛擬機器資訊

6.退出虛擬機器回到母機系統

同時按Ctrl+]

7.重新連線虛擬機器
virsh console kvm-1

8.KVM 操作虛擬機器常用命令:
列出所有的虛擬機器
virsh list --all

顯示虛擬機器資訊
virsh dominfo kvm-1

顯示虛擬機器記憶體和cpu的使用情況
yum install virt-top -y
virt-top

顯示虛擬機器分割槽資訊
virt-df kvm-1

關閉虛擬機器(shutodwn)
virsh shutdown kvm-1

啟動虛擬機器
virsh start kvm-1

設定虛擬機器(kvm-1)跟隨系統自啟
virsh autostart kvm-1

關閉虛擬機器自啟
virsh autostart --disable kvm-1

刪除虛擬機器
virsh undefine kvm-1