我刚刚在我的 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”和“单个”
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:~$
我正在使用刚刚安装的 Ubuntu 14.04 服务器并运行了 dist-upgrade。
任何建议都值得赞赏!
答案1
我看到总共可用空间为 7.3TB
没错。
简短的回答是,您看到的是可用于放置镜像副本的原始空间,因此将其分成两半即可获得预期的 3.6 TB。
使用 btrfs 计算磁盘可用空间非常容易让人困惑。官方 btrfs FAQ 有一个问题为什么计算自由空间很困难在 btrfs 中。
btrfs 文件系统可以包含具有不同 raid 级别的文件块。有些文件可能没有镜像副本(“单个”或“raid0”),而其他文件则有镜像副本(“raid1”)。
您实际上现在就在文件系统中拥有它。
当我尝试列出我正在使用的 RAID 类型时,我看到“RAID10”和“单个”
这说明您的文件系统中有一小部分数据未镜像(“单个”)。您需要执行 btrfs 平衡来修复此问题。我建议执行以下操作:
btrfs 平衡启动 -dconvert=raid1,profiles=single -mconvert=raid1,profiles=single -sconvert=raid1,profiles=single --force /mnt/tmp
这会将单副本数据转换为镜像,包括文件数据、元数据和系统数据(d、m 和 s)。“profiles”参数将使其仅影响当前单副本的数据。