我有一台带有 2 个硬盘的计算机,我想用它们来存储数据。最初我想创建镜像 zfs 池,但不需要如此安全地存储那么多数据。因此,如果我使用 raid0 vdev 创建 zfs 池并在特定数据集上设置副本数 = 2(例如,我将在其中存储家庭照片或类似数据),这是否与拥有两个池相同,一个镜像用于更关键的数据,一个 raid0 用于标准数据?
答案1
不,copies=2
不提供设备冗余! 请勿使用copies=2
镜像 vdev!
如果某个设备(如 RAID 0 中的 vdev)发生故障,则无法导入池。所有数据都将消失。
使用镜像 vdev 没有任何好处copies=2
。只有缺点:
- 由于双重写入和碎片化寻道导致写入性能较慢。
copies=2
甚至不能很好地保护您的数据。 这里是一个实验,它表明如果在 85% 已满的池中随机有 0.1% 的磁盘损坏,文件仍然会丢失。
你应该怎么做呢?你应该将磁盘设置为镜像(RAID 1),并将备份到其他地方的不同池中。备份将用于保存你提到的额外重要文件,例如家庭照片。 永远不要忘记 RAID 不是备份。
如果您的预算真的只有两块硬盘,我会创建两个单独的池,由单独的磁盘和zfs send | zfs receive
两个磁盘之间的重要文件组成。这有点麻烦,这就是为什么我只建议您在没有其他选择的情况下才这样做。它肯定比 RAID 0 更安全copies=2
。