快照是雲端硬碟在某一個或多個時間點的資料備份,可以將當前雲端硬碟恢複到快照對應記錄點的雲端硬碟資料。本文為您介紹建立快照和刪除快照的原理、快照容量的計算原理以及快照容量與雲端硬碟容量的關係等。
建立快照原理
您可以根據需要為雲端硬碟手動或自動建立快照。具體操作,請參見建立快照或建立自動快照策略。
原理說明
快照分為全量快照和增量快照。雲端硬碟建立的第一份快照是建立時間點雲端硬碟上所有資料區塊的全量快照,不備份空資料區塊。後續建立的快照均是增量快照,僅備份上一個快照以來有變化的資料區塊。全量快照和增量快照的元資訊中均會儲存全量的資料區塊資訊,因此在通過任一快照復原雲端硬碟時,均可以恢複對應記錄點的所有雲端硬碟資料。
雲端硬碟初始化後會在邏輯塊地址LBA(Logical Block Address)的基礎上劃分資料區塊(Block)作為快照資料備份的最小粒度,一旦資料區塊有業務資料寫入,就將參與計量。雲端硬碟的資料寫入和修改不會對已建立的快照造成影響,快照也不會影響原雲端硬碟的資料。
快照建立完成後,將儲存在Object Storage Service中。
在OSS支援同城冗餘的地區,將預設使用同城冗餘OSS來儲存您的快照資料,以最大程度保證您快照資料的冗餘性。
在OSS暫不支援同城冗餘的地區,將使用本地冗餘OSS來儲存您的快照資料。如果您的業務可用性要求較高,建議您使用複製快照來進一步備份資料。
出於資料安全性考慮,您不能選擇使用自己建立的OSS Bucket來儲存快照資料。
有關Object Storage Service支援同城冗餘的地區資訊,請參見儲存冗餘概述和建立同城冗餘儲存Bucket。
使用快照建立雲端硬碟或復原雲端硬碟後,需要把快照資料從OSS載入到雲端硬碟中,雲端硬碟被讀取的資料會優先載入。這個過程的期間受快照資料量的影響,需要幾分鐘到幾小時。在快照資料被全部載入到雲端硬碟之前,雲端硬碟的讀訪問時延將會增加。一旦快照的所有資料區塊都被載入到雲端硬碟中,後續的讀訪問將會恢複到正常的效能水平。
樣本說明
假設ECS執行個體的某塊雲端硬碟分別在10:00和11:00有新的業務資料寫入,那麼該雲端硬碟快照的原理說明如下:
9:00時,雲端硬碟的資料區塊為A、B和C,此時建立第一份快照1,快照1中就備份了資料區塊A、B和C。快照1為全量快照,備份了該雲端硬碟上在建立快照1時的所有資料。
雲端硬碟繼續寫入資料,修改資料區塊A為A1、修改資料區塊B為B1、新增資料區塊D。在10:00時建立第二份快照2,快照2僅備份有變化的資料區塊A1、B1和D,快照2為增量快照。快照2的元資訊中會記錄雲端硬碟全量的資料區塊A1、B1、C和D,其中資料區塊C來源於快照1。
雲端硬碟繼續寫入資料,修改資料區塊C為C1、新增資料區塊E,在11:00時建立第三份快照3,快照3僅備份有變化的資料區塊C1和E,快照3為增量快照。快照3的元資訊中會記錄雲端硬碟全量的資料區塊A1、B1、C1、D和E,其中資料區塊A1、B1和D來源於快照2。
以此類推。
刪除快照原理
當您不再需要某份快照或者快照個數超出額度時,您可以刪除一部分快照釋放空間。具體操作,請參見刪除快照。
每塊雲端硬碟最多隻能建立256份手動快照以及1,000份自動快照。更多資訊,請參見快照使用限制。
原理說明
與建立快照相反,在刪除快照時,需要根據快照包含的資料區塊以及資料區塊的參考關聯性來進行空間的釋放。當雲端硬碟的第一個快照刪除後,全量快照的屬性會順延到後面的第一個增量快照。如果此時雲端硬碟沒有建立快照,在雲端硬碟下次建立新快照時也為全量快照,會備份雲端硬碟建立以來所有寫入的資料區塊。
樣本說明
假設ECS執行個體的某塊雲端硬碟建立了快照1、快照2和快照3,各快照包含的資料區塊樣本如下:
快照1:包含資料區塊A、B和C。
快照2:包含資料區塊A1(資料區塊A修改為A1)、B1(資料區塊B修改為B1)、C(資料區塊C無變化)和D(新增資料區塊),其中資料區塊C來源於快照1。
快照3:包含資料區塊A1(資料區塊A1無變化)、B1(資料區塊B1無變化)、C1(資料區塊C修改為C1)、D(資料區塊D無變化)和E(新增資料區塊),其中資料區塊A1、B1和D來源於快照2。
那麼刪除該雲端硬碟快照的原理說明如下:
假設14:00時刪除快照1,快照1包含的資料區塊A和B無參考關聯性會直接刪除,由於資料區塊C被快照2引用,因此會保留。此時快照2變為全量快照,快照2包含資料區塊A1、B1、C、D,快照3仍為增量快照。
15:00時刪除快照2,快照2包含的資料區塊C無參考關聯性會直接刪除,由於資料區塊A1、B1、D均被快照3引用,因此會保留。此時快照3變為全量快照,包含了資料區塊A1、B1、C1、D和E。
16:00刪除快照3,此時資料區塊無參考關聯性,快照中的所有資料區塊均會被刪除。
快照容量計算原理
原理說明
雲端硬碟的快照總容量以快照鏈(一塊雲端硬碟中所有快照組成的關係鏈)為粒度進行統計,統計當前雲端硬碟所有快照的資料區塊佔用的儲存空間。快照容量涉及的概念說明如下:
快照全量大小:單個快照所有資料區塊佔用的儲存空間大小。
快照增量大小:當前快照與同一快照鏈中上一份快照之間不同的資料區塊佔用的儲存空間大小。
快照總容量:第一份快照(即全量快照)的全量大小與後續所有增量快照的增量大小之和。
說明快照不儲存在雲端硬碟中,不會佔用雲端硬碟空間,會按照快照容量收取快照儲存費用(分地區計費)。更多資訊,請參見快照計費。
您可以在ECS控制台上通過快照鏈查看快照容量的大小。具體操作,請參見根據快照鏈查看快照容量。
樣本說明
假設ECS執行個體的某塊雲端硬碟分別在10:00和11:00有新的業務資料寫入,那麼該快照容量計算樣本說明如下:
假設雲端硬碟的資料區塊為A(2 MB)、資料區塊B(2 MB)和資料區塊C(2 MB),在9:00時建立第一份快照1,快照1中就會備份資料區塊A、資料區塊B和資料區塊C。快照1為全量快照。
快照1容量=資料區塊A容量+資料區塊B容量+資料區塊C容量=6 MB
雲端硬碟繼續寫入資料區塊A1(2 MB)、B1(2 MB)和D(2 MB),在10:00時建立第二份快照2,快照2僅備份自快照1以來有變化的資料區塊A1、資料區塊B1和資料區塊D。快照2為增量快照。
快照2容量=資料區塊A1容量+資料區塊B1容量+資料區塊D容量=6 MB
雲端硬碟繼續寫入資料區塊C1(2 MB)和資料區塊E(2 MB),在11:00時建立第三份快照3,快照3僅備份自快照2以來有變化的資料區塊C1和資料區塊E。快照3為增量快照。
快照3容量=資料區塊C1容量+資料區塊E容量=4 MB
該雲端硬碟的3個快照總容量=快照1容量+快照2容量+快照3容量=16 MB
快照容量與雲端硬碟容量的關係
雲端硬碟的單個快照容量不會超過雲端硬碟容量,但是隨著快照的增加,雲端硬碟容量可能會小於所有快照的總容量。
假設您建立了一個40 GB的雲端硬碟,第一次寫入了20 GB的資料,那麼此時建立的快照容量是20 GB。然後繼續寫入10 GB資料,雲端硬碟容量仍然是40 GB,但此時快照總容量就是30 GB,以此類推。您可以通過快照鏈查看快照容量的大小。具體操作,請參見根據快照鏈查看快照容量。
如下圖所示,①是雲端硬碟容量大小,②是當前雲端硬碟包含的所有快照容量大小。
快照容量與系統容量的差異
快照容量會以固定大小的資料區塊(Block)作為快照資料備份的最小粒度,以此來計算快照容量大小。
當使用者在雲端硬碟內進行刪除檔案操作時,系統顯示的容量會減少,但通常對於作業系統的檔案系統來說,刪除檔案僅是標記檔案為刪除,並不會真正地物理刪除該檔案對應的資料。因此,對於雲端硬碟來說,刪除檔案也是一個寫入操作,並不會減少雲端硬碟真正的資料佔用空間,相應地如果此時建立快照,快照依然會包含該刪除檔案對應的資料區塊。除非作業系統內的檔案系統真正執行了檔案刪除,您可以詳細瞭解檔案系統的TRIM機制。
使用者無主動寫入系統硬碟的行為,但快照容量依然可能增長。作業系統在運行時會產生系統檔案,同樣會寫入雲端硬碟,並備份在快照中。
一份快照的容量大小可能略大於雲端硬碟寫入資料的大小。因為檔案系統的一些中繼資料資訊會佔用雲端硬碟空間,快照的資料區塊會包含該中繼資料資訊及使用者寫入的真實資料資訊。例如,使用者只在雲端硬碟中建立1 MB的文字檔,快照備份的資料大小因為有檔案系統中繼資料的存在會略大於文字檔的大小,即快照容量會大於1 MB。