一、安裝kvm及其相關組件
1. 驗證CPU是否支持KVM;如果結果中有vmx(Intel)或svm(AMD)字樣,就說明CPU的支持的。
egrep '(vmx|svm)' /proc/cpuinfo
2. 關閉SELinux,將 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改爲 SELinux=disabled
3. 最小安裝的CentOS安裝一些最基本的包(可選項,因爲我是剛安裝好的CentOS,所以爲了下面方便點,先把一些必要的工具安裝下)
yum install epel-release net-tools vim unzip zip wget ftp -y
4. 安裝KVM及其依賴項(合起來yum會報錯)
yum install qemu-kvm -y
yum install libvirt -y
yum install virt-install -y
yum install bridge-utils -y
5. 驗證安裝結果,下圖說明已經成功安裝了
lsmod | grep kvm
6. 開啓kvm服務,並且設置其開機自動啓動
systemctl start libvirtd
systemctl enable libvirtd
7. 查看狀態操作結果,如下圖所示,說明運行情況良好
systemctl status libvirtd systemctl is-enabled libvirtd
8. 配置網橋模式,先將 /etc/sysconfig/network-scripts/ 目錄下的網卡配置文件備份一份(注:不要備在當前目錄以及子目錄下,其他目錄隨意)
添加ifcfg-br0
BOOTPROTO="static"
DEFROUTE="yes"
#NAME="ens33"
#UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="br0"
ONBOOT="yes"
IPADDR=10.0.0.130
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
DNS2=8.8.4.4
BOOTPROTO="static"
NM_CONTROLLED="no"
UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"
重啓網絡服務,使用 ifconfig 驗證操作結果,多了一塊網卡br0。
注意:宿主機需要安裝acpid服務才能實現 宿主機shell中關閉虛擬機(virsh shutdown vm0)
二、用vnc viewer安裝虛擬機 (注意:使用root賬戶)
1. 準備操作系統安裝鏡像文件,在本文中將使用和宿主環境一樣的CentOS7.3,把該文件放到 /home/kvm/iso.d/ 目錄下
2. 創建虛擬機文件存放的目錄
mkdir -p /home/kvm/img.d
3. 使用 virt-install 創建虛擬機
4. 打開防火牆上的5910端口
firewall-cmd --zone=public --add-port=5910/tcp --permanent
firewall-cmd --reload
5. 下載VNC Viewer, 使用VNC Viewer連接該虛擬機(kvm自帶vnc-server,所以只需下載vnc viewer即可),進行虛擬機操作系統的安裝,
6. 安裝完CentOS,系統要求重啓,這時候虛擬機沒有重啓(也不知是因爲什麼問題),VNC也連不上,先在宿主機上查看虛擬機狀態
virsh list --all
7. 手動啓動虛擬機, 再次使用VNC連接,發現已經可以連進去了
virsh start vm0
8. 其餘virsh操作
virt-clone -o vm0 -n vm1 -f /home/img.d/vm1.qcow2
virsh edit vm1 (一般都是更改vnc接口)
virsh shutdown vm0(關機)
virsh undefine vm0 (刪除虛擬機,但虛擬機文件要手動刪除)
克隆之前要確保源虛擬機關閉,命令:
virsh shutdown centos-dfy
2、克隆命令:
virt-clone -o centos-dfy -n centos-dfy01 -f /home/kvm/img.d/centos-dfy01.qcow2
命令解釋:
將centos-dfy 克隆,新的虛擬機名稱爲centos-dfy01,鏡像存儲路徑爲/home/kvm/img.d/centos-dfy01.qcow2
3、編輯新虛擬機
virsh edit centos-dfy01
修改其vnc端口
查找/vnc
4、打開新虛擬機
virsh start centos-dfy01
virsh list #顯示本地活動虛擬機
virsh list –all #顯示本地所有的虛擬機(活動的+不活動的)
virsh define ubuntu.xml #通過配置文件定義一個虛擬機(這個虛擬機還不是活動的)
virsh start ubuntu #啓動名字爲ubuntu的非活動虛擬機
virsh create ubuntu.xml # 創建虛擬機(創建後,虛擬機立即執行,成爲活動主機)
virsh suspend ubuntu # 暫停虛擬機
virsh resume ubuntu # 啓動暫停的虛擬機
virsh shutdown ubuntu # 正常關閉虛擬機
virsh destroy ubuntu # 強制關閉虛擬機
virsh dominfo ubuntu #顯示虛擬機的基本信息
virsh domname 2 # 顯示id號爲2的虛擬機名
virsh domid ubuntu # 顯示虛擬機id號
virsh domuuid ubuntu # 顯示虛擬機的uuid
virsh domstate ubuntu # 顯示虛擬機的當前狀態
virsh dumpxml ubuntu # 顯示虛擬機的當前配置文件(可能和定義虛擬機時的配置不同,因爲當虛擬機啓動時,需要給虛擬機分配id號、uuid、vnc端口號等等)
virsh setmem ubuntu 512000 #給不活動虛擬機設置內存大小
virsh setvcpus ubuntu 4 # 給不活動虛擬機設置cpu個數
virsh edit ubuntu # 編輯配置文件(一般是在剛定義完虛擬機之後)