在centos7上安裝kvm,用virsh 管理

一、安裝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

TYPE="Bridge"
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

改寫ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NM_CONTROLLED="no"
UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"

開啓stp服務
brctl stp br0 on

重啓網絡服務,使用 ifconfig 驗證操作結果,多了一塊網卡br0。


注意:宿主機需要安裝acpid服務才能實現 宿主機shell中關閉虛擬機(virsh shutdown vm0)

yum -y install acpid
systemctl start acpid
systemctl enable acpid


二、用vnc viewer安裝虛擬機 (注意:使用root賬戶)

1. 準備操作系統安裝鏡像文件,在本文中將使用和宿主環境一樣的CentOS7.3,把該文件放到 /home/kvm/iso.d/ 目錄下


2. 創建虛擬機文件存放的目錄

mkdir -p /home/kvm/img.d

3. 使用 virt-install 創建虛擬機

virt-install --name vm0 \
--memory 4096 --disk /home/kvm/img.d/vm0.qcow2,format=qcow2,size=32 \
--network bridge=br0 \--os-type=linux \
--cdrom /home/kvm/iso.d/CentOS-7.3-x86_64-DVD.iso \
--vnc --vncport=5910 --vnclisten=0.0.0.0


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 (刪除虛擬機,但虛擬機文件要手動刪除)


三、克隆虛擬機
1、關閉虛擬機:
克隆之前要確保源虛擬機關閉,命令:
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 命令


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                                 # 編輯配置文件(一般是在剛定義完虛擬機之後)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章