10月14日,深信服云計(jì)算專家Leijian在信服云《云集技術(shù)學(xué)社》系列直播課上進(jìn)行了《深信服aSV服務(wù)器虛擬化功能及原理》的分享,介紹了服務(wù)器虛擬化的基本原理和深信服aSV服務(wù)器虛擬化特色技術(shù)。以下是他的分享內(nèi)容摘要,想要了解更多可以關(guān)注“深信服科技”公眾號(hào)。
看點(diǎn)一:服務(wù)器虛擬化的發(fā)展
從上世紀(jì)60年代開始,服務(wù)器虛擬化經(jīng)歷了60多年的發(fā)展,也有著十分明顯的代際變化。
第一代是基于二進(jìn)制翻譯的全虛擬化,它的典型應(yīng)用是早期的VMware Workstation。核心是通過二進(jìn)制發(fā)育的方式實(shí)現(xiàn)虛擬機(jī)的復(fù)用。
第二代是半虛擬化,它的典型應(yīng)用是Xen,通過修改操作系統(tǒng)內(nèi)核,替換掉不能虛擬化的指令,通過超級(jí)調(diào)用(Hypercall)直接和底層的虛擬化層Hypervisor來通訊,Hypervisor 同時(shí)也提供了超級(jí)調(diào)用接口來滿足其他關(guān)鍵內(nèi)核操作,比如內(nèi)存管理、中斷和時(shí)間保持。這種做法省去了全虛擬化中的捕獲和模擬,大大提高了效率。
第三代是硬件輔助虛擬化,核心是在裸金屬上安裝VMware,在上面跑GuestOS指令。有別于上兩代的是,它不用修改任何的GuestOS指令,可以直接運(yùn)行。
看點(diǎn)二:服務(wù)器虛擬化基本原理
01
Qemu-KVM基本原理介紹
深信服目前應(yīng)用的硬件輔助虛擬化是基于Qemu-KVM實(shí)現(xiàn)的。
KVM是內(nèi)核的一個(gè)驅(qū)動(dòng)(kvm.ko),工作在內(nèi)核態(tài)(CPU Ring0),實(shí)際上是Linux內(nèi)核一個(gè)標(biāo)準(zhǔn)組件。KVM 內(nèi)核模塊收到該請(qǐng)求后,它先做一些準(zhǔn)備工作,比如將vCPU上下文加載到 VMCS (Virtual Machine Control Structure)等,然后驅(qū)動(dòng) CPU 進(jìn)入 VMX Non-Root 模式,開始執(zhí)行客戶機(jī)代碼。
Qemu是一個(gè)應(yīng)用程序,工作在用戶態(tài)(User mode 、CPU Ring3),提供外設(shè)的模擬、vCPU模擬、主控邏輯、IO收發(fā)等,當(dāng)GuestOS 需要發(fā)送IO請(qǐng)求、需要發(fā)送網(wǎng)絡(luò)包的時(shí)候,都需要調(diào)用VM_Exit讓Qemu協(xié)助實(shí)現(xiàn)。它能夠支持CPU 和 memory 超分、半虛擬化 I/O、熱插拔、對(duì)稱多處理、實(shí)時(shí)遷移、PCI 設(shè)備直接分配和單根 I/O 虛擬化、內(nèi)核同頁(yè)合并、NUMA等多項(xiàng)功能。使用Qemu的云廠商在這些功能配置上都是類似的。
使用Qemu-KVM有三種運(yùn)行模式:
第一種是客戶模式(Guest Ring0~3),可以簡(jiǎn)單理解成客戶機(jī)操作系統(tǒng)運(yùn)行在的模式,它本身又分為自己的內(nèi)核模式和用戶模式(CPU工作在 VMX Non-Root Operation)。
第二種是用戶模式(User Ring3),為用戶提供虛擬機(jī)管理的用戶空間工具以及代表用戶執(zhí)行I/O,Qemu運(yùn)行在這個(gè)模式之下(CPU工作在VMX Root Operation)。
第三種內(nèi)核模式(System Ring0),模擬CPU以及內(nèi)存,實(shí)現(xiàn)客戶模式的切換,處理從客戶模式的退出,KVM內(nèi)核模塊運(yùn)行在這個(gè)模式下(CPU工作在 VMX Root Operation)。
02
Virtio(aTool) 和全虛介紹
Virtio半虛:實(shí)際上是在Qemu和虛擬機(jī)之間設(shè)置一個(gè)共享內(nèi)存Vring,當(dāng)有數(shù)據(jù)需要發(fā)送的時(shí)候,把數(shù)據(jù)拷貝到共享內(nèi)存Vring中,然后調(diào)用一次VM_Exit退出到Qemu中,Qemu再把這個(gè)Vring的數(shù)一次性全部發(fā)出(注意:如果虛擬機(jī)此時(shí)在快速發(fā)包,有可能Vring中已經(jīng)緩存了多個(gè)包,從而更進(jìn)一步減少了VM_Exit)。這樣可以減少VM_Exit的次數(shù),從而大大提高性能(可以理解成在GuestOS和Qemu之間開了個(gè)后門)。
Virtio半虛擬可以獲得很好的I/O性能,比純軟件模擬高于4倍多,其性能幾乎可以達(dá)到和Native(即非虛擬化環(huán)境中的原生系統(tǒng))差不多的I/O性能。所以,在使用KVM之時(shí),如果宿主機(jī)內(nèi)核和客戶機(jī)都支持Virtio的情況下,一般推薦使用Virtio達(dá)到更好的性能。
IO全虛擬:以磁盤或者網(wǎng)絡(luò)為例,當(dāng)虛擬機(jī)有數(shù)據(jù)需要發(fā)送的時(shí)候,需要通過Qemu模擬所有的硬件寄存器,虛擬機(jī)OS把這些數(shù)據(jù)填充到模擬的硬件中,然后訪問設(shè)置這些寄存器,觸發(fā)VM_Exit退出,Qemu接收到這些數(shù)據(jù),再把這些數(shù)據(jù)真實(shí)的寫入到磁盤、發(fā)送到網(wǎng)卡。這個(gè)過程發(fā)送一個(gè)數(shù)據(jù)包,可能要多次設(shè)置寄存器,導(dǎo)致多次退出,從而性能較差。
03
超配原理以及限制介紹
虛擬機(jī)在Hypervisor看來,就是一個(gè)配置文件+vDisk文件(配置文件會(huì)注明磁盤大小、CPU、內(nèi)存數(shù)量、型號(hào)等等基礎(chǔ)信息,這些信息會(huì)在虛擬機(jī)啟動(dòng)的時(shí)候,傳遞到虛擬機(jī)啟動(dòng)參數(shù)),而每個(gè)vDISK實(shí)際上在Hypervisor看來就是一個(gè)文件。
KVM的vDISK有兩種格式:RAW 和 QCOW2格式。RAW格式性能更高些,但相比QCOW2,RAW不支持快照、精簡(jiǎn)分配等特性,故而深信服采用的是QCOW2格式。
對(duì)于QCOW2文件,有三種模式:精簡(jiǎn)分配、動(dòng)態(tài)分配(需要底層存儲(chǔ)支持空洞文件)、預(yù)分配模式。其中“預(yù)分配”性能最好,接近于RAW格式的性能,“精簡(jiǎn)分配”性能最差,“動(dòng)態(tài)分配”居中(注意:目前超融合中動(dòng)態(tài)分配已接近于預(yù)分配性能、aSAN有優(yōu)化)。
對(duì)于精簡(jiǎn)分配和動(dòng)態(tài)分配,假設(shè)實(shí)際上是配置文件寫分配2TB,但實(shí)際QCOW2文件占用可能很小(實(shí)際大小取決于真實(shí)數(shù)據(jù)),因而可以超配,即配置的虛擬機(jī)總磁盤大小,大于實(shí)際物理主機(jī)的磁盤大小。
物理主機(jī)虛擬內(nèi)存包含物理內(nèi)存(內(nèi)存條,高速)+ SWAP(硬盤分區(qū)、龜速);物理內(nèi)存不夠時(shí),系統(tǒng)會(huì)根據(jù)配置使用SWAP分區(qū)(深信服超融合在平臺(tái)上默認(rèn)設(shè)置“盡量不用SWAP”的策略)。vMEM超配本質(zhì)是假設(shè)給虛擬機(jī)分配32G內(nèi)存,虛擬機(jī)實(shí)際占用只了24G,理論上8G(32G-24G=8G)是可以回收的,這回收的部分理論上可以給其他虛擬機(jī)用。此時(shí),就需要用到KSM(沒有安裝aTool的生效)或者氣泡內(nèi)存技術(shù)(安裝了aTool的生效)。但內(nèi)存超配可能會(huì)造成系統(tǒng)物理內(nèi)存耗盡,導(dǎo)致系統(tǒng)卡頓的情況。因此,在核心系統(tǒng)上,要控制超分內(nèi)存的比率,或者不要超配。
每個(gè)運(yùn)行中的虛擬機(jī)在Hypervisor看來,就是一個(gè)系統(tǒng)進(jìn)程,而vCPU是該進(jìn)程的一個(gè)線程。同一時(shí)刻,每個(gè)vCPU線程最多占用一個(gè)物理CPU的邏輯核,且多個(gè)vCPU之間的同步、調(diào)度會(huì)消耗額外的資源(因此,當(dāng)單個(gè)虛擬機(jī)的vcpu數(shù)量超過物理主機(jī)的邏輯核時(shí),實(shí)際上會(huì)讓虛擬機(jī)的性能反而變低)。
無論vCPU數(shù)量配置多大,總的物理主機(jī)CPU資源是恒定的,因而:
(1)單個(gè)虛擬機(jī)最大的配置不要超過物理CPU的核心數(shù)量;
(2)主機(jī)上運(yùn)行所有虛擬機(jī)的總vCPU數(shù)量不能太多,否則調(diào)度消耗會(huì)增大。生產(chǎn)環(huán)境最佳實(shí)踐為不超過CPU的邏輯核心的2倍,主要參考真實(shí)生產(chǎn)中物理CPU占用一般不超過20%;超配2倍以后,物理CPU占用40%左右,超配要考慮峰值預(yù)留,且物理CPU占用超過50%以上,已經(jīng)比較繁忙了。
04
熱遷移基本原理介紹
熱遷移分為兩種形式,一種是共享存儲(chǔ)熱遷移,此種熱遷移形式,需要虛擬機(jī)鏡像在共享存儲(chǔ)上,此種遷移類型,只需要通過網(wǎng)絡(luò)發(fā)送客戶機(jī)的vCPU執(zhí)行狀態(tài)、內(nèi)存中的內(nèi)容、虛機(jī)設(shè)備的狀態(tài)到目的主機(jī)上。另一種是跨主機(jī)跨存儲(chǔ)熱遷移,與跨主機(jī)不跨存儲(chǔ)熱遷移類似。不同的是其需要在目的存儲(chǔ)創(chuàng)建相同配置的虛擬機(jī)鏡像(空白的,沒有數(shù)據(jù)),之后仍然是在目的宿主機(jī)上啟動(dòng)目的端Qemu進(jìn)程, 目的端Qemu鏡像打開新創(chuàng)建的鏡像文件。另外還需要傳送源端虛擬機(jī)的磁盤數(shù)據(jù)到目的端。
看點(diǎn)三:深信服aSV服務(wù)器虛擬化特色技術(shù)
虛擬機(jī)快速備份
通過快速的無代理磁盤備份保護(hù)您的數(shù)據(jù),使用增量備份減少備份所需空間,降低備份成本。它能夠?qū)崿F(xiàn)無需備份軟件和備份服務(wù)器,實(shí)現(xiàn)增量的備份,快速備份比普通基于快照備份性能提升60%,且備份完成后,性能無損失。另外還能提供手工備份和定時(shí)備份功能,保證虛擬機(jī)文件的數(shù)據(jù)安全。與快照備份性能相比,深信服虛擬機(jī)快速備份在備份過程中性能影響小,備份后不影響性能。
CDP技術(shù)
CDP技術(shù)實(shí)現(xiàn)依賴于HCI自帶的“備份技術(shù)” + “IO 分流技術(shù)”。虛擬機(jī)同時(shí)開啟業(yè)務(wù)(Qemu)和CDP功能(cdp_worker),并為該虛擬機(jī)開辟一塊共享內(nèi)存作為主業(yè)務(wù)和CDP模塊的共享緩存區(qū)。CDP模塊(cdp_worker)可直接向Qemu下發(fā)備份指令,指示QCOW2鏡像進(jìn)行備份動(dòng)作,形成全備和增備BP。首次開啟CDP功能,需要進(jìn)行一次全備生成BP基準(zhǔn)點(diǎn),后續(xù)根據(jù)設(shè)置的定期備份頻率(小時(shí)級(jí))定期生成BP點(diǎn)。BP點(diǎn)以備份文件的形式存在CDP數(shù)據(jù)存儲(chǔ)區(qū)。CDP采用旁路架構(gòu)+IO分流技術(shù),經(jīng)過共享緩存區(qū),實(shí)現(xiàn)從主業(yè)務(wù)異步復(fù)制IO到CDP 日志存儲(chǔ)區(qū)(io倉(cāng)庫(kù)), 以IO日志的形式存在;根據(jù)設(shè)置的IO日志間隔時(shí)間(RPO=1s/5s),定期生成RP點(diǎn),單獨(dú)利用RP并不能夠恢復(fù)數(shù)據(jù),所有的RP均依賴于對(duì)應(yīng)的BP。相較于傳統(tǒng)CDP,搭載HCI的CDP技術(shù)有著更高的容錯(cuò)能力和虛擬機(jī)兼容性。
容災(zāi)技術(shù)
深信服采用“本地備份-異地容災(zāi)”的方案,本地提供秒級(jí)的持續(xù)數(shù)據(jù)保護(hù)方案,當(dāng)虛擬機(jī)出現(xiàn)故障時(shí),可以快速?gòu)谋镜氐谋Wo(hù)數(shù)據(jù)中恢復(fù)整臺(tái)虛擬機(jī);異地提供不同RPO(1秒、10秒、10分鐘、30分鐘、1小時(shí)、2小時(shí)、4小時(shí)、8小時(shí)、12小時(shí)、1天、2天、一周)的虛擬機(jī)級(jí)容災(zāi)功能,主、備站點(diǎn)皆為深信服的企業(yè)云平臺(tái)。
基于AI的調(diào)度優(yōu)化技術(shù)
當(dāng)一臺(tái)物理主機(jī)上運(yùn)行多臺(tái)虛擬機(jī)的時(shí)候,虛擬機(jī)之間必然會(huì)有資源的競(jìng)爭(zhēng),包括CPU、內(nèi)存、Cache、TLB、QPI等資源競(jìng)爭(zhēng)。傳統(tǒng)的虛擬化優(yōu)化技術(shù)無法知道資源的供需關(guān)系。傳統(tǒng)虛擬化優(yōu)化技術(shù)無資源感知能力,如CPU級(jí)資源競(jìng)爭(zhēng),內(nèi)存帶寬競(jìng)爭(zhēng);無協(xié)同優(yōu)化能力,如計(jì)算,存儲(chǔ)與網(wǎng)絡(luò)的協(xié)同優(yōu)化;無業(yè)務(wù)感知能力,重要核心虛擬機(jī)依然會(huì)受到其他虛擬機(jī)的資源競(jìng)爭(zhēng)。而深信服基于AI的性能優(yōu)化引擎,擁有業(yè)務(wù)感知能力通過AI引擎識(shí)別當(dāng)前業(yè)務(wù)場(chǎng)景的核心資源需求和業(yè)務(wù)場(chǎng)景的資源瓶頸。AI引擎基于業(yè)務(wù)的歷史資源標(biāo)簽建立性能優(yōu)化模型。自適應(yīng)的性能優(yōu)化架構(gòu)能夠根據(jù)業(yè)務(wù)的資源標(biāo)簽推薦最優(yōu)的資源配置并根據(jù)業(yè)務(wù)的資源標(biāo)簽推薦最優(yōu)的調(diào)度策略。
還想了解更多云計(jì)算知識(shí)?請(qǐng)鎖定云集技術(shù)學(xué)社,大咖云集為你分享更多云計(jì)算領(lǐng)域干貨與實(shí)踐經(jīng)驗(yàn)。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )