新聞中心
一、前言
虛擬化技術(shù)已經(jīng)成為未來計算機技術(shù)的一個重要的發(fā)展方向。Linux在虛擬化方面已經(jīng)有了很多種解決方案:VMware、VirtualBox、Xen和KVM!現(xiàn)在給大家分享下本人在KVM里遇到坑及解決方法。
KVM簡介
KVM是一個全虛擬化的解決方案??梢栽趚86架構(gòu)的計算機上實現(xiàn)虛擬化功能。但KVM需要CPU中虛擬化功能的支持,只可在具有虛擬化支持的CPU上運行,即具有VT功能的Intel
CPU和具有AMD-V功能的AMD CPU。
在kvm技術(shù)中應(yīng)用到2樣?xùn)|西:kvm+qemu
kvm負責(zé)cpu虛擬化+內(nèi)存虛擬化,實現(xiàn)了cpu和內(nèi)存的虛擬化,但kvm不能模擬其他設(shè)備;
qemu是模擬IO設(shè)備(網(wǎng)卡,磁盤),kvm加上qemu之后就能實現(xiàn)真正意義上服務(wù)器虛擬化。
因為用到了上面兩個東西,所以一般都稱之為qemu-kvm

在容城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,外貿(mào)營銷網(wǎng)站建設(shè),容城網(wǎng)站建設(shè)費用合理。
關(guān)于KVM的介紹在這里我就不多說了,有興趣的童鞋可以自己去查找下;下面我們直接進行部署階段。
二、環(huán)境介紹
本環(huán)境需要至少3臺機器分別為:
1、KVM_Server_1: 192.168.30.131
2、KVM_Server_2: 192.168.30.132
3、iSCSI_Server: 192.168.30.133
三、安裝前的準(zhǔn)備(3臺主機都需要操作)
1、開啟BISO中的CPU虛擬化支持(具體方法在這里就不多介紹了)
2、查看系統(tǒng)對KVM虛擬化的支持
[root@localhost ~]# egrep "svm|vmx" /proc/cpuinfo |wc -l1 注:vmx是Intel系列CPU支持虛擬化的標(biāo)簽;
svm是AMD系列CPU支持虛擬化的標(biāo)簽;
如果數(shù)值大于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、關(guān)閉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:提供虛擬機的環(huán)境,主要包含qumu-kvm
Virtualization-client:管理和安裝虛擬機實例的客戶端,主要有Python-virtinst,virt-manager,virt-viewer
Virtualization-platform:提供訪問和控制虛擬客戶端的接口,主要有l(wèi)ibvirt,libvirt-client
Virtualization-tools:管理離線虛擬機鏡像的工具,主要有l(wèi)ibguestfs根據(jù)需求選擇軟件包。
3、啟動 Libvirt 服務(wù)
[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、創(chuàng)建網(wǎng)橋(必須操作)
[root@KVM-1 ~]# virsh iface-bridge eth0 cloudbr0
[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
六、創(chuàng)建Guest虛擬機
八卦:因為我們下一步要做Guest虛擬機在服務(wù)不中斷的情況下從KVM-1的宿主機上動態(tài)遷移到KVM-2的宿主機上,所以我們在創(chuàng)建虛擬機的時候只需要在KVM-1的宿主機上創(chuàng)建就行了;但需要iSCSi的配置必須相同;
1、創(chuàng)建磁盤文件
[root@KVM-1 ~]# qemu-img create -f qcow2 /mnt/CentOS6.8.qcow2 10G
2、創(chuàng)建Guest虛擬機
[root@KVM-1 ~]# virt-install --name CentOS6.8 --os-variant=rhel6 --ram 512 --vcpus=1 \
--disk path=/mnt/CentOS6.8.qcow2,device=disk,format=qcow2,size=7,bus=virtio --accelerate \
--cdrom /mnt/iso/CentOS-6.8-x86_64-minimal.iso \
--vnc --vncport=5900 --vnclisten=0.0.0.0 \
--network bridge=cloudbr0,model=virtio --noautoconsole 參數(shù)介紹:
--name name 虛擬機名稱,需全局惟一
--ram memory 分配給虛擬機的內(nèi)存大小
--vcpus CPU 分配給虛擬機的cpu核心數(shù)
--disk 指定存儲設(shè)備及其屬性;格式為--disk /some/storage/path,opt1=val1,opt2=val2等;常用的選項有:
device 設(shè)備類型,如cdrom、disk或floppy等,默認為disk;
bus 磁盤總結(jié)類型,其值可以為ide、scsi、usb、virtio或xen;
perms 訪問權(quán)限,如rw、ro或sh(共享的可讀寫),默認為rw;
size 新建磁盤映像的大小,單位為GB;
cache 緩存模型,其值有none、writethrouth(緩存讀)及writeback(緩存讀寫);
format 磁盤映像格式,如raw、qcow2、vmdk等;
sparse 磁盤映像使用稀疏格式,即不立即分配指定大小的空間;
--cdrom 指定安裝方法: 格式為 --cdrom /mnt/iso/CentOS-6.8-x86_64-minimal.iso
--vnc 開啟VPN
--vncport vnc端口,默認為5900
--vnclisten vnc監(jiān)聽地址,建議設(shè)為:0.0.0.0 即:監(jiān)聽所有地址
--network 啟用網(wǎng)絡(luò)
bridge 橋接到物理橋
model 使用virtio驅(qū)動
--autoconsole 不自動打開終端
3、安裝Guest虛擬機操作系統(tǒng)
使用vnc-Viever來連接
配置如下:
VNC地址:192.168.30.131:5900
注:如果出現(xiàn)窗口一閃就消失了,無法連接
解決方法:
點擊vnc-viewer下面的options-----> expert ------> ColourLevel 的值改為rgb222 ---->確定
然后重新連接就OK了!
4、配置Guest虛擬機IP使其可以正常上網(wǎng)
具體配置在這里就不做演示了!
七、配置KVM動態(tài)遷移
前言
虛擬機的遷移技術(shù)為服務(wù)器的虛擬化提供簡便的方法。目前流行的虛擬化產(chǎn)品 VMware,Xen,Hyper-V,KVM 都提供各自的遷移工具。其中 Linux 平臺上開源的虛擬化工具KVM發(fā)展迅速,基于KVM的虛擬機的遷移特性也日趨完善。本文全面介紹KVM虛擬機在不同的應(yīng)用環(huán)境下的靜態(tài)遷移(離線遷移)和動態(tài)遷移(在線遷移),并且在最新發(fā)布的 SUSE Linux Enterprise Edition 11 SP1 上分別演示如何應(yīng)用 libvirt/virt-manager 圖形化工具和基于命令行的 qemu-kvm 工具進行遷移操作。
??移方式的分類
靜態(tài)遷移
靜態(tài)遷移:也叫做常規(guī)遷移、離線遷移(Offline Migration)。就是在虛擬機關(guān)機或暫停的情況下從一臺物理機遷移到另一臺物理機。因為虛擬機的文件系統(tǒng)建立在虛擬機鏡像上面,所以在虛擬機關(guān)機的情況下,只需要簡單的遷移虛擬機鏡像和相應(yīng)的配置文件到另外一臺物理主機上;如果需要保存虛擬機遷移之前的狀態(tài),在遷移之前將虛擬機暫停,然后拷貝狀態(tài)至目的主機,最后在目的主機重建虛擬機狀態(tài),恢復(fù)執(zhí)行。這種方式的遷移過程需要顯式的停止虛擬機的運行。從用戶角度看,有明確的一段停機時間,虛擬機上的服務(wù)不可用。這種遷移方式簡單易行,適用于對服務(wù)可用性要求不嚴格的場合。
共享存儲的動態(tài)遷移
動態(tài)遷移(Live Migration):也叫在線遷移(Online Migration)。就是在保證虛擬機上服務(wù)正常運行的同時,將一個虛擬機系統(tǒng)從一個物理主機移動到另一個物理主機的過程。該過程不會對最終用戶造成明顯的影響,從而使得管理員能夠在不影響用戶正常使用的情況下,對物理服務(wù)器進行離線維修或者升級。與靜態(tài)遷移不同的是,為了保證遷移過程中虛擬機服務(wù)的可用,遷移過程僅有非常短暫的停機時間。遷移的前面階段,服務(wù)在源主機的虛擬機上運行,當(dāng)遷移進行到一定階段,目的主機已經(jīng)具備了運行虛擬機系統(tǒng)的必須資源,經(jīng)過一個非常短暫的切換,源主機將控制權(quán)轉(zhuǎn)移到目的主機,虛擬機系統(tǒng)在目的主機上繼續(xù)運行。對于虛擬機服務(wù)本身而言,由于切換的時間非常短暫,用戶感覺不到服務(wù)的中斷,因而遷移過程對用戶是透明的。動態(tài)遷移適用于對虛擬機服務(wù)可用性要求很高的場合。
1、配置iSCSi共享存儲
由于之前已經(jīng)提到iscsi的配置方法了,且已經(jīng)配置了這里就不多做介紹了
2、配置ssh免密碼登錄
a、KVM-1上操作
[root@KVM-1 ~]# ssh-keygen -t rsa
[root@KVM-1 ~]# scp /root/.ssh/id_rsa.pub root@192.168.30.132:/root/
b、KVM-2上操作
[root@KVM-2 ~]# ssh-keygen -t rsa
[root@KVM-2 ~]# scp /root/.ssh/id_rsa.pub root@192.168.30.131:/root/
[root@KVM-2 ~]# cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
c、KVM-1上操作
[root@KVM-1 ~]# cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
d、相互測試登錄情況
[root@KVM-1 ~]# ssh 192.168.30.132
[root@KVM-2 ~]# ssh 192.168.30.131
3、為了保證實驗的順利進行,我們先把iptables關(guān)閉
[root@KVM-1 ~]# service iptables stop
[root@KVM-2 ~]# service iptables stop
4、執(zhí)行遷移
a、將Guest虛擬機從KVM-1上遷移至KVM-2上
[root@KVM-1 ~]# virsh list
Id Name State
----------------------------------------------------
11 centos running
[root@KVM-1 ~]# virsh migrate centos --live qemu+ssh://192.168.30.132/system
[root@KVM-1 ~]# virsh list
Id Name State
----------------------------------------------------
[root@KVM-1 ~]#
b、在KVM-2上查看
[root@KVM-2 ~]# virsh list
Id Name State
----------------------------------------------------
4 centos running
[root@KVM-2 ~]#
八、總結(jié)
關(guān)于KVM的動態(tài)遷移很多小伙伴兒們都沒有提到需要做ssh免密碼登錄,在這里提醒大家一定要做哦,否則會出現(xiàn)錯誤的。
雖然在安裝過程中踩到了很多坑,但本人還是堅持走了過來;下面來分享下大家在搭建過程中可能會遇到的坑:
1、遷移時遇到的錯誤描述:
[root@KVM-1 ~]# virsh migrate centos --live qemu+ssh://192.168.30.132/system
error: unable to connect to server at 'KVM-2:49152': No route to host 原因:你的免密登錄沒有成功
解決方法:重新做免密登錄即可
2、遷移時的存儲錯誤:
[root@KVM-1 ~]# virsh migrate centos --live qemu+ssh://192.168.30.132/system
error: Failed to open file '/mnt/CentOS6.8.qcow2': Input/output error
原因:存儲沒有掛載成功
解決方法:mount -o remount /dev/sdb /mnt
3、遷移時FQDN錯誤:
[root@KVM-1 ~]# virsh migrate centos --live qemu+ssh://192.168.30.132/system
error: internal error hostname on destination resolved to localhost, but migration requires an FQDN
原因:兩臺宿主機沒有FQDN名稱
解決方法:重新配置FQDN,具體方法見上.
4、遷移時語法錯誤:
[root@KVM-1 ~]# virsh migrate centos --live qemu+ssh://192.168.30.132:/system
error: internal error Unable to parse URI qemu+ssh://192.168.30.132:/system
原因:qemu+ssh語法寫錯了
解決方法:正確的應(yīng)該是:virsh migrate centos --live qemu+ssh://192.168.30.132/system
到此KVM的動態(tài)遷移就暫時到一個段落了,如果小伙伴兒們遇到問題可以直接回復(fù)或發(fā)郵件至:DBA_Master@163.com
新聞名稱:CentOS6.5部署KVM及實現(xiàn)在線遷移
地址分享:http://m.5511xx.com/article/cosjiis.html


咨詢
建站咨詢
