我需要创建一个私有云,正在寻找最佳设置。以下是我最重要的两个要求 1. 磁盘和系统冗余 2. 价格/GB 尽可能低
该系统将用作备份设置,通过 SFTP 和 rsync 全天候接收数据。高吞吐量并不那么重要。
我计划使用 glusterfs 和消费级 4TB 硬盘。
我已经制定了 3 种可能的设置
3 台服务器,配备 11 个 4TB 硬盘,设置 3 个 glusterfs 副本,并将每个硬盘设置为单独的 ext4 块。总容量:44TB 硬盘/TB 比率为 0.75(33HDD/44TB)
2 台服务器,配备 11 个 4TB HDD 这 11 个硬盘组合在 RAIDZ3 ZFS 存储池中。使用副本 2 gluster 设置。总容量:32TB(+ zfs 压缩)HDD/TB 比率为 0.68(22HDD/32TB)
3 台服务器,配备 11 个 4TB 消费级硬盘,设置 3 个 glusterfs 副本,并将每个硬盘设置为单独的 zfs 存储池,并将每个池导出为一个块。总容量:32TB(+ zfs 压缩)HDD/TB 比率为 0.68(22HDD/32TB)(最便宜)
我的评论和顾虑:如果硬盘出现故障,哪种设置恢复速度最快?我认为是设置 1 和 3,因为只需要通过网络复制 1 个硬盘的内容。与设置 2 不同,设置 2 需要通过读取系统中所有其他硬盘的奇偶校验来重建硬盘。1 个硬盘上的 zfs 池是否会为我提供额外的保护,例如防止位腐烂?使用设置 1 和 3,我可以丢失 2 个系统,但仍然可以正常运行;使用设置 2,我只能丢失 1 个系统。当我使用 ZFS 时,我可以启用压缩,这将为我提供一些额外的存储空间。
答案1
免责声明:我没有使用 glusterfs 的经验。
如果您计划使用 ZFS,请确保您有足够的 RAM。我在 RAIDz1 中安装了 5 个 2TB 硬盘,它使用了大约 10GB 的 RAM。因此,一个好的经验法则是每 TB 硬盘至少使用 1GB 的 RAM。
单个硬盘上的 ZFS 不会为您提供任何针对“位腐烂”的保护。
我认为您应该考虑将较小的 RAIDz2 池连接到一个较大的 RAIDz2 或 RAIDz3。这样可以为您提供很多保护。