使用 btrfs RAID10 的可用空間比預期的多?
我剛剛使用以下命令在我的 Ubuntu 14.04 機器中創建了一個 btrfs RAID10 陣列:
mkfs.btrfs -d raid10 -m raid10 /dev/sda /dev/sdb /dev/sdc /dev/sdd
我的 4 個硬碟驅動器每個都是 2TB 驅動器。在 RAID10 下,我預計總共會看到大約 3.6TB 的可用空間。然而,出於某種原因,我看到總可用容量為 7.3TB(請參閱
/dev/sda
下文):Filesystem Size Used Avail Use% Mounted on /dev/sde1 42G 1.7G 38G 5% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 7.8G 12K 7.8G 1% /dev tmpfs 1.6G 1.2M 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 7.9G 0 7.9G 0% /run/shm none 100M 0 100M 0% /run/user /dev/sda 7.3T 13G 7.3T 1% /mnt/tmp
這是意外的行為嗎?
其他資訊:
bofh@stronghold:~$ sudo btrfs fi show Label: none uuid: a3a65325-0184-46d8-bef7-7ed066c9e320 Total devices 4 FS bytes used 29.14GiB devid 1 size 1.82TiB used 16.03GiB path /dev/sda devid 2 size 1.82TiB used 16.01GiB path /dev/sdb devid 3 size 1.82TiB used 16.01GiB path /dev/sdc devid 4 size 1.82TiB used 16.01GiB path /dev/sdd
當我嘗試列出我正在使用的 RAID 類型時,我同時看到“RAID10”和“single”
bofh@stronghold:~$ sudo btrfs fi df /mnt/tmp Data, RAID10: total=52.00GiB, used=48.77GiB Data, single: total=8.00MiB, used=0.00 System, RAID10: total=16.00MiB, used=16.00KiB System, single: total=4.00MiB, used=0.00 Metadata, RAID10: total=2.00GiB, used=64.12MiB Metadata, single: total=8.00MiB, used=0.00
另一個相當奇怪的事情是 btrfs 設備掃描不會拋出任何結果:
bofh@stronghold:~$ sudo btrfs device scan Scanning for Btrfs filesystems bofh@stronghold:~$
我正在使用剛剛安裝並執行 dist-upgrade 的 Ubuntu 14.04 伺服器。
任何建議表示讚賞!
我看到總可用容量為 7.3TB
這是正確的。
簡短的回答是您看到可用於放入鏡像副本的原始空間,因此將其分成兩半以獲得您期望的 3.6TB。
眾所周知,計算磁碟可用空間與 btrfs 混淆。官方的 btrfs 常見問題解答有一個問題,關於為什麼難以計算btrfs 中的可用空間。
btrfs 文件系統可以包含具有不同 RAID 級別的文件塊。您可以擁有一些沒有鏡像副本的文件(“single”或“raid0”)和鏡像的其他文件(“raid1”)。
你現在實際上在你的文件系統中有這個。
當我嘗試列出我正在使用的 RAID 類型時,我同時看到“RAID10”和“single”
這告訴您文件系統中的少量數據未鏡像(“單個”)。你需要做一個 btrfs 平衡來解決這個問題。我建議這樣做:
btrfs 平衡開始 -dconvert=raid1,profiles=single -mconvert=raid1,profiles=single -sconvert=raid1,profiles=single –force /mnt/tmp
這會將文件數據、元數據和系統數據(d、m 和 s)的單副本數據轉換為鏡像。“profiles”參數將使其僅影響目前單副本的數據。