我计划使用raid z1 或z2 在opensolaris 之上构建一个文件服务器。以后是否可以一次升级磁盘并立即访问增加的存储空间?还是只有在 raid z 中的每个设备都升级后才能使用增加的存储空间?
此外,常规 zpool 如何处理不同大小的设备?我没有找到关于这个的确切答案。我可能必须首先在 zpool 中使用两个不同大小的驱动器,而没有任何冗余。我从一些人那里听说,每个驱动器都被视为最小磁盘的大小(在 zpools 和 raid zs 中),但 zfs 文档似乎暗示并非如此。
我计划使用raid z1 或z2 在opensolaris 之上构建一个文件服务器。以后是否可以一次升级磁盘并立即访问增加的存储空间?还是只有在 raid z 中的每个设备都升级后才能使用增加的存储空间?
此外,常规 zpool 如何处理不同大小的设备?我没有找到关于这个的确切答案。我可能必须首先在 zpool 中使用两个不同大小的驱动器,而没有任何冗余。我从一些人那里听说,每个驱动器都被视为最小磁盘的大小(在 zpools 和 raid zs 中),但 zfs 文档似乎暗示并非如此。
我只需要在 VirtualBox 中测试一下。事实证明,您受到池中最小磁盘大小的限制。因此,raidz1 中的 2x500GB 和 1x250GB 将仅产生 250GB 的可用空间。升级最后一个磁盘(并确保
zpool set autoexpand=on thepool
)后,您就可以访问额外的空间。常规 zpool 将数据条带化到池中尽可能多的磁盘/vdev 上,如果一个大于另一个,它只会在较小的磁盘已满时停止条带化。
您可以通过向池中添加一个全新的 raidz 来增加池的大小,而不是升级 raidz 磁盘(在升级所有磁盘之前不会帮助增加池大小)。
关于第二个问题,如果您不在池中使用冗余并使用不同大小的磁盘,则全局可用大小将是每个磁盘大小的总和,并且不受最小的限制。如果您使用冗余(镜像或 raidz),最小的磁盘大小将占主导地位。
从技术上讲,您可以进行 RAIDZ 设置,该设置允许您一次升级一个磁盘并增加可用空间。但这需要在所有驱动器上设置分区,并且还需要在新驱动器上创建分区才能使用它。虽然不是那么困难,但它并不简单。它只需要对 ZFS 和 RAIDZ 的工作方式进行一些规划和充分理解。
这在http://www.cod3r.com/2010/04/zfs-on-different-sized-disks/的示例中得到了证明
如果您想要一个简单的升级路径并拥有备用磁盘控制器,那么使用多个镜像池可能会更容易,如https://blogs.oracle.com/constantin/entry/opensolaris_home_server_zfs_and中所述