![对于不断发展的网站,推荐的 GlusterFS 配置是什么?](https://linux22.com/image/503948/%E5%AF%B9%E4%BA%8E%E4%B8%8D%E6%96%AD%E5%8F%91%E5%B1%95%E7%9A%84%E7%BD%91%E7%AB%99%EF%BC%8C%E6%8E%A8%E8%8D%90%E7%9A%84%20GlusterFS%20%E9%85%8D%E7%BD%AE%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我有一个网站,每天平均点击量接近 5000 万次,未来 3 个月内每天点击量应该会超过 1 亿次。我们正在尝试使用 GlusterFS v 3.0.0(包含截至 2010 年 1 月 17 日的最新补丁)
目前,我们刚刚升级到负载均衡器环境,该环境有 3 个物理主机,6 个 Xen-Server 5.5u1 VM(每个主机 2 个)用于处理网页流量。每台机器有 6 个 Raid-6 本地存储驱动器(7200RPM-SATA)。我们之前使用的旧机器有 1 个镜像 SAS 10k 驱动器。
我们还设置了 GlusterFS,目前有 3 个 brick,每个主机一个,它为 6 个 VM 提供客户端服务。在测试中,一切似乎都很好。然而,当我们投入生产时,似乎没有足够的 I/O 来处理甚至超过 15M 次点击的流量。几周前,我们的旧服务器能够处理流量,最大为 20M。
对于这样的应用程序,是否有任何推荐的配置,或者需要注意的事项,而对于我们这个规模的站点,gluster.org 上的文档中没有明确说明?
答案1
6x7.2krpm 硬盘组成的 RAID-6 没有写缓存(?)糟糕的写入性能非常糟糕,如果您的应用程序组合合理,那么它可能会使磁盘陷入困境,从而真正影响读取性能。我的意思是,实际上,您会看到该阵列中 80/20 的读/写分割中有 250 个随机 iops。如果您每秒执行数百个 http 请求,那么像 apache 访问日志这样微不足道的事情就会像 DoS 攻击一样使其陷入困境。
如果可以,请将其重新设置为 raid10。这会占用一些原始空间,但会对 i/o 性能产生巨大影响。如果可以在 raid 卡上获得电池支持的写入缓存,则会产生很大的不同。
我对 glusterfs 不是特别熟悉,但所有分布式文件系统往往都有相同的基本问题,网络延迟 + 复杂锁定 = 性能不佳,尤其是在小文件和大量写入工作负载的情况下。
磁盘 I/O 速度慢,文件系统速度慢,这种集群设计根本无法满足工作负载。现在退回服务器或至少退回磁盘子系统是否太晚了?如果这是高收入公司的主要平台,您确实应该聘请专业人士。
答案2
您将 GlusterFS 流量传输到什么介质上?如果是以太网,由于 TCP/IP 的开销,您的配置将受到严重限制。GlusterFS 在那里并不是最高效的。它真正出彩的地方是通过 RDMA。您可以使用 Infiniband 或 10GigE 实现这一点。
我也有点不明白,既然它们都执行相同的任务,为什么你决定在每个物理主机上放置 2 个虚拟主机。为什么不直接在裸机上运行它们并避免开销?
答案3
您使用的是哪个版本的 GlusterFs?GlusterFS 3.0.0 是一个主要版本,具有许多改进,包括提高小文件性能。
GlusterFS 中有许多性能转换器,可以针对各种工作负载进行调整。例如,为了提高读取性能,我们有预读转换器,为了提高写入性能,我们有后写转换器。io-cache 是另一个可用于缓存的性能转换器。
您的设置类型是什么?您使用的是复制还是分发,还是两者兼而有之?您的网络后端是什么?您是否对新旧服务器之间的网络/磁盘 IO 进行了基准测试,以消除瓶颈?
如果您可以与我们分享您的卷文件,我们可以帮助您调整配置文件,以获得最佳的工作负载性能。
仅供参考,我们提供 30 天免费试用支持订阅[1],您可以在其中快速、深入地获得您的疑问的答案。
干杯,Sachi
答案4
无需深入了解您的设置(例如,您的网站是静态的还是动态的?数据库事务是否在使用相同存储子系统的服务器上进行?),但 RAID 6 通常对于写入性能来说是一个糟糕的选择,更不用说当您通过 gluster 引入更多复杂性时。您可能有两组写入条带转换正在进行,一组在 gluster 级别,一组在控制器级别。然后您有两个奇偶校验计算,这会减慢速度并导致 I/O 阻塞,除非您拥有较大的写入缓存和低 I/O 活动周期。
我建议您切换到 RAID 10,并使用光纤通道或多个绑定的 GigE 链路支持它。