我想用两个 WD Red 4TB 磁盘设置 BTRFS RAID1,它们具有 4K 扇区。由于我希望在将数据复制到其中之前第一次就正确完成(是的,它将被备份),我的问题是它是否需要对高级格式磁盘的扇区对齐和大小进行任何特殊考虑。
过去我知道我必须处理这个问题,例如在设置 MDADM+LVM 和 ZFS(ashift=12)时,但我找不到有关 BTRFS 的任何信息(除了特定于 SSD 的内容,例如这里)。我计划按以下方式使用不带分区的整个磁盘:
$ mkfs.btrfs -m raid1 -d raid1 /dev/sdX /dev/sdY
因此,考虑到我找不到任何东西,我可以相信 BTRFS 会“做正确的事情”吗?我如何控制它做什么?我在 GParted 中检查了结果,磁盘信息显示
First sector: 0
对于两个驱动器来说,这似乎是错误的,因为通常 GParted 将第一个扇区与 MB 对齐,其第一个扇区为 2048,正如我在 BTRFS 中看到的那样分割我在另一个磁盘上创建了(但我不确定)。
也许我应该在两个驱动器上创建一个跨磁盘的 BTRFS 分区,然后对齐并在 RAID1 中使用它们?顺便问一句:我应该考虑使用整个磁盘与分区的优缺点吗?
希望有经验的人可以帮助我。
答案1
根据我的经验,让 btrfs 接管没有分区的整个磁盘不会导致正确的逻辑/物理扇区对齐。我已在 3.14.1 上尝试过;后续版本可能会有所不同(当前版本为 3.18.x)。
我的建议是使用正确对齐的 GPT 分区,并告诉 BTRFS 使用 mkfs.btrfs --sectorsize 的 4K 扇区大小。
答案2
块的大小真的很重要吗?BTRFS 是基于范围的,它进行文件打包(一个块中的多个文件),inode 是动态分配的。
这是一个非常酷的文件系统。
根据这个:https://wiki.archlinux.org/index.php/Btrfs#File_system_creation 默认块大小为16KB。