centos7之KVM虛擬化平台


一、環境介紹:

  centos7.4

  172.16.5.238

  vm虛擬機(BIOS打開VT功能,vmware station打開虛擬化選項)

  

  檢查是否支持虛擬化。

 cat /proc/cpuinfo | grep vmx

 

二、部署

1、配置網卡。

ifcfg-ens33,本地宿主機網卡除了正常配置外,只需要加一個BRIDGE=br0就行。

2、新建一個ifcfg-br0網卡。

#touch ifcfg-br0

文件中寫入如下內容,把宿主機的ip,mask,gateway,dns都原封不動移動過來,再新加其它幾個選項。

3、重啟網卡。

#systemctl restart network.service

4、驗證(reboot重啟完后查看)。

 

5、根據個人需求,安裝需要的程序。

yum install -y wget lrzsz gcc gcc-c++ vim

6、安裝kvm

 yum -y install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client bridge-utils virt-viewer virt-install 

  啟動並設置開機自啟動

systemctl start libvirtd
systemctl enable libvirtd

  

7、查看模塊

lsmod | grep kvm

8、關閉firewalld和selinux,如果有iptables的話,先關閉。

9、新建兩個目錄存放iso文件和image文件。

mkdir -p /data/iso
mkdir -p /data/vm-image

10、開始安裝虛擬機,這里我們安裝的是centos7.4

virt-install --name centos7.4  --ram 1024 --vcpus=1 --disk path=/data/vm-image/centos7.4.img,size=5 --network bridge=br0 --cdrom  /data/iso/CentOS-7-x86_64-DVD-1708.iso  --vnclisten=172.16.5.238  --vncport=6900 --vnc

 提示如下的時候,需要打開vnc客戶端軟件連接。

 1 virt-install 
 2 --name centos7.4  #虛擬機名稱
 3 --ram 1024 #內存大小
 4 --vcpus=1 #CPU個數
 5 --disk path=/data/vm-image/centos7.4.img,size=5 #系統存放位置和硬盤大小(GB)
 6 --network bridge=br0  #橋接網卡信息
 7 --cdrom  /data/iso/CentOS-7-x86_64-DVD-1708.iso  #iso文件位置
 8 --vnclisten=172.16.5.238  #vnc連接地址
 9 --vncport=6900 #vnc連接端口
10 --vnc #連接方式
創建虛擬機參數介紹

 注意:

  關閉虛擬機

  virsh shutdown +域名  

  這個時候我在virsh list發現 這個虛擬機還是在運行的,並沒有關閉。

  我們需要安裝一個acpid的服務並啟動它,什么是ACPI?

  ACPI是Advanced Configuration and PowerInterface縮寫,高級配置和電源管理接口。

  acpid中的d則代表daemon。Acpid是一個用戶空間的服務進程,它充當linux內核與應用程序之間通信的接口,負責將kernel中的電源管理事件轉發給應用程序。

  Acpid是一個用戶空間的服務進程,它充當linux內核與應用程序之間通信的接口,負責將kernel中的電源管理事件轉發給應用程序。

  其實,說明了就是通過這個服務來執行電源關閉的動作,這也是為什么我們執行virsh shutdown +域名無法關機的原因。

  所以,我們需要在子系統里面安裝acpid,啟動服務器后重啟一下子系統,這樣我們在virsh控制台就可以reboot和shutdown了,如果是windows,需要在宿主機上安裝acpid,但是是能用shutdown命令,reboot是不可以的。不過可以用destory這個命令。

#yum install -y acpid
#/etc/init.d/acpid start或者service start acpid

  如果此時我沒法進入子機安裝acpi協議的話,那么就無法關掉該虛擬機,此時可以用下面這種方法。

#virsh destroy +域名  
這種方式的關閉,是一種刪除的方式,只是在virsh list中刪除了該虛擬機,更多的時候我們習慣用這個命令關機

  

11、安裝vncviewer,地址https://www.realvnc.com/en/connect/download/viewer/

12、連接虛擬機

 

vnc連接上虛擬機后,下面是按照操作系統的事情了,這里不再熬述。

 1 # virsh list //查看正在運行 
 2 # virsh list --all //查看所有 
 3 # virsh start benet //啟動 
 4 # virsh shutdown benet //關機 
 5 # virsh destroy benet //強制關機 
 6 # virsh autostart benet //隨機啟動 
 7 # virsh suspend benet //掛起 
 8 # virsh resume benet //恢復 
 9 # virsh undefine benet //刪除 
10 # virsh edit benet //編輯、 
管理KVM虛擬機

 

13、增加硬盤

  熱添加(虛擬機必須是開機的狀態下添加,添加成功后,重啟就會失效。)

  1、查看當前硬盤名稱,如下,只有/dev/vda這個一個5GB的硬盤,我們下面給他增加一塊3GB的硬盤。

   

  2、進入img存放的目錄,這里是/data/vm-image/,然后創建一個硬盤文件。

qemu-img create -f raw /data/vm-image/centos7.4_disk.img 3G

  

  3、添加硬盤。

virsh attach-disk centos7.4  /data/vm-image/centos7.4_disk.img  vdb --cache none

  驗證;

  

  冷添加(虛擬機是關機狀態下添加,常用)

qemu-img create -f qcow2 /data/vm-image/centos7.4_disk.img 4G

qcow2是我們提前看了安裝操作系統完成后,對應操作系統的xml文件中disk區域type的名稱。后面的路徑就是我們要把這個硬盤文件存放到哪里,叫什么名字。最后面的4G是我們要添加的硬盤容量。

修改對應操作系統的xml文件(如若不熟悉可以提前cp一份,備份)

vim /etc/libvirt/qemu/centos7.4.xml

在文件中第一塊硬盤的下面添加如下內容(注意里面的內容全部是從上面復制下來,刪除開頭是<address這一行,注意type的名稱一定要和上面創建時候的-f后面選項對應上,file=硬盤文件的絕對路徑和名稱,dev是我們要加的第幾塊硬盤,這里我加的是第二塊,所以是vdb,為什么是vd呢,看上面第一塊硬盤的名稱是vda,那第二塊就是vdb,千萬別自作主張寫個sdb或者hdb。):

<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/vm-image/centos7.4_disk.img'/>
      <target dev='vdb' bus='virtio'/>
 </disk>

 

修改完成后注意,一定要重啟libvirtd服務才會生效。

systemctl restart libvirtd

 開機啟動虛擬機,查看

 

剩下的就不在熬述,結果如下圖:

 

14、克隆

 首先需要將被克隆的服務器關機,被克隆的機器沒有增加過硬盤。

1 virt-clone  
2 --original centos7.4  #被克隆服務器明后才能
3 --name centos7.4.bak  #克隆后的服務器名稱
4 -f /data/vm-image/centos7.4-bak   #被克隆服務器存放位置
5 --force #強制
克隆命令介紹
virt-clone  --original centos7.4  --name centos7.4.bak  -f /data/vm-image/centos7.4-bak  --force

查看,一個克隆成功的操作系統已經完成,他也有xml和img文件。這里我們需要修改xml文件。

修改該xml文件,如下圖克隆完成后的xml文件的連接信息,可以確定port肯定不能是自動。

修改為。

然后重啟libvirtd服務,否則連接端口肯定就從5900開始了。

15、遷移

冷遷移:

  基本原理就是把這個虛擬機的xml文件和img傳到其它虛擬機里面,然后修改xml文件中的ip和端口等其它文件,如果你有磁盤文件,也需要一起cp到目標服務器上。

  可以用domblklist centos7.4(domblklist  虛擬機名稱)查看對應虛擬機的img文件(包括系統文件和硬盤文件等)

  

  定義虛擬機。

#virsh define /etc/libvirt/qemu/centos7.4.xml 

  

熱遷移:

   https://blog.csdn.net/taiyang1987912/article/details/47973479

 

a、首先用到的肯定是img和xml文件,先將這兩個文件傳動需要恢復的KVM主機上面。

16、增加網卡

  a、首先我們需要在xml文件中復制一份interface的內容,並修改。

  

  b,重啟libvirtd服務。

  c、使用ip a命令查看是否添加成功,如下,mac地址就是我上面在xml文件中寫的那個mac地址。

   

  d、使用命令nmcli conn查看網卡的UUID

  

  e、cp ifcfg-eth0 到ifcfg-eth1。

  

  f、這里是ifcfg-eth1網卡信息,注意網卡名稱和UUID的修改。

  

  g、添加成功

  

 


免責聲明!

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



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