內(nèi)存快照,顧名思義,是包含云主機(jī)運(yùn)行時(shí)內(nèi)存狀態(tài)的快照。在近期發(fā)布的ZStack Cloud 4.4.24中,新增支持云主機(jī)內(nèi)存快照。該功能主要基于快照組實(shí)現(xiàn),在快照組已提供磁盤一致性的基礎(chǔ)上,新增提供應(yīng)用一致性,進(jìn)一步確保數(shù)據(jù)完整性。內(nèi)存快照支持以快照組為單位進(jìn)行恢復(fù),同時(shí)還能額外恢復(fù)當(dāng)時(shí)內(nèi)存快照中的網(wǎng)卡、光驅(qū)等配置。本文主要從技術(shù)實(shí)現(xiàn)出發(fā),帶您深入了解ZStack Cloud內(nèi)存快照功能。
一 技術(shù)背景
(資料圖片僅供參考)
ZStack Cloud內(nèi)存快照主要基于Libvirt接口實(shí)現(xiàn),我們可通過(guò)virsh命令的幫助信息了解相關(guān)參數(shù)。
1、創(chuàng)建內(nèi)存快照
從上述命令可見,通過(guò)[--disk-only],可創(chuàng)建磁盤快照;通過(guò)[--memspec]以及[--diskspec],可指定對(duì)應(yīng)的快照類型、快照文件名等信息。在指定[memspec]的情況下,Libvirt會(huì)額外執(zhí)行一段保存云主機(jī)運(yùn)行時(shí)狀態(tài)信息的邏輯(實(shí)際上通過(guò)云主機(jī)熱遷移實(shí)現(xiàn)),最終將云主機(jī)對(duì)應(yīng)的元數(shù)據(jù)和運(yùn)行時(shí)狀態(tài)信息寫入到[memspec]指定的文件中。將該機(jī)制反推,即可將已保存的云主機(jī)運(yùn)行時(shí)狀態(tài)信息恢復(fù),云主機(jī)可恢復(fù)到快照創(chuàng)建時(shí)的狀態(tài)。
此外,也許您還會(huì)好奇,云主機(jī)運(yùn)行時(shí)創(chuàng)建快照如何保證內(nèi)存一致性?其實(shí),在創(chuàng)建內(nèi)存快照時(shí),會(huì)在獲取內(nèi)存狀態(tài)之前暫停云主機(jī),由于服務(wù)暫停,從而保證了創(chuàng)建內(nèi)存快照那一時(shí)刻的內(nèi)存一致性。
2、恢復(fù)內(nèi)存快照
從上述命令可見,通過(guò)[--file],可指定待恢復(fù)的內(nèi)存快照文件路徑。
通過(guò)[--xml],可指定待恢復(fù)的云主機(jī)xml配置文件,該xml配置文件需與內(nèi)存快照已保存的xml配置文件保持一致,否則內(nèi)存快照恢復(fù)失敗;若不指定[--xml],則會(huì)按照內(nèi)存快照已保存的xml配置文件進(jìn)行恢復(fù)。
此外,還可通過(guò)[--running]或[--paused],指定恢復(fù)后的云主機(jī)狀態(tài)(運(yùn)行或暫停)。
二 技術(shù)原理
ZStack Cloud內(nèi)存快照技術(shù)原理可分為以下三個(gè)部分:
保存設(shè)備信息
創(chuàng)建內(nèi)存快照
恢復(fù)內(nèi)存快照
1、保存設(shè)備信息
在“技術(shù)背景”章節(jié)已提到,保存云主機(jī)運(yùn)行時(shí)狀態(tài)信息的邏輯,實(shí)際上通過(guò)云主機(jī)熱遷移實(shí)現(xiàn)。
基于該背景可得知,執(zhí)行創(chuàng)建/恢復(fù)快照組操作,其中已隱含云主機(jī)支持熱遷移的前提條件。若僅針對(duì)Libvirt層面,直接恢復(fù)內(nèi)存快照就能完成云主機(jī)的恢復(fù),但這樣會(huì)造成其它問題,比如在外部快照?qǐng)龊希糁苯踊謴?fù)內(nèi)存快照,將直接讀寫一個(gè)只讀的快照文件,這是我們不希望發(fā)生的。
因此,引入保存設(shè)備信息機(jī)制,可確保恢復(fù)的云主機(jī)配置是我們所需要的。云主機(jī)熱遷移對(duì)相應(yīng)設(shè)備的地址信息也有要求。
通過(guò)保存設(shè)備信息機(jī)制,云主機(jī)虛擬設(shè)備的地址信息被固定,結(jié)合之前物理設(shè)備地址信息保留的邏輯,從而實(shí)現(xiàn)設(shè)備定制信息的固定。
此外,保存設(shè)備信息機(jī)制還有存檔功能,支持保留創(chuàng)建內(nèi)存快照時(shí)刻對(duì)應(yīng)的云主機(jī)相關(guān)虛擬資源信息。在創(chuàng)建內(nèi)存快照后,即使云主機(jī)配置變化(比如修改網(wǎng)卡、光驅(qū)等),也可將云主機(jī)恢復(fù)到創(chuàng)建內(nèi)存快照時(shí)刻的狀態(tài)。
2、創(chuàng)建內(nèi)存快照
引入保存設(shè)備信息機(jī)制,創(chuàng)建內(nèi)存快照已具備實(shí)現(xiàn)基礎(chǔ),即:可以保存設(shè)備地址和設(shè)備配置信息。
創(chuàng)建包含內(nèi)存快照的快照組,實(shí)質(zhì)問題是:如何處理內(nèi)存快照在快照組中的映射關(guān)系?為解決該問題,我們新增Memory類型云盤作為內(nèi)存快照,考慮到內(nèi)存快照也通過(guò)主存儲(chǔ)保存,只需調(diào)整云盤邏輯,即可讓內(nèi)存快照與其它云盤保持邏輯抽象的統(tǒng)一。
內(nèi)存快照-Memory類型
此外,在創(chuàng)建快照組時(shí),需再次建立快照組和設(shè)備信息的關(guān)聯(lián)關(guān)系,用于快照組恢復(fù)。該關(guān)聯(lián)關(guān)系在刪除內(nèi)存快照時(shí)連帶刪除。
3、恢復(fù)內(nèi)存快照
內(nèi)存快照需基于快照組進(jìn)行恢復(fù)。恢復(fù)內(nèi)存快照與恢復(fù)其它快照在實(shí)現(xiàn)邏輯上差別不大。唯一不同的是,恢復(fù)內(nèi)存快照,會(huì)根據(jù)快照組和設(shè)備信息的關(guān)聯(lián)關(guān)系,先將存檔設(shè)備信息還原到當(dāng)前云主機(jī)上,并對(duì)云主機(jī)配置及設(shè)備做一系列檢查,當(dāng)云主機(jī)配置及設(shè)備還原后,再進(jìn)行正式的數(shù)據(jù)面恢復(fù)。
三 技術(shù)特色
1、易用性
創(chuàng)建內(nèi)存快照并未新增功能入口,可直接通過(guò)創(chuàng)建快照組的功能入口實(shí)現(xiàn)。在創(chuàng)建快照組界面,選擇創(chuàng)建內(nèi)存快照,創(chuàng)建出的快照組將包含內(nèi)存快照。恢復(fù)快照組,也可選擇是否同時(shí)恢復(fù)內(nèi)存快照,針對(duì)不同使用場(chǎng)景靈活選擇。
圖2 創(chuàng)建內(nèi)存快照
2、實(shí)用性
內(nèi)存快照本身是確保虛擬化場(chǎng)景具備更好可用性的基礎(chǔ)功能。此外,通過(guò)內(nèi)存快照,可讓云主機(jī)在一定程度上規(guī)避因變更配置帶來(lái)的風(fēng)險(xiǎn)。
3、擴(kuò)展性
恢復(fù)內(nèi)存快照,支持額外恢復(fù)當(dāng)時(shí)內(nèi)存快照中的云主機(jī)配置(比如網(wǎng)卡、光驅(qū)等)。
4、適用性
目前,除Ceph之外的其它主存儲(chǔ)類型均支持內(nèi)存快照功能。
四 技術(shù)價(jià)值
內(nèi)存快照支持捕獲某一精確時(shí)刻的云主機(jī)內(nèi)存狀態(tài)。比如正在升級(jí)中的軟件,若具備內(nèi)存快照,當(dāng)升級(jí)未按預(yù)期完成,或升級(jí)后不符合預(yù)期,可直接恢復(fù)內(nèi)存快照,將軟件快速回滾至升級(jí)之前的狀態(tài)。
對(duì)于業(yè)務(wù)連續(xù)性要求苛刻的系統(tǒng),如需進(jìn)行升級(jí)或調(diào)整(不關(guān)機(jī)),可先創(chuàng)建內(nèi)存快照,保證應(yīng)用一致性,再開始進(jìn)行業(yè)務(wù)變更。若突發(fā)異常,則可直接恢復(fù)內(nèi)存快照,將業(yè)務(wù)系統(tǒng)快速恢復(fù)至升級(jí)或調(diào)整之前的狀態(tài)。
五 結(jié)束語(yǔ)
云軸科技ZStack作為一家自主創(chuàng)新、專注產(chǎn)品化的云計(jì)算公司,打造好用的云產(chǎn)品,降低用戶云計(jì)算使用門檻,是我們一直以來(lái)秉持的理念和踐行方向。內(nèi)存快照功能的推出,讓ZStack Cloud快照功能更加完善,進(jìn)一步保證用戶數(shù)據(jù)完整性。未來(lái),我們會(huì)繼續(xù)推出更多豐富好用的云計(jì)算產(chǎn)品功能,為用戶創(chuàng)造價(jià)值。
免責(zé)聲明:市場(chǎng)有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買賣依據(jù)。
關(guān)鍵詞: