我运营一个包含大量大文件的网站,即使在购买了我的主机在单个服务器上提供的最大空间(8x2TB 驱动器)后,我的磁盘空间仍然不足。
我想添加第二台服务器,仅用于存储和提供文件。我的问题是,实现此目的的最佳方法是什么?使用 NFS 安装新服务器是一种方法。另一种方法是重写我的应用程序以利用多台服务器,但这需要大量工作。
有没有一种简单的方法可以将底层存储与 Web 服务器隔离,以便对于 Web 服务器来说,所有内容都显示为单一路径,但实际上分布在多台服务器上?
我的操作系统是 Linux CentOS,我的服务器是 Apache。
请注意,我面临的唯一问题是磁盘空间,而不是带宽或 CPU 等。我不需要对流量进行负载平衡,只需要添加更多空间。
答案1
我认为 NFS 是可行的方法,但还有其他一些选择,例如 FreeNAS(基于 FreeBSD),范围效果,代表以太网上的 ATA 和 SAMBA,但除非您还在寻求 Windows 互操作性,否则我不推荐它。
答案2
我不知道你有多少成本。但在这种情况下,我们可以使用 NAS,或者最好使用 SAN 来替换服务器上的空间。存储区域的优势
使用 NAS/SAN,您仍可使用 NFS 或某些流行的高速协议在多台服务器之间共享文件。无需更改服务器上的许多配置。
使用 NAS/SAN,您可以随时扩展系统,永远不会遇到磁盘空间问题,因为您可以订购多个磁盘并立即热插拔。令人惊奇的是,当您的所有服务器都不需要配置在本地存储数据时,当 1 或 2 个节点发生故障时,您仍然可以正常运行服务。这真是太好了
SAN 的缺点
- 成本。但是,如果您必须订购另一台具有许多磁盘的服务器,还有什么更好的选择呢?
答案3
当您开始需要处理当前拥有的数据存储量时,据我所知,您实际上只有两个选择:
1) 使用 Amazon S3 或 Rackspace Cloud Files 等对象存储来存储您的数据。这将为您提供几乎无限的存储容量,并减轻您的服务器对提供这些文件的需要。
2) 开始管理自己的设备。当然,您可以在托管的专用服务器上建立并运行某种集群文件系统,但您将在很多方面与系统作斗争。为了确保可靠的数据存储,您将需要多台服务器,而成本将很快上升。
答案4
您通常希望根据服务器数量来扩展吞吐量。如果不知道应用程序的详细信息,就很难做到这一点,但我建议使用设置的分布式特性。使用 HTTP,您可以根据路径将请求重定向到不同的服务器。
嗯,NFS 也可以工作,但某个时候你的 web 服务器会成为瓶颈