这篇博文描述了一个用于创建存储服务器的简单解决方案,在过去几年中,我多次被问到这个话题。因此,您是一名开发人员,并且有一个可能会改变互联网世界的好主意。您如何实施这个伟大的想法以及需要什么样的基础设施?
所需的基础设施
您将需要以下基本基础设施:
- 2 x 前端服务器充当 Web 和应用程序服务器
- 1 x 后端服务器,用于通过 Web 服务器存储和提供内容
- 1 x 前端和后端服务器之间的专用网络
下图给出了这种设置的印象。
每台服务器都连接到互联网和安全的专用网络。服务器的远程管理通过 Leaseweb 客户门户进行,安全的 VPN 连接允许我们从控制台控制服务器。
现在让我们开始并确定我们的规格:
订购前端服务器
我们需要两台专用服务器作为前端服务器,每台服务器至少应有 4 个内核、8GB RAM 和一个用于操作系统的小磁盘。网络方面,服务器必须具有互联网链接、至少 100Mbps 的端口速度、公共 IP 和专用网络 (1Gbps)。像 HP DL20 G9 这样的东西应该可以解决问题。
然后我们需要做一些简单的负载平衡和故障转移,所以我们有几个选项:
- 使用负载平衡器设备。此选项可能是最昂贵的选项,但它消除了配置负载平衡软件的一些麻烦。
- 自己动手,使用本地心跳脚本和故障转移 IP 创建自己的 HA 故障转移解决方案。最大的优势是您可以控制正在发生的事情,您还可以使用它来将服务器的负载平衡运行为主动/主动。缺点是它需要更多的技术知识。
- 让别人为你做这件事。有几个可用的 DNS 提供商在其 DNS 之上提供补充服务,可以帮助您。例如,DNS Made Easy为您的服务器提供健康检查,并可以将故障转移到(备用)服务器。
订购后端服务器
在这个假设的例子中,存储服务器至少需要 4TB 的存储容量和 8GB 的 RAM,我们并不关心 CPU 功率。服务器需要连接到专用后端网络,最好是至少 1Gbps,以便它们之间有足够的带宽来共享数据。
可以定制的 DL380e Gen8 (12 LFF) 之类的东西符合要求。
磁盘应位于 RAID 集中。RAID 配置取决于您的要求,但我更喜欢使用 RAID-5,因为它提供了比写入更好的读取性能,同时允许阵列从故障驱动器中恢复数据。当用户将内容上传到我的网站时,写入内容不如快速提供内容有趣。
如果需要更高的性能,可以选择使用 SSD 驱动器甚至 NVMe SSD 驱动器(尽管不在 RAID 集中)。
部署
现在是时候开始部署我们的解决方案了,因此需要采取以下步骤:
- 使用选择的 Linux 发行版部署前端专用服务器
- 定制、订购和部署具有足够容量/磁盘性能的后端存储服务器,运行所选的 Linux 发行版
- 互连后端网络上的所有 3 台服务器
- 在存储服务器上创建 NFS 共享并将这些共享挂载到 Web 服务器上。
- 配置您的 LAMP 堆栈以托管您设计的网站
- 使用 2 个额外分配的公共 IP 以循环方式配置 DNS,或者作为替代方案,使用第 3 方来获得最高级的 DNS 功能。