我想使用 freebsd 9 和 zfs 构建一个服务器。我有一些旧硬件(带有 8 GB 内存的英特尔四核),我愿意购买两个或三个 1 TB 磁盘。我还有一个 dlink RAID 服务器,里面已经有两个 1 tb 的磁盘,我可能会停止使用,所以一旦我移动了它们上的数据(目前大约 300 mb),这两个硬盘就可以在 zfs 服务器中使用在raid 1) 到新服务器。
因此,一开始就给了我 2 或 3 个磁盘,一旦我成功设置 zfs 服务器并复制数据,就可以移动到 4 或 5 个磁盘。
我的问题是如何最好地设置 zfs 池,以便我拥有最大的冗余和存储空间,并能够在未来可用时移动到 2 或 3 个或更大的驱动器。所以我不太在意速度,我猜我的以太网(即使是 1gb/s)无论如何将是系统速度的决定因素......?
我目前的想法是购买 2 个新磁盘,使用条带模式进行设置。一旦我从我的 dlink nas 复制了所有数据,我将删除其中 1 个驱动器,通过使其成为其中一个新驱动器的镜像来将其添加到池中。重建阵列后,我会将另一个驱动器移到池中,以便它镜像第二个新驱动器......完成所有这些之后,我应该拥有大致相当于 RAID 10 的“条带镜像”。
这是可能的,还是有更好的设置方法?
同样,我的首要任务是最大冗余、维护(用更新/更大的驱动器替换旧驱动器并增加我的总池空间)、可用存储空间和速度;以该顺序。
为了能够通过仅更换少数磁盘来增加存储空间,您应该使用镜像的 vdev,条带化在一起(实际上相当于 RAID10)。
在您的情况下,使用 4 个驱动器意味着可以执行以下操作:
zpool
mirror
disk1
disk2
mirror
disk3
disk4
Run Code Online (Sandbox Code Playgroud)
这将为您提供 2TB 的存储空间(假设所有磁盘均为 1TB)和良好的冗余(1 次磁盘崩溃后 0% 的阵列故障,只有 33% 的阵列故障同时发生 2 次磁盘崩溃)。
现在为了到达那里,我会购买那 2 个新的 1TB 磁盘,并将它们放入池中:
zpool create zpool mirror disk1 disk2
Run Code Online (Sandbox Code Playgroud)
然后将你的 DLINK 东西移到新创建的池中。
完成后,您可以清理 DLINK 磁盘并将它们添加到池中,以增加存储空间:
zpool add zpool mirror disk3 disk4
Run Code Online (Sandbox Code Playgroud)
如果您以后想要增加更多存储空间,您可以通过添加更多 vdev(最好还有镜像)或仅更换 4 个磁盘中的 2 个来实现。更换过程如下:
zpool offline zpool disk3
# remove physical disk3 at this point
# insert new, bigger disk in place of disk3
zpool online zpool disk3
# wait for resilver
# after resilver, do the same with disk4
# your vdev is now bigger, increasing the size of the pool
Run Code Online (Sandbox Code Playgroud)
现在,让我们看看另一个选项。如果您像这样制作了 1 个 raidz vdev:
zpool
raidz
disk1
disk2
disk3
disk4
Run Code Online (Sandbox Code Playgroud)
您将拥有 3TB 的存储空间,但是,要通过仅更换磁盘(而不是添加)来增加该存储空间,您必须更换所有 4 个磁盘(当然是一个一个)以增加池大小!如果 2 个磁盘同时崩溃,此配置也会导致 100% 阵列故障。
raidz 配置也比条带镜像配置慢。由于raidz 的计算量更大,而stripes + mirrors 实际上提高了读写性能。对于“普通”硬盘(非 SSD),条带镜像可能会填满您的千兆位连接以进行顺序读取和写入,因为 ZFS 可以结合磁盘的带宽(请记住,1Gb/s 只有 ~125 MegaBYTES/s,标准的“正常”硬盘将为您提供大约 90 兆字节/秒)。我不认为上面的 raidz 配置能够在消费硬件上做到这一点。
总而言之,条带镜像/RAID 10 与您的磁盘数量的得分是:
+ max redundancy
+ maintenance
- available storage space
+ speed
Run Code Online (Sandbox Code Playgroud)
raidz 的得分是:
- max redundancy
- maintenance
+ available storage space
- speed
Run Code Online (Sandbox Code Playgroud)
我会说条纹镜子赢了:)
最后一个提示:在开始之前一定要阅读更多关于操作方法和原因的信息!甚至可以在虚拟机中模拟整个过程。我特别考虑添加第二个镜像 vdev 的步骤!如果你做错了,你可能会得到你所希望的不同配置,而 ZFS 在这些情况下是非常无情的,因为它不允许你从池中删除 vdevs 或从 raidz vdevs 中删除磁盘!(但是,允许从镜像 vdevs 中删除磁盘)
此外,要面向未来并标记和对齐您的磁盘,这样您就不会在使用高级格式驱动器时遇到麻烦!有关 ZFS 和 4K 驱动器复杂性的更多信息,我建议您阅读FreeBSD 论坛上的此主题。
归档时间: |
|
查看次数: |
1141 次 |
最近记录: |