阿裏雲快照容量基本原理
快照容量與磁盤容量的關係
快照是在某個時間點,對整個磁盤數據狀態的捕捉。在
創建快照的過程中, 通過消除空塊的操作,使得單個快照容量小於磁盤容量。
阿裏雲會識別出從未寫入過數據的磁盤空間,並標記為空塊,不進行計量, 以節省用戶的快照空間。
數據寫入操作的準確定義
首先澄清一個概念,對底層分布式存儲係統而言,“數據寫入操作”不僅僅 意味著用戶寫入的業務數據,也包括格式化磁盤等一係列 IO 操作。
用戶在拿到磁盤後,必須要先格式化才能正常使用,格式化的本質是建立文 件係統的過程。一個分區或磁盤在作為文件係統使用前,需要初始化,並將數據 結構記錄到磁盤上,這個過程就叫建立文件係統。
因此,在磁盤上建立文件係統,也就意味著對磁盤有數據寫入操作。
不同的文件係統,在格式化時寫入的文件大小也不盡相同,具體如下:
1. Windows 係統格式化,分為快速和正常格式化:
• 快速格式化隻是給分區分配文件係統,並重寫目錄表;
• 正常格式化不但會進行上述工作,還會對分區逐扇區進行掃描以
確定和標記壞扇區;
• 因此正常格式化操作,會填充磁盤空塊,相當於把磁盤全盤寫了
一遍。在此種情況下,第一個全量快照的大小會近似於磁盤容量。
而快速格式化占用的實際空間則相對較少。
2. Linux 係統格式化,也同樣是建立文件係統的過程。因此剛剛格式化完
畢的磁盤,在用戶沒有寫入業務數據的時候,第一個快照也會有一定的 容量大小,具體要看不同的文件係統格式而定。
虛擬機內刪除文件會減少空間占用嗎?
文件係統中所謂刪除隻是在需要刪除的文件頭部做個標記,告訴用戶這塊空 間可以利用了,並不會減少磁盤本身的空間占用。
為什麼快照容量大於文件係統內看到的數據量?
如上所述,文件係統的格式化、文件的刪除操作以及用戶的寫數據行為都會 使得磁盤空塊數量不斷減少,從而減弱了創建快照過程中消除空塊的效果。因此, 用戶會看到快照容量比文件係統內展示的數據量要大。
為什麼快照刪除了之後,快照鏈總容量有時不會減少?
由於阿裏雲采用的是增量快照的方式,即後麵的快照會和之前的快照進行比對,如果是全部內容相同,則直接引用之前快照的內容,例如:
s1->s2->s3
在創建s3時,會把磁盤的內容和s2的內容進行比較,如果沒有發生任何變化,則直接引用s2的內容,增量大小則為0,s2的引用計數為1,此時刪除s2,並不會回收s2占用的存儲空間。
最後更新:2017-06-05 11:32:27