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
