我目前正在尝试为基于Drupal的Web应用程序指定一个可水平扩展的群集,该群集看起来类似于下面的彩色图表:
负载平衡器实现了粘性会话,因此,在为用户分配了要使用的服务器后,用户便保持状态。
每个应用程序服务器具有以下内容:
- 正面清漆
- drupal 6在中间运行在灯堆上
- 内存缓存在后面
两台mysql数据库服务器位于共享IP上,它们位于具有DRBD和listenbeat的HA群集中,因此,丢失一台将不会破坏整个平台。
对于您不确定的几件事,我不确定。
文件应如何水平扩展?
我正在考虑使用NFS在每个应用程序服务器上安装共享文件目录,因此所有位置都可以使用一次上传的文件。我之所以想到NFS,是因为它已经存在了很长时间,并且我没有使用MogileFS或GlusterFS的经验,并且它是我们以前使用过的东西,因此我们对其更加熟悉。
是否有任何可遵循的准则来确定以这种方式通过NFS共享目录的服务器数量是多少?
应该如何在此处的共享文件存储中提供HA?
这里的一个问题是NFS服务器是单点故障。
我们已经在Mysql服务器上使用Heartbeat和DRBD,并且我希望将堆栈中涉及的技术数量保持在尽可能低的水平-如果我对文件使用相同的HA策略,将会有什么陷阱服务器呢?
另一种方法
这是面向内部网站的,当内部计划启动时,有限数量的用户偶尔会在短时间内非常密集地使用该网站。因此,这不需要像某些初创公司那样无限扩展。
鉴于
- 我们可以预期的流量上限
- 向文件服务器中添加HA,并设计一个可以水平扩展的设置,这样会带来相当大的复杂性
我也在考虑使两个Web服务器变得更强大,以便它们可以处理它们之间的峰值负载,并在cron作业中设置统一或rsync,以便:
- 它们的文件仍保持同步(粘性会话使用户保持与文件上传到的服务器相同)
- 丢失一个表示该站点仍在运行。
这听起来像是解决任何可能的NFS / DRBD HA复杂性难题的可行方法吗?
谢谢,
C