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

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


咨詢
建站咨詢
