Raid
為什麼 btrfs 允許使用不匹配的驅動器創建 raid1?
我正在使用創建一個 btrfs
sudo mkfs.btrfs -m raid1 -d raid1 <small-disk> <large-disk> or sudo mkfs.btrfs -m raid1 -d raid1 <large-disk> <small-disk>
它使用兩個磁碟/分區之和的大小創建 fs,但是
btrfs fi df <mountpoint>
為數據、系統和元數據提供 RAID1
這怎麼可能是正確的?
有沒有類似 mdadm 的方法
cat /proc/mdstat
看看 btrfs 在做什麼並確保我的 raid1 是安全的?這不是非常重要的數據,因此可以使用 btrfs,但我也不想失去它。
我通過在郵件列表中詢問找到了答案。
btrfs 不是按卷執行 RAID,而是按塊執行。文件系統在(pe)1GB 塊中保留“原始”空間。用 raid1 初始化 fs 意味著每次它嘗試分配一個塊時,它都會嘗試在另一個設備上分配這個塊的副本。
這種架構允許混合大小的設備,其未來的功能可能包括每個文件的 RAID 級別。
目前
df
向您顯示設備上的可用原始空間量,這是所有設備大小的總和。假設塊大小為 1GB,僅將 5MB 文件寫入 raid1-btrfs 將因此將原始空間減少 2GB。這就是為什麼 btrfs 包含btrfs fi df
為您提供實際用法的命令的原因。這可能會在未來進行調整,以更準確地顯示正在發生的事情。