可扩展存储

可扩展存储

我正在开发网络应用程序服务,并希望扩展我们的内部服务器。

我们目前的服务器有大约 1TB 的存储容量。用户每天会创建大约 10GB 的数据,这些数据会添加到我们的数据库中。

正如您所看到的,按照我们目前的速度,我们只能维持这种存储增长约 100 天。我们预计数据创建速度在不久的将来不会减慢。由于信息的性质,我们不打算使用商业云存储(aws、google、microsoft、softlayer 等)。

我们希望构建一个可以不断扩展的服务器基础设施(超越 100TB 的限制)。这将是一个根据需要逐步进行的过程,并将跨越多个 4U 服务器机架。

我的问题是,在不使我们的软件过于复杂的情况下,实现此目的的标准方法是什么。我研究过 ZFS 和 openNAS,但池化和不断扩展存储似乎存在限制。

构建一个可以不断扩展以支持我们的存储需求的同质存储架构的最佳方法是什么?

答案1

即使从我有限的经验来看,我也应该说您的问题没有明确说明。例如,您没有提到负载、延迟和带宽要求。请查看此问答页面了解更多信息:您能帮助我进行容量规划吗?


我的经验是为我们的实验室构建和管理 140TB(并且还在增长,80TB 主存储 + 60TB 备份存储)。我们将其用作研究数据的存储(主要是图像数据,一些基因组数据;没有数据库)。系统由位于不同服务器机房的两台服务器组成,并且设计为可扩展的。请谨慎对待我所写的内容。

我们的服务器运行 FreeBSD 和 ZFS,带 SAS 扩展器的 4U 盒。每个盒子都装有 4-5TB 驱动器。备份较新,有 12x5TB 驱动器,配置为 RAID6 又称 RAIDZ2。

可扩展性通过两种途径实现:

  1. 每个 Z 池(例如 12x5TB)都可以通过同时添加额外的 12 个 HDD 来扩展。诀窍是我们必须以 60TB 的块为单位向存储添加驱动器,我们不能(据我所知)添加 30TB,然后在六个月后再添加 30TB。如果您对 ZFS 感兴趣,您应该阅读术语(许多网站,包括甲骨文的FreeBSD 的
  2. 使用 SAS 可以让我们轻松添加额外的 4U JBOD 盒最多可配备 45 个驱动器插槽,通过单根电缆连接到主机箱的 HBA/RAID 卡。

因此,据我所知:

  • ZFS 在服务器级硬件上运行时,几乎无需监督即可成功托管 100TB 数据并自动进行异地备份
  • 如果满足带宽要求,使用 SAS 扩展器可以轻松扩展 ZFS 存储
  • 可扩展性并不“顺畅”,因为如果您以 20TB 的块配置 zpool,则以后必须以 20TB 或更大的块添加驱动器。如果您运行某种 RAID6/7,您不能只购买 1TB 硬盘并将其插入。如果是 RAID10,您可以这样做,因为您的“块”本质上是 1 或 2 个驱动器

更新

目前系统带宽限制如下:

  1. 通过铜缆以太网 1Gbps(整个校园)或 10Gbps(机架内)连接网络
  2. 使用 HDD 的 RAID60 阵列:nx 160MB/s(在 4x 配置中约为 5Gbps)
  3. SAS3 协议使用 4x12=48 Gbps(使用 SAS3 4x 电缆将背板连接到 HBA)

如您所见,我们目前受到 1Gbps 以太网的限制,如果我们在机架内工作(存储<->分析服务器),我们会受到服务器吞吐 5Gbps 流的能力的限制。我们的数据主要是大文件(5-500GB),所以我不确定 IOPS。为了提高带宽,目前我们需要在建筑物内安装光纤(我们的实验室和服务器机房位于不同的楼层),然后我们会受到 RAID60 阵列速度的限制。然后我们要么必须添加额外的条带,要么构建基于 SSD 的存储。该系统是为了替代基于 USB3 的 HDD 而构建的,它比后者要好。

相关内容