虛擬機(jī)遷移在數(shù)據(jù)中心里大受歡迎,原因在于:一是物理服務(wù)器故障。很多時(shí)候,物理服務(wù)器宕機(jī)或者故障是有先兆的。例如硬盤訪問出錯,在接收到錯誤直到設(shè)備宕機(jī)這段時(shí)間里,可以通過在線遷移將虛擬機(jī)遷移到其它狀態(tài)正常的物理服務(wù)器上,避免受到物理機(jī)影響,保障用戶業(yè)務(wù)正常運(yùn)行;二是Raid卡故障。物理服務(wù)器的Raid卡若出現(xiàn)故障,會造成虛擬機(jī)的訪問IO急劇下降,相當(dāng)于虛擬機(jī)不能再用,同樣可以通過在線遷移將虛擬機(jī)遷移走,保證虛擬機(jī)的IO性能;三是物理機(jī)過載。當(dāng)物理服務(wù)器復(fù)雜達(dá)到瓶頸,上面的虛擬機(jī)性能也會受到影響,當(dāng)出現(xiàn)過載問題,通過在線遷移上面的部分虛擬機(jī),來降低物理機(jī)負(fù)載,以達(dá)到資源利用率和虛擬機(jī)性能的平衡。
顯然虛擬機(jī)遷移技術(shù)給數(shù)據(jù)中心帶來了極大好處,降低數(shù)據(jù)中心故障發(fā)生的概率,提升了物理服務(wù)器的利用率,節(jié)約能耗。所以,虛擬機(jī)技術(shù)已經(jīng)成為數(shù)據(jù)中心必備的技術(shù)之一,在數(shù)據(jù)中心里使用非常普及。不過,虛擬機(jī)遷移技術(shù)雖好,也給數(shù)據(jù)中心帶來了一些煩惱,為了滿足虛擬機(jī)在線遷移,這給數(shù)據(jù)中心帶來了網(wǎng)絡(luò)實(shí)現(xiàn)上的難題。
首先是虛擬機(jī)要在二層環(huán)境中才能完成遷移,大二層環(huán)境。數(shù)據(jù)中心網(wǎng)絡(luò)均是按照三層架構(gòu)來搭建,不具備虛擬機(jī)遷移的環(huán)境。尤其是跨過數(shù)據(jù)中心的轉(zhuǎn)發(fā)均要通過路由器才能完成,這顯然是無法實(shí)現(xiàn)虛擬機(jī)遷移功能的。聰明的人類很快找到了解決的辦法,即在物理網(wǎng)絡(luò)上再疊加一層虛擬網(wǎng)絡(luò),虛擬的大二層網(wǎng)絡(luò),從而實(shí)現(xiàn)虛擬機(jī)在網(wǎng)絡(luò)上自由遷移。要實(shí)現(xiàn)虛擬二層網(wǎng)絡(luò),需要數(shù)據(jù)中心在網(wǎng)絡(luò)上做出翻天覆地的變化,和重建網(wǎng)絡(luò)也差不多了。原來的網(wǎng)絡(luò)設(shè)備均要換成支持虛擬技術(shù)的設(shè)備,部署難度相比以往更高。為了實(shí)現(xiàn)虛擬機(jī)在數(shù)據(jù)中心內(nèi)部,甚至外部自由遷移,需要建設(shè)全新一代的數(shù)據(jù)中心網(wǎng)絡(luò),引入很多新的虛擬技術(shù),這給數(shù)據(jù)中心帶來了挑戰(zhàn),尤其是由此而帶來的運(yùn)維問題。
其次是虛擬機(jī)遷移隨之也帶來了MAC遷移,虛擬機(jī)遷移相當(dāng)于同一個(gè)MAC在網(wǎng)絡(luò)中換了一個(gè)位置,對于網(wǎng)絡(luò)設(shè)備,會感知到這種變換,并及時(shí)刷新轉(zhuǎn)發(fā)表項(xiàng),這樣才能不影響流量轉(zhuǎn)發(fā)。當(dāng)數(shù)據(jù)中心里虛擬機(jī)遷移頻繁,將導(dǎo)致網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)表項(xiàng)不穩(wěn)定,不斷進(jìn)行刷新,當(dāng)刷新不及時(shí)或者刷新錯誤時(shí),就會對業(yè)務(wù)流量造成影響,這時(shí)的虛擬機(jī)遷移就屬于失敗了。正常的虛擬機(jī)遷移是在業(yè)務(wù)不受影響的情況下完成的。頻繁的MAC遷移也給網(wǎng)絡(luò)設(shè)備帶來了計(jì)算負(fù)擔(dān),要頻繁進(jìn)行表項(xiàng)的更新,設(shè)備CPU和內(nèi)存隨之也會升高,影響網(wǎng)絡(luò)設(shè)備運(yùn)行穩(wěn)定性。另外在靜態(tài)IP地址和靜態(tài)DNS解析環(huán)境中,虛擬機(jī)遷移是一個(gè)麻煩事情,此時(shí)最好配置系統(tǒng)從 DHCP服務(wù)器自動獲得所有的網(wǎng)絡(luò)配置信息。
第三是虛擬機(jī)遷移到來的帶寬問題。虛擬機(jī)遷移也要占用網(wǎng)絡(luò)帶寬,尤其是在頻繁遷移的時(shí)候。虛擬主機(jī)需要速度更快的網(wǎng)絡(luò)端口,用于主機(jī)之間遷移VM,比如在線遷移數(shù)據(jù)量大小為16GB的VM,通常會導(dǎo)致千兆端口飽和長達(dá)數(shù)分鐘,當(dāng)遷移涉及的虛擬機(jī)內(nèi)容很大時(shí),網(wǎng)絡(luò)帶寬問題會變得突出,出現(xiàn)擁塞的情況。如果配置了128GB內(nèi)存的虛擬機(jī)內(nèi)存被完全使用的話,那么使用單個(gè)千兆端口遷移該VM可能會花半個(gè)小時(shí)甚至更長的時(shí)間。如果是由于即將發(fā)生的物理故障而對VM進(jìn)行遷移的話,那么會感覺遷移所花費(fèi)的時(shí)間更加漫長,所以要給服務(wù)器留有一定帶寬,如果將千兆端口改為萬兆端口,此時(shí)遷移虛擬機(jī)的話,大概只需要五分鐘,這大大降低了由于虛擬主機(jī)故障而導(dǎo)致虛擬機(jī)停用的風(fēng)險(xiǎn),所以帶寬是虛擬機(jī)能否成功遷移的關(guān)鍵,我們要保證服務(wù)器網(wǎng)卡不要工作在滿帶寬模式下,留有一定余量,以便在虛擬機(jī)發(fā)生遷移時(shí),不至于影響遷移效果,或者導(dǎo)致虛擬機(jī)遷移失敗。