我想构建一个 HA Web 服务,并计划在三个节点(带有副本 3)上使用 Glusterfs。
我的计划是直接在 Gluster 节点上安装 Web 服务器。
这是一个可行的解决方案吗?或者是否有充分的理由使用专用的 Gluster 节点?
谢谢。
页。
答案1
是的,您可以直接在 Web 服务器实例上运行 GlusterFS 节点,但请记住,它可能会占用大量 CPU,从而占用 Web 应用程序的 CPU 资源。您应该测试您的应用程序,看看它是否有足够的 CPU 和其他资源来与 GlusterFS 融合运行;如果没有,您应该升级硬件或使用专用的 GlusterFS 节点。
答案2
这根本不是问题,请记住:
- 对于有许多更改或锁定机制(php 会话)的小文件,请使用NFS 挂载并阅读有关锁定和所有 nfs 挂载选项(如 fsc、rsize、wsize)的信息,由于没有内置故障转移和/或负载平衡,您必须花几分钟进行部署计算机断层扫描数据库A有关于安装 NFS-ganesha 的良好资源
- 如果使用 fuse 客户端(大文件),请使用备份卷文件服务器用于故障转移
- 到进行一些性能调整这已经已经在这里问过了
NFS/FUSE 的速度
在另一个线程,其中规定
从我的经验来看,性能差异很大。将我的 Web 应用程序从 FUSE 切换到 NFS 后,加载时间从 1.5 秒减少到 4 秒以下。此外,我今天尝试提取一些档案,在 FUSE 上似乎需要 4-5 倍的时间
基准例子在这里
提高FUSE速度:
在 gluster 邮件列表中有 2 条关于提高速度的提示负超时 :
mount -t glusterfs -o negative-timeout=1,use-readdirp=no,log-level=WARNING,log-file=/var/log/glusterxxx.log 192.168.140.41:/www /var/www
mount -t glusterfs -o use-readdirp=no,log-level=WARNING,log-file=/var/log/glusterxxx.log 192.168.140.41:/www /var/www
所以这意味着只有 1 秒的负超时...在这个特定的测试中:./smallfile_cli.py --top /var/www/test --host-set 192.168.140.41 --threads 8 --files 50000 --file-size 64 --record-size 64
结果是,在定义了 1 秒负超时的情况下,大约需要 4 秒,而在未定义负超时的情况下,则需要很多分钟(我等待了 15 分钟后退出)
和
PS:我已经发现,对于这个特定的测试,所有的差异都是由:negative-timeout=600 造成的,当删除它时,它又会慢得多。
答案3
使用共享文件系统是维护高可用性 Web 服务/站点的选项之一,但实际上这并不是最好的。
这样做的主要好处是,当你的服务有大量上传和写入操作时,最佳做法是将用于上传的那部分服务拆分为特定的文件夹,然后使用 Gluster 复制该文件夹。静态文件可以使用 CDN 或缓存服务器提供服务,少量的用户数据可以存储在 SQL 和 Redis 等数据库中,或者分布式缓存服务器(如 memcached)或分布式对象存储服务(如 min.io)中