史昂
鶴煤集團(tuán)信息中心 河南鶴壁 458030
我公司已經(jīng)搭建了虛擬化平臺(tái),主要的業(yè)務(wù)正逐步遷入虛擬化平臺(tái)中,依托公司現(xiàn)有的虛擬化平臺(tái),建設(shè)了桌面云系統(tǒng),用戶通過瘦終端登錄桌面云系統(tǒng)辦公。那么究竟什么是虛擬化呢,它是如何實(shí)現(xiàn)的?下面就由我淺談一下云計(jì)算KVM虛擬化技術(shù)及應(yīng)用。
虛擬化可以概況為:通過在服務(wù)器上部署虛擬化軟件,使一臺(tái)物理服務(wù)器可以承擔(dān)多臺(tái)服務(wù)器的工作。通過整合現(xiàn)有的業(yè)務(wù)負(fù)載并利用剩余的服務(wù)器資源以部署新的應(yīng)用程序和解決方案,實(shí)現(xiàn)較高的資源利用率。
虛擬化是一種具體的技術(shù),實(shí)現(xiàn)對(duì)硬件資源的虛擬化,提升資源利用率,降低能耗。云計(jì)算是一種概念,是各種技術(shù)組件的集合,針對(duì)的是對(duì)各種資源的管理和調(diào)度,面向的是服務(wù)層面,虛擬化只是云計(jì)算使用的技術(shù)之一,沒有虛擬化也可以用物理硬件來實(shí)現(xiàn)云計(jì)算[1]。
虛擬化分為計(jì)算虛擬化、網(wǎng)絡(luò)虛擬化、存儲(chǔ)虛擬化;通過虛擬化技術(shù)把硬件資源如:CPU、內(nèi)存整合在一起組成計(jì)算池,把服務(wù)器網(wǎng)絡(luò)和虛擬機(jī)網(wǎng)絡(luò)整合在一起組成網(wǎng)絡(luò)池,把服務(wù)剩余存儲(chǔ)空間或者外置存儲(chǔ)系統(tǒng)的可用空間整合起來組成存儲(chǔ)池,通過整合之后的資源為業(yè)務(wù)提供服務(wù)[2]。
(1)計(jì)算虛擬化分為三部分:CPU虛擬化、內(nèi)存虛擬化、IO虛擬化。①CPU虛擬化:即多個(gè)虛擬機(jī)共享CPU資源,此技術(shù)最早在IBM小型機(jī)上面得以實(shí)現(xiàn)。小型機(jī)的CPU虛擬化采用的是“特權(quán)解除”和“陷入-模擬”的方式,解除了用戶操作系統(tǒng)的特權(quán),用戶操作系統(tǒng)大部分指令仍在硬件上運(yùn)行,只是運(yùn)行到特權(quán)指令時(shí),才會(huì)陷入到VMM模擬執(zhí)行。根據(jù)這個(gè)理念,X86架構(gòu)CPU也采用此開發(fā)理念,但是在應(yīng)用的過程中,發(fā)現(xiàn)非特權(quán)級(jí)里面包含了19條敏感指令,當(dāng)用戶操作系統(tǒng)執(zhí)行這些敏感指令時(shí),整個(gè)硬件系統(tǒng)會(huì)陷入癱瘓,為此推出了半虛擬化、全虛擬化、硬件輔助虛擬化,目前主流采用的虛擬化技術(shù)為硬件輔助虛擬化,依靠硬件對(duì)敏感指令“陷入-模擬”,效率最高。②內(nèi)存虛擬化是把物理機(jī)的真實(shí)物理內(nèi)存統(tǒng)一管理,把物理內(nèi)存分成多份分給若干個(gè)虛擬機(jī)使用。我單位采用的虛擬化平臺(tái)底層采用KVM虛擬機(jī)技術(shù),平臺(tái)支持內(nèi)存硬件輔助虛擬化技術(shù),降低內(nèi)存虛擬化開銷,提升約30%的內(nèi)存訪問性能。同時(shí),平臺(tái)支持智能內(nèi)存復(fù)用策略,自動(dòng)優(yōu)化組合各種內(nèi)存復(fù)用策略,實(shí)現(xiàn)內(nèi)存的高復(fù)用率。每個(gè)虛擬機(jī)最大支持1TB虛擬內(nèi)存。平臺(tái)支持以下內(nèi)存復(fù)用技術(shù):內(nèi)存氣泡:系統(tǒng)主動(dòng)回收虛擬機(jī)暫時(shí)不用的物理內(nèi)存,分配給需要復(fù)用內(nèi)存的虛擬機(jī)。內(nèi)存的回收和分配都是動(dòng)態(tài)的,虛擬機(jī)上的應(yīng)用無感知。整個(gè)物理服務(wù)器上的所有虛擬機(jī)使用的分配內(nèi)存總量不能超過該服務(wù)器的物理內(nèi)存總量。內(nèi)存交換:將外部存儲(chǔ)虛擬成內(nèi)存給虛擬機(jī)使用,將虛擬機(jī)上暫時(shí)不用的數(shù)據(jù)存放到外部存儲(chǔ)上。系統(tǒng)需要使用這些數(shù)據(jù)時(shí),再與預(yù)留在內(nèi)存上的數(shù)據(jù)進(jìn)行交換。內(nèi)存共享:多臺(tái)虛擬機(jī)共享數(shù)據(jù)內(nèi)容為零的內(nèi)存頁。通過內(nèi)存復(fù)用,虛擬機(jī)總配置內(nèi)存超過物理主機(jī)實(shí)際內(nèi)存運(yùn)行,通過虛擬機(jī)之間內(nèi)存復(fù)用,內(nèi)存共享,內(nèi)存交換等技術(shù)實(shí)現(xiàn)物理內(nèi)存120%的超分配比例[3]。③I/O虛擬化分為:完全虛擬化、半虛擬化、IO透傳虛擬化。完全虛擬化:又叫I/O模擬,完全使用軟件模擬真實(shí)硬件,如:鼠標(biāo)、鍵盤、通過焦點(diǎn)捕獲,焦點(diǎn)被那個(gè)主機(jī)捕獲就被那個(gè)主機(jī)使用,性能較差。半虛擬化:對(duì)硬件驅(qū)動(dòng)由前段直接轉(zhuǎn)到后端調(diào)用,通過用于硬盤和網(wǎng)卡,性能高。IO透傳:直接分配給虛擬機(jī)物理設(shè)備,如:直接分給虛擬機(jī)一塊硬盤或者網(wǎng)卡,需要硬件支持I/O透傳技術(shù)。
(2)存儲(chǔ)虛擬化。存儲(chǔ)虛擬化是在存儲(chǔ)設(shè)備上加入一個(gè)邏輯層,通過邏輯層訪問存儲(chǔ)資源,因?yàn)樘摂M化平臺(tái)是一個(gè)集群系統(tǒng),整個(gè)集群系統(tǒng)訪問存儲(chǔ)資源必定存在讀寫的先后順序,這個(gè)邏輯層可以很好的控制資源的讀寫訪問,可以理解為集群系統(tǒng)訪問共享存儲(chǔ)。目前組網(wǎng)使用最多的是外置存儲(chǔ)系統(tǒng)或者分布式存儲(chǔ)通過接口掛載給虛擬化平臺(tái),虛擬化平臺(tái)通過自身格式化存儲(chǔ)空間后,把資源分配個(gè)客戶操作系統(tǒng)使用。
(3)網(wǎng)絡(luò)虛擬化。在KVM虛擬化平臺(tái)里面又叫分布式交換機(jī),類似通用的物理交換,分布式交換機(jī)連接虛擬機(jī)和外部網(wǎng)絡(luò),支持多種標(biāo)準(zhǔn)接口和協(xié)議,支持多個(gè)物理服務(wù)器的分布式環(huán)境,能夠與大部分開源的虛擬化平臺(tái)整合,支持openflow協(xié)議。支持多種網(wǎng)卡類型:普通網(wǎng)卡,智能網(wǎng)卡等。
通過使用虛擬化平臺(tái),使用過程中有以下優(yōu)點(diǎn):
(1)集中運(yùn)維,通過虛擬化平臺(tái)創(chuàng)建、部署、管理、監(jiān)控所有虛擬機(jī)。
(2)資源按需分配,根據(jù)硬件資源的利用率,合理分配虛擬機(jī)資源,資源利用達(dá)到最大化。
(3)自動(dòng)化調(diào)度,根據(jù)系統(tǒng)設(shè)置的策略實(shí)現(xiàn)虛擬機(jī)遷移,使資源分配在各個(gè)服務(wù)器上面達(dá)到均衡。
(4)虛擬機(jī)故障轉(zhuǎn)移,根據(jù)系統(tǒng)設(shè)置的策略,當(dāng)服務(wù)器故障或者虛擬機(jī)藍(lán)屏?xí)r,虛擬機(jī)自動(dòng)遷移到正常的服務(wù)器上面,重啟開啟業(yè)務(wù)。
(5)節(jié)能減排,業(yè)務(wù)虛擬機(jī)集中在虛擬化平臺(tái)上面,減少服務(wù)器數(shù)量,從而降低投資成本、總功耗等。