我正在使用创建 btrfs
sudo mkfs.btrfs -m raid1 -d raid1 <small-disk> <large-disk> or
sudo mkfs.btrfs -m raid1 -d raid1 <large-disk> <small-disk>
它创建的文件系统的大小为两个磁盘/分区的总和,但是
btrfs fi df <mountpoint>
为我提供数据、系统和元数据的 RAID1
这怎么可能是正确的呢?
有没有类似 mdadm 的方法
cat /proc/mdstat
看看 btrfs 正在做什么并确保我的 raid1 是安全的?这不是非常重要的数据,因此可以使用 btrfs,但我也不想丢失它。
答案1
我通过在邮件列表上询问找到了答案。
btrfs 不按卷执行 RAID,而是按块执行 RAID。文件系统以 (pe) 1GB 块的形式保留“原始”空间。使用 raid1 初始化 fs 意味着每次它尝试分配一个块时,它都会尝试在另一个设备上分配该块的副本。
该架构允许混合大小的设备,其未来的功能可能包括每个文件的 raid 级别。
当前df
显示设备上的可用原始空间量,这是所有设备大小的总和。假设块大小为 1GB,则仅将 5MB 文件写入 raid1-btrfs 就会使原始空间减少 2GB。这就是为什么 btrfs 包含btrfs fi df
命令来为您提供实际用法。将来可能会对此进行调整,以更准确地显示正在发生的事情。