![btrfs RAID0 - 我应该条带化还是复制元数据?](https://linux22.com/image/167836/btrfs%20RAID0%20-%20%E6%88%91%E5%BA%94%E8%AF%A5%E6%9D%A1%E5%B8%A6%E5%8C%96%E8%BF%98%E6%98%AF%E5%A4%8D%E5%88%B6%E5%85%83%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我想在三个 nvme 驱动器上将 btrfs 与 raid0 一起使用。这些文件应包含操作系统和大多数应用程序文件,而有价值的用户文件将位于网络驱动器或单独的磁盘上。
如果我要对实际数据进行条带化,那么使用 mkfs.btrfs -m 复制元数据有什么意义?如果其中一个驱动器出现故障,那么一切都会丢失,对吗?另一方面,我是否应该预期会对性能产生影响?我的目标是为我正在积极处理的非必要数据实现最大吞吐量。
答案1
简而言之,您选择的块配置文件取决于您的文件系统目标。
默认情况下,元数据块是重复的,即使在单设备文件系统上,非旋转设备(例如 SSD)除外,这不是为了防止驱动器完全故障,而是为了防止部分的驱动器故障。由于损坏的数据块会破坏存储在这些数据块中的文件内容,因此损坏的元数据块将阻止对内容的访问。这使得元数据损坏对整个文件系统造成更大的损害。
剥离和复制之间的选择就是吞吐量和冗余之间的选择。使用 RAID0,您可以获得更高的吞吐量,因为当一台设备正在写入一个块时,另一台设备可以写入不同的块。使用 RAID1 时,吞吐量会降低,因为两个设备都需要写入相同的块。
因此,为了获得最大吞吐量(以及 BTRFS 最大磁盘空间利用率),您可以选择对元数据和数据块使用 RAID0。