首頁 > 軟體

CentOS6.5部署KVM及實現線上遷移

2020-06-16 17:20:35

一、前言
  虛擬化技術已經成為未來計算機技術的一個重要的發展方向。Linux在虛擬化方面已經有了很多種解決方案:VMware、VirtualBox、Xen和KVM!現在給大家分享下本人在KVM裡遇到坑及解決方法。
  
  KVM簡介
  KVM是一個全虛擬化的解決方案。可以在x86架構的計算機上實現虛擬化功能。但KVM需要CPU中虛擬化功能的支援,只可在具有虛擬化支援的CPU上執行,即具有VT功能的Intel
  CPU和具有AMD-V功能的AMD CPU。
  在kvm技術中應用到2樣東西:kvm+qemu
  kvm負責cpu虛擬化+記憶體虛擬化,實現了cpu和記憶體的虛擬化,但kvm不能模擬其他裝置;
  qemu是模擬IO裝置(網絡卡,磁碟),kvm加上qemu之後就能實現真正意義上伺服器虛擬化。
  因為用到了上面兩個東西,所以一般都稱之為qemu-kvm

  關於KVM的介紹在這裡我就不多說了,有興趣的童鞋可以自己去查詢下;下面我們直接進行部署階段。

二、環境介紹
  本環境需要至少3台機器分別為:

1、KVM_Server_1: 192.168.30.131
2、KVM_Server_2: 192.168.30.132
3、iSCSI_Server: 192.168.30.133

三、安裝前的準備(3台主機都需要操作)

  1、開啟BISO中的CPU虛擬化支援(具體方法在這裡就不多介紹了)
  2、檢視系統對KVM虛擬化的支援

[root@localhost ~]# egrep "svm|vmx" /proc/cpuinfo |wc -l1  註:vmx是Intel系列CPU支援虛擬化的標籤;
    svm是AMD系列CPU支援虛擬化的標籤;
     如果數值大於0表示支援虛擬化

      3、設定主機FQDN

[root@localhost ~]# hostname --fqdn
localhost
[root@localhost ~]# sed -i "s/HOSTNAME=.*$/HOSTNAME=KVM-1/g" /etc/sysconfig/network
[root@localhost ~]# hostname KVM-1
[root@KVM-1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@KVM-1 ~]# echo "192.168.30.131 KVM-1" >> /etc/hosts
[root@KVM-1 ~]# echo "192.168.30.132 KVM-2" >> /etc/hosts
[root@KVM-1 ~]# hostname --fqdn
KVM-1
[root@KVM-1 ~]# exit

        4、關閉Selinux

[root@KVM-1 ~]# grep "SELINUX=enforcing" /etc/selinux/config
SELINUX=enforcing
[root@KVM-1 ~]# sed -i 's/SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
[root@KVM-1 ~]# setenforce 0[root@KVM-1 ~]# getenforce
Permissive
[root@KVM-1 ~]# 

        5、同步時間

[root@KVM-1 ~]# yum -y install epel-release
[root@KVM-1 ~]# yum -y install ntp*[root@KVM-1 ~]# date
Thu Mar 2 11:13:03 CST 2017
[root@KVM-1 ~]# cp -Rf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite `/etc/localtime'? y
[root@KVM-1 ~]# ntpdate 133.100.11.8
2 Mar 11:44:58 ntpdate[11762]: step time server 133.100.11.8 offset 1756.326390 sec
[root@KVM-1 ~]# sed -i 's#ZONE="America/New_York"#ZONE="Asia/Shanghai"#g' /etc/sysconfig/clock
[root@KVM-1 ~]# hwclock -w
[root@KVM-1 ~]# date -R
Thu, 02 Mar 2017 11:46:05 +0800
[root@KVM-1 ~]# echo "ntpdate 133.100.11.8" >> /etc/rc.d/rc.local

四、部署KVM;

  以下操作需要在2台KVM宿主機上部署,這裡以KVM-1為例給大家演示具體的安裝流程
  1、安裝常用軟體包

[root@KVM-1 ~]# yum -y install vim wget gcc make crontabs mlocate
ntp lrzsz gcc-c++ autoconf setuptool ntsysv iptables
system-config-securitylevel-tui system-config-network-tui
sysstat dstat screen

  2、安裝KVM

[root@KVM-1 ~]# yum -y groupinstall Virtualization 'Virtualization Client'
'Virtualization Platform' 'Virtualization Tools'    註:
      Virtualization:提供虛擬機器的環境,主要包含qumu-kvm
      Virtualization-client:管理和安裝虛擬機器範例的用戶端,主要有Python-virtinst,virt-manager,virt-viewer    
      Virtualization-platform:提供存取和控制虛擬用戶端的介面,主要有libvirt,libvirt-client
      Virtualization-tools:管理離線虛擬機器映象的工具,主要有libguestfs根據需求選擇軟體包。

  3、啟動 Libvirt 服務

[root@KVM-1 ~]# service libvirtd start
[root@KVM-1 ~]# chkconfig libvirtd on
[root@KVM-1 ~]# chkconfig --list libvirtd
libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

  4、驗證KVM模組的載入情況

[root@KVM-1 ~]# lsmod | grep kvm
kvm_intel    55464 0
kvm            345070 1 kvm_intel

  5、建立網橋(必須操作)

[root@KVM-1 ~]# virsh iface-bridge eth0 cloudbr0

五、部署iSSCi磁碟共用
  八卦:前一篇文章已經介紹了《CentOS 6.5 安裝部署iSCSI共用儲存  http://www.linuxidc.com/Linux/2017-03/141227.htm》的具體部署方案,在這裡我就不再重複介紹了;但是要注意確保兩台KVM宿主機的掛載路徑必須一樣;
    例如:
      KVM-1的iSCSi磁碟為/dev/sdb掛載到原生的/mnt下,KVM-2的iSCSi磁碟也必須掛載到/mnt下:

[root@KVM-1 ~]# df -h |egrep "Filesystem|sdb"
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 19G 2.2G 16G 13% /mnt

[root@KVM-2 ~]# df -h |egrep "Filesystem|sdb"
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 19G 2.2G 16G 13% /mnt

請參考:http://www.linuxidc.com/Linux/2017-03/141227.htm

六、建立Guest虛擬機器
  八卦:因為我們下一步要做Guest虛擬機器在服務不中斷的情況下從KVM-1的宿主機上動態遷移到KVM-2的宿主機上,所以我們在建立虛擬機器的時候只需要在KVM-1的宿主機上建立就行了;但需要iSCSi的設定必須相同;

    1、建立磁碟檔案

[root@KVM-1 ~]# qemu-img create -f qcow2 /mnt/CentOS6.8.qcow2 10G

    2、建立Guest虛擬機器


IT145.com E-mail:sddin#qq.com