我是 btrfs 的新手,我需要一些有關分區和子卷策略的建議。該系統是一個輕型 Web 伺服器,並假設它只有一個磁碟。
對於 ext 檔案系統,我總是為 /、/var、swap(可能還有 /boot 和 /home)建立單獨的分割區。對我來說,/var 始終包含所有有價值的 Web 伺服器資料(例如 MySQL 資料庫),但不包含任何程式碼。這使我可以輕鬆地將資料移動到不同的系統(移動或複製 /var)或重新安裝作業系統,而不會破壞資料(重新格式化 /)等。
使用 btrfs,我可以做同樣的事情,使用相同的分區方案,並在每個分區上有一個單獨的 btrfs 檔案系統。或者,我可以有一個分區,並為 /、/var 等使用 btrfs 子卷。這樣做有什麼優點和缺點?
在我看來,擁有 /-only 和 /var-only 快照可能有一些優勢,例如(“將所有數據恢復到以前的檢查點”與“恢復所有代碼”與“恢復兩者”)。是這樣嗎,還是只是看起來如此?
額外問題:在 btrfs 檔案系統下使用 lvm 有優勢嗎?
額外問題 2:如果系統有兩個相同大小的磁碟,您的建議會如何改變?
任何指向「這就是我所做的以及它如何為我工作」的文章的指示也將不勝感激。我可以找到很多關於我能做什麼的材料,但我找不到太多說「這是我嘗試過的,這就是它有效或無效的原因」。
答案1
如果您沒有特定需求,請像使用其他檔案系統一樣使用 btrfs。分開 /home 是一個很好的做法。
就我個人而言,在家庭伺服器上我唯一的子磁碟區是 /etc,因此我可以製作配置的快照。這可以使用 snapper 等工具實現自動化。
通常,人們沒有興趣只恢復 /var 的先前版本,因為還需要恢復 /lib/stuff。這是一種全有或全無的情況。
/home 的快照可能非常大,因此磁碟大小管理很快就會成為問題。這樣做沒有任何問題,但要注意剩餘空間。此外,由於快照只能在同一磁碟上創建,因此它們不能作為磁碟故障時的備份解決方案。將它們視為“哦,我兩小時前刪除了這個文件,但我仍然需要它”之類的情況的東西。
獎金 1:無。其實btrfs是為了簡化堆疊mdadm+lvm+fs而設計的。所以最好避免它。
獎勵 2:不,但是進行 RAID 1!簡單高效,您的數據會愛上您:)
忍者獎勵:你可能真的想好好看看維基百科。
答案2
我最近一直在重新審視這個問題,並認為我應該分享一篇經過深思熟慮的帖子,該帖子提出了一個帶有包含子卷的頂級目錄的分區:https://bbs.archlinux.org/viewtopic.php?id=194491
長話短說
subvolid=0
├── subvol_root
│ └── /usr, /bin, /sbin, /.snapshots, etc
├── subvol_snapshots
├── subvol_home
└── subvol_opt