2021-05-12 14:32:11
CentOS6.5部署KVM及實現線上遷移
一、前言
虛擬化技術已經成為未來計算機技術的一個重要的發展方向。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虛擬機器
相關文章