有没有办法以复制模式运行 GlusterFS,但又能够动态地扩大或缩小卷?
假设你有 3 台服务器都在运行 glusterd。你的 Gluster 卷必须设置副本 3
gluster volume create test-volume replica 3 192.168.0.150:/test-volume
192.168.0.151:/test-volume 192.168.0.152:/test-volume
然后你可以将其挂载为 \mnt\gfs_test
如果我想向存储池添加另外 2 台服务器,然后在此卷中使用它们,会发生什么情况?有没有简单的方法可以扩展卷并将副本数增加到 5?
我的最终目标是在 EC2 实例上运行它,比如 3 个 Apache 前端,并在 gluster 卷安装上设置 webroot。我担心的是,如果我需要启动服务器,我希望该服务器不仅是一个额外的 Apache 前端,而且还要成为 gluster 文件系统中的另一个服务器,以增加容错能力,并可能略微提高读取速度。
也许有更好的选择可以满足要求?
谢谢。
答案1
我不会建议使用 Web 工作进程以线性方式提高副本数量。在我看来,这非常浪费空间。
我会对您的 Web 负载进行分析,并从一开始就定义合理数量的副本。然后,当添加新工作程序时,只需部署 $replica_count 个新 gluster 节点并将它们作为条带块添加到现有卷;重新平衡后,您将获得更高的性能和更大的容量。如果您必须缩小规模,您可以随时删除 $replica_count 个节点而不会丢失数据。
关于安全约束,考虑尝试使用 zfs 作为底层 fs,因为它对数据丢失具有很强的弹性。