溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

處理文件系統(tǒng)和快照空間大小不一致的方法

發(fā)布時間:2020-08-28 11:45:04 來源:億速云 閱讀:214 作者:小新 欄目:建站服務器

這篇文章主要介紹處理文件系統(tǒng)和快照空間大小不一致的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

為什么文件系統(tǒng)和快照空間大小不一致?

有用戶咨詢,在ECS實例內刪除文件后再打快照,發(fā)現(xiàn)快照容量并沒有變小。出現(xiàn)該現(xiàn)象的原因與快照原理、以及文件系統(tǒng)與磁盤、快照的關系有關,即,只要被寫過數(shù)據(jù)的存儲塊(Block),即使在磁盤中的相關文件已經被刪除,數(shù)據(jù)塊仍會被記錄到快照中,所以出現(xiàn)快照比磁盤占用空間大的現(xiàn)象。文件系統(tǒng)中所謂刪除只是在需要刪除的文件頭部做個標記,讓用戶知道這塊空間可以利用了,但并不會減少磁盤本身的空間占用。

為什么文件系統(tǒng)和快照空間大小不一致?

用戶在實例內部看到的是磁盤 (EBS),在磁盤分區(qū)上創(chuàng)建的是文件系統(tǒng) (File System)。文件系統(tǒng)負責管理磁盤空間,其操作最終均轉化為磁盤的 I/O 請求。EBS 會記錄 Block(指磁盤的邏輯塊地址被塊存儲劃分為相同大小的塊)狀態(tài),按需將臟數(shù)據(jù)拷貝到 OSS,這就是打快照的過程。

以下原因可能會造成文件系統(tǒng)的空間與快照大小不一致:

文件系統(tǒng)本身的元數(shù)據(jù)會占用磁盤空間。

創(chuàng)建文件系統(tǒng)過程會寫大量 Block。特別的,Windows 的慢速格式化會寫臟大量 Block,而使用快速格式化可以減少寫B(tài)lock 的數(shù)量。

文件系統(tǒng)為了減小開銷,刪除文件只是在內部做個標記,而 EBS 不感知這個刪除指令,Block 仍然是已分配狀態(tài),所以仍會把這部分也做到快照里,導致快照比文件系統(tǒng)大。

Virtio-block 和 Xen 的 Block-front 等模塊不支持 TRIM 指令(一種IO指令,提示LBA上的某段數(shù)據(jù)不再使用,可以被刪除),因而磁盤無法感知數(shù)據(jù)可以被刪除。

創(chuàng)建快照原理

創(chuàng)建快照原理如下圖所示。

說明:

將磁盤 LBA(邏輯塊地址) 劃分為 Block,未分配過的稱為空塊,圖中白色小方框表示。

只要 Block 被寫過(已分配,將不再是空塊),就將參與計量。

磁盤第一個快照是全量,空塊不拷貝。

磁盤后續(xù)快照是增量快照,拷貝自上一個快照以來的增量臟數(shù)據(jù),因此同一個 Block 在不同快照中可能會出現(xiàn)多個版本(圖中用不同顏色來表示)。

處理文件系統(tǒng)和快照空間大小不一致的方法

快照計量方法

如上圖所示,快照記錄空間共有 11 個 Block,比磁盤 T2 中的 9 個 Block 還要多出 2 個。

對單塊磁盤的所有快照整體計量。

只對已分配的 Block 進行計量。不同時間點相同版本 Block 只統(tǒng)計一次。

不同版本的 Block 占用 N 倍空間。

刪除快照的原理

刪除快照的原理如下圖所示。

說明:

離線分析已刪除快照的所有 Block,刪除其中未被其他快照引用的數(shù)據(jù)。

刪除 S1 之后,剩下的快照一共有 10 個 Block(包含 S0 的 6 個、S1 產生的 2 個臟數(shù)據(jù)、S2 的 2 個。),而不是 8 個 Block(S0 的 6 個、S2 的 2 個)。

處理文件系統(tǒng)和快照空間大小不一致的方法

“數(shù)據(jù)寫入操作”的準確定義

首先澄清一個概念,對底層分布式存儲系統(tǒng)而言,“數(shù)據(jù)寫入操作”不僅僅意味著用戶寫入的業(yè)務數(shù)據(jù),也包括格式化磁盤等一系列I/O操作。

用戶在拿到磁盤后,必須要先格式化才能正常使用。格式化的本質是建立文件系統(tǒng)的過程。一個分區(qū)或磁盤在作為文件系統(tǒng)使用前,需要初始化,并將數(shù)據(jù)結構記錄到磁盤上,這個過程就叫建立文件系統(tǒng)。

因此,在磁盤上建立文件系統(tǒng),也就意味著對磁盤有數(shù)據(jù)寫入操作。不同的文件系統(tǒng),在格式化時寫入的文件大小也不盡相同,具體如下:

Windows系統(tǒng)格式化,分為快速和正常格式化:

快速格式化只是給分區(qū)分配文件系統(tǒng),并重寫目錄表;

正常格式化不但會進行上述工作,還會對分區(qū)逐扇區(qū)進行掃描以確定和標記壞扇區(qū);

因此正常格式化操作,會填充磁盤空塊,相當于把磁盤全盤寫了一遍。在此種情況下,第一個全量快照的大小會近似于磁盤容量。而快速格式化占用的實際空間則相對較少。

Linux系統(tǒng)格式化,也同樣是建立文件系統(tǒng)的過程。因此剛剛格式化完畢的磁盤,在用戶沒有寫入業(yè)務數(shù)據(jù)的時候,第一個快照也會有一定的容量大小,具體要看不同的文件系統(tǒng)格式而定。

以上是處理文件系統(tǒng)和快照空間大小不一致的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI