NAS 的「快照」怎麼用:Btrfs 與 EXT4 的還原速度差異
Btrfs 的核心機制是「寫時複製」(Copy-on-Write,簡稱 CoW)。當你修改一個檔案時,Btrfs 不會直接覆蓋原本的資料區塊,而是把修改後的資料寫到新的區塊,然後更新檔案系統的元數據(metadata),讓檔案指向新的區塊。原本的舊區塊則保持不變,直到沒有任何參照指向它為止。
這個機制讓快照變得非常自然。建立快照時,Btrfs 只需要複製一份元數據的根節點,讓快照指向當下所有資料區塊的參照。整個過程是 O(1) 的時間複雜度,也就是說,無論你的資料量是 1GB 還是 100TB,建立快照幾乎都是瞬間完成。Btrfs 的快照是「子卷」(subvolume)層級的,每個共享資料夾可以是一個獨立的子卷,各自擁有自己的快照排程與保留策略。
還原時,Btrfs 同樣只要切換元數據的指標,就可以讓檔案系統回到快照當時的狀態。這個過程不需要複製大量資料,因此速度極快。這也是為什麼 Btrfs 機種在還原整個共享資料夾時,往往只需要幾秒鐘到幾分鐘,而不是幾小時。
EXT4 的日誌式設計與快照的先天限制
EXT4 的設計目標是穩定、高效、向後相容,它採用日誌(journaling)機制來確保檔案系統的一致性,但並沒有原生支援快照功能。換句話說,EXT4 本身並不知道什麼是「快照」,也無法透過簡單的元數據切換來記錄某個時間點的狀態。
那麼,市面上那些支援快照的 EXT4 NAS 是怎麼做到的?答案通常是「額外的機制」。第一種方式是透過 LVM(Logical Volume Manager)的 thin provisioning 快照,在區塊層級建立快照,但這種方式還原時需要進行區塊複製,速度較慢。第二種方式是廠商自行開發的快照代理或驅動程式,在檔案系統之上或之下建立快照層,但這類方案的效率與相容性往往不如原生支援。
更重要的是,EXT4 的快照通常是「整卷」層級的,也就是說,你不能只針對某個共享資料夾建立獨立快照,而是要對整個磁碟區做快照。這在管理上比較不靈活,而且還原時也必須處理整個卷的資料,無法只針對單一資料夾進行快速回復。
各品牌 NAS 對快照功能的支援現況
目前台灣市場常見的 NAS 品牌中,Synology(群暉)的 DSM 系統在 EXT4 機種上並不支援快照功能,快照與 Snapshot Replication 套件僅限 Btrfs 機種使用。QNAP(威聯通)則在 QTS 系統中讓 EXT4 與 Btrfs 都支援快照,但 EXT4 快照有一些限制,例如需要足夠的記憶體、快照數量有限制、且還原速度較慢。ASUSTOR(華芸)的 ADM 系統也在部分機種上提供 Btrfs 快照功能。
這意味著,如果你購買的是 Synology 的 EXT4 機種,你根本不會看到快照選項;如果你是 QNAP 的 EXT4 使用者,雖然有快照可用,但效能與靈活度都與 Btrfs 有明顯差距。因此在選購 NAS 時,「是否支援 Btrfs」應該被視為是否需要快照功能的前提條件。
三、還原速度實測與原理分析:Btrfs 快在哪裡?
接下來我們進入文章的核心:為什麼 Btrfs 與 EXT4 的還原速度會差這麼多?以下將從運作原理、實際流程與影響因素三個層面來分析。
Btrfs 快照還原:元數據切換的魔法
當你在 Btrfs 機種上還原一個共享資料夾時,系統做的事情並不是「把舊資料複製回來」,而是「把目前子卷的指標切換到快照當時的狀態」。這個動作在檔案系統層級只是修改了幾個元數據節點,實際的資料區塊完全沒有搬動。因此,還原一個 500GB 的資料夾,可能只需要幾秒鐘到一兩分鐘,速度與資料量幾乎無關。
如果你要還原的是單一檔案,Btrfs 的做法更簡單:快照本身是一個可瀏覽的目錄(通常是唯讀的),你只要進入快照目錄,把需要的檔案複製回原來的位置即可。這個複製動作的速度取決於檔案大小與磁碟速度,但因為只處理單一檔案,通常也很快。
另外,Btrfs 刪除快照也同樣是元數據操作,速度極快。不過要注意的是,刪除快照後,原本被快照參照的資料區塊才會真正被釋放,這個空間回收的過程是異步的,可能會在背景執行一段時間。
EXT4 快照還原:塊級複製的現實
在 EXT4 環境下,快照通常是透過 LVM 或廠商方案在區塊層級實作。當你要還原時,系統必須把快照卷中的資料區塊複製回原始卷,或者將指標切換到快照卷(但這通常需要卸載原始卷,會造成服務中斷)。如果是複製方式,還原時間就與資料量成正比:100GB 的資料可能需要數十分鐘,1TB 的資料可能需要數小時。
即使是廠商優化過的方案,EXT4 快照還原仍然無法達到 Btrfs 那種「瞬間切換」的效果,因為 EXT4 沒有原生的 CoW 子卷架構,無法只靠元數據操作就完成還原。這不是廠商技術能力的問題,而是檔案系統設計上的根本限制。
影響還原速度的五大關鍵因素
第一,資料量。對 Btrfs 來說,還原整個子卷的速度幾乎與資料量無關;但對 EXT4 來說,資料量越大,還原時間越長。
第二,磁碟類型。HDD 的連續讀寫速度約為 150-250 MB/s,SSD 則可達 500 MB/s 以上。在需要複製資料的 EXT4 還原過程中,磁碟速度直接影響還原時間。Btrfs 因為不需要大量複製,受磁碟速度影響較小。
第三,記憶體容量。快照的元數據需要佔用記憶體,尤其是快照數量多、資料變動頻繁時。記憶體不足可能導致快照效能下降,甚至影響系統穩定性。
第四,快照數量。保留越多快照,元數據越龐大,查詢與還原時的負擔也越大。Btrfs 雖然效率高,但過多的快照仍會佔用空間與記憶體。
第五,檔案系統碎片化。EXT4 在長期使用後容易產生碎片,這會拖慢區塊複製的速度。Btrfs 的 CoW 設計雖然也會有碎片問題,但對快照還原的影響相對較小。
四、實戰教學:建立、還原與管理快照
理解原理之後,接下來要談實際操作。不同品牌的 NAS 介面不同,但核心概念是相通的。以下將以通用的流程來說明,並補充各品牌的注意事項。
步驟一:確認你的 NAS 支援哪種快照
首先,你必須確認自己的 NAS 機種與檔案系統。進入 NAS 的儲存管理介面,查看儲存池與磁碟區的檔案系統類型。如果是 Btrfs,恭喜你,你可以使用原生快照功能;如果是 EXT4,則要查看品牌是否提供快照方案(例如 QNAP 的 Snapshot),並確認記憶體是否足夠。
以 Synology 為例,只有 Btrfs 機種會在控制台中出現「快照」相關選項;EXT4 機種則完全沒有。QNAP 的 EXT4 機種在 QTS 4.3.5 之後提供快照功能,但建議至少 4GB 記憶體,且快照數量與還原速度都有所限制。
步驟二:建立快照排程與保留策略
快照的價值在於「自動化」。你應該為重要的共享資料夾建立排程,例如每小時一次、每天一次、每週一次,並設定保留數量。常見的策略是:保留最近 24 小時的每小時快照、最近 7 天的每日快照、最近 4 週的每週快照。這樣可以在不佔用太多空間的前提下,提供足夠的還原點。
要注意的是,快照排程越密集,系統負擔越大,尤其是資料變動頻繁的資料夾。建議針對不同重要性的資料夾設定不同的排程,例如財務資料每小時快照,多媒體資料每天快照即可。
步驟三:還原單一檔案或整個資料夾
當你需要找回誤刪的檔案時,最快的方式是進入快照瀏覽介面,選擇一個時間點,瀏覽當時的目錄結構,找到需要的檔案,然後複製回原來的位置。這個過程在 Btrfs 與 EXT4 上都可以做到,但 Btrfs 的快照瀏覽通常更流暢,因為快照是唯讀子卷,可以直接掛載瀏覽。
如果你要還原整個資料夾,Btrfs 可以選擇「還原整個共享資料夾」,系統會將子卷切換到快照狀態,速度極快。EXT4 則可能需要將整個磁碟區還原,或者使用廠商提供的資料夾層級還原功能(如果有),但速度較慢。
步驟四:還原整個磁碟區(含注意事項)
還原整個磁碟區是影響最大的操作,通常用於勒索病毒攻擊後的復原。在 Btrfs 上,還原整個磁碟區可能涉及子卷切換與服務重啟,但資料複製量極小。在 EXT4 上,還原整個磁碟區可能需要數小時,期間服務會中斷,而且必須確保快照卷與原始卷的資料一致性。
無論哪種檔案系統,還原前都建議先確認快照的完整性,並在離峰時間進行。還原後也要檢查檔案是否正常,必要時再從其他備份補充。
五、選購建議:Btrfs 還是 EXT4?
看到這裡,你可能會想:「那我是不是應該直接買 Btrfs 機種?」答案取決於你的使用情境。Btrfs 在快照功能上確實有壓倒性優勢,但它也不是沒有缺點。以下提供幾個判斷方向。
什麼情況下 Btrfs 是首選
如果你重視資料保護、經常需要快速回復檔案、或是擔心勒索病毒,Btrfs 機種會是比較好的選擇。Btrfs 的原生快照、資料校驗和(checksum)、壓縮等功能,對於檔案伺服器、照片備份、辦公文書等用途非常有幫助。此外,Btrfs 的還原速度極快,可以大幅降低停機時間。
不過要注意,Btrfs 的 RAID 5/6 實作在過去曾有爭議,雖然近年已改善,但仍有使用者偏好 RAID 1 或 RAID 10。選購時建議確認機種的 Btrfs RAID 支援狀況,並搭配定期的異地備份。
EXT4 仍有意義的場景
EXT4 的優勢在於成熟穩定、相容性高、效能表現扎實。如果你不需要快照功能,或者你的預算有限,EXT4 機種仍然是可靠的選擇。此外,某些舊款機種或入門機種只支援 EXT4,這時候你可以透過外接硬碟備份、雲端備份等方式來補足資料保護的需求。
如果你使用的是 QNAP 的 EXT4 機種,雖然有快照功能,但建議不要過度依賴,因為還原速度較慢,且快照數量有限。最好還是搭配其他備份方案。
混合策略與最佳實踐
最理想的做法是「分層保護」。第一層是快照,用於快速回復誤刪或小範圍損壞;第二層是本機備份,例如另一顆硬碟或另一台 NAS;第三層是異地備份,例如雲端或異地 NAS。快照不能取代備份,但可以大幅降低日常操作的風險。
另外,無論使用哪種檔案系統,都應該定期測試還原流程。很多人設定了快照卻從來沒有還原過,等到真正需要時才發現步驟不熟悉或快照損壞。建議每季進行一次還原演練,確保關鍵資料可以在預期時間內回復。
六、常見問題與迷思破解
快照越多越安全嗎?
不是。快照數量越多,佔用的空間與元數據越大,系統負擔也越重。過多的快照可能導致效能下降,甚至影響寫入速度。建議根據資料變動頻率設定合理的保留策略,並定期清理不需要的快照。
快照會佔用大量空間嗎?
這取決於資料變動量。Btrfs 的快照只會在被修改的資料區塊上額外佔用空間,如果資料很少變動,快照佔用的空間很小。但如果資料頻繁變動,或者保留大量快照,空間佔用就會快速增加。建議監控儲存池的使用率,並設定快照空間上限。
還原快照會不會中斷服務?
還原單一檔案通常不會中斷服務,但還原整個共享資料夾或磁碟區可能需要短暫中斷,尤其是 EXT4 的還原過程。Btrfs 的還原較快,中斷時間較短,但仍建議在離峰時間進行。
RAID 與快照的關係是什麼?
RAID 提供硬碟層級的容錯,快照提供時間點層級的還原,兩者解決的問題不同。RAID 不能防止誤刪或勒索病毒,快照也不能防止硬碟同時故障。兩者應該搭配使用,再加上異地備份,才能構成完整的資料保護策略。
結語:選對檔案系統,讓快照真正成為你的資料保險
NAS 快照是一項非常實用的功能,但它的效益高度依賴檔案系統的支援程度。Btrfs 的原生 CoW 子卷架構,讓快照的建立與還原幾乎沒有時間成本,特別適合需要快速回復的場景。EXT4 雖然穩定成熟,但在快照功能上終究是「後天補強」,還原速度與靈活度都無法與 Btrfs 相比。
如果你正在選購 NAS,而且重視資料保護與還原效率,建議優先考慮支援 Btrfs 的機種。如果你已經有 EXT4 機種,也不用灰心,可以透過完善的備份策略來補足。最重要的是,無論使用哪種系統,都要實際演練還原流程,確認快照真的能在關鍵時刻派上用場。
資料保護沒有捷徑,快照是其中一塊重要的拼圖,但不是全部。理解原理、正確設定、定期測試,才能讓你的 NAS 真正成為可靠的資料堡壘。
💬 想說點什麼?
歡迎到留言板分享你的想法、心得或疑問。
💬 前往留言板 →