我们应该如何在小型生物信息学集群中提供文件?

ces*_*oza 7 storage

我们有一个由六个 ubuntu 服务器组成的小集群。我们对这些集群进行生物信息学分析。每次分析大约需要 24 小时才能完成,每个核心 i7 服务器一次可以处理 2 个,输入约 5GB 数据,输出约 10-25GB 数据。我们每周运行几十个。该软件是用 C/C++ 编写的自定义 perl 脚本和 3rd 方序列比对软件的大杂烩。

目前,文件由两个计算节点提供(是的,我们使用计算节点作为文件服务器)——每个节点有 5 个 1TB 单独安装的 sata 驱动器(无raid),并通过 glusterfs 2.0.1 汇集。它们每个都有 3 个绑定的英特尔以太网 pci 千兆以太网卡,连接到 d-link DGS-1224T 交换机(300 美元 24 端口消费级)。我们目前没有使用巨型帧(实际上不知道为什么)。然后通过 glusterfs 镜像两个文件服务计算节点。

其他四个节点中的每一个都通过 glusterfs 挂载文件。

这些文件都很大(4gb+),如果重要的话,它们被存储为裸文件(没有数据库/等)。

正如您可以想象的那样,这有点混乱,它在没有预先考虑的情况下有机地增长,我们现在想要改进它,因为我们的空间已经用完了。我们的分析是 I/O 密集型的,这是一个瓶颈——我们在两个文件服务器之间只能获得 140mB/sec,从客户端(只有单个 NIC)获得 50mb/sec。我们有一个灵活的预算,我大概可以得到 5000 美元左右。

我们应该如何花费我们的预算?

我们需要至少 10TB 的存储足够快来为所有节点提供服务。这种文件服务器的 CPU/内存必须有多快/多大?我们应该使用 NFS、ATA over Ethernet、iSCSI、Glusterfs 还是其他什么?我们应该购买两台或更多台服务器并创建某种存储集群,还是一台服务器足以容纳如此少量的节点?我们是否应该投资购买速度更快的 NIC(例如,带有多个连接器的 PCI-express 卡)?开关?我们应该使用raid,如果是,硬件还是软件?以及哪个突袭(5、6、10 等)?

任何想法表示赞赏。我们是生物学家,而不是 IT 专家。

Ale*_*huk 9

我在计算机科学领域,我研究生物信息学。目前 746 在Biostars :)

我已经在一所大学运行了 3 年的生物信息学计算设施(大约 40 个 Linux 服务器,300 个 CPU,100TB 磁盘空间 + 备份,总共大约 1T RAM - 服务器范围为 16 到 256GB RAM)。我们的集群有 32 个 8 核计算节点,2 个头节点,我们正在扩展它,增加 2 个 48 核计算节点。我们通过 NFS 将文件提供给计算节点。

我建议根据您的情况切换到 NFS。

我们考虑过改用 Gluster、Lustre 和 Samba,但决定不使用它们。

NFS

我有一些关于 NFS 的主要提示:

  1. 有一个专用的 NFS 服务器。给它 4 个内核和 16GB RAM。专用服务器更安全,更易于维护。这是一个更稳定的设置。例如,有时您需要重新启动 NFS 服务器 - 专用服务器不会使您的磁盘访问计算失败 - 一旦 NFS 服务器恢复,它们将简单地冻结并继续。
  2. 仅服务于您的计算和头节点。没有工作站。没有公网。
  3. 使用 NFS 版本 3。根据我的经验,NFSv4 更脆弱 - 更崩溃 - 更难调试。在稳定之前,我们将集群从 NFSv3 切换到 NFSv4 并返回几次。这是一个本地网络,因此您不需要 NFSv4 的安全性(完整性和/或隐私)。

存储硬件

我们当前的集群是 3 年前购买的,因此它不使用 SAS,而是具有扩展的光纤通道驱动器和san控制器。这种情况正在发生变化,我们购买的所有新存储都是 SAS。

我建议考虑使用SAS存储。SAS 正在取代光纤通道,成为一种更便宜、更快和更好的解决方案。最近我对提供的不同解决方案进行了研究。方便地,我们查看的选项记录在服务器故障: 什么是 SAS 外部存储选项(Promise、Infortrend、SuperMircro,...)?

我们最近从 RAID Incorporated 订购了 24TB 6Gb SAS - 6Gb SAS 存储系统。仅仅为了存储,我们就支付了 12,000 美元。订单应该会在几周内送达。这是一个无单点故障系统 - 所有组件都是冗余的,如果任何组件发生故障,它会自动进行故障转移。它连接到 2 个服务器,每个服务器使用阵列的不同分区。这是一个交钥匙解决方案,因此一旦发货,我们只需要连接它,打开电源,它就会工作(RAID6 分区将安装在 Linux 上)。该订单还包括服务器和 RAID Incorporated 将在这些服务器上免费安装 Linux Debian。

其他注意事项

不幸的是,如果您从事生物信息学基础设施运营,您可能需要成为一名存储专家。

对于 10TB 分区,选择 RAID6 - 2 个驱动器可以在不丢失数据的情况下发生故障。将 2TB 驱动器重建到热备件需要 24 小时,在此期间另一个驱动器可能会发生故障。我有 2 个驱动器在 16 个驱动器阵列中同时出现故障。

考虑将一个驱动器专用于阵列中的热备用。当您有超过 16 个驱动器时,我会说必须要有一个热备件。

如果专用 NFS 服务器上的硬件出现故障,请考虑一个行动计划。我会保留一个双胞胎作为计算节点,作为原始 NFS 服务器的潜在替代品。

最后,我不得不提到我们的文件服务器正在运行 OpenSolaris(听起来很不寻常 - 我知道)。OpenSolaris(事实证明对我们而言)具有出色的服务器硬件支持(FiberChannel、IniniBand 等)。设置 NFS 服务器需要 1 小时 - 所有步骤都非常简单:安装操作系统、通过 NAT 更新、设置网络、创建 zfs 池、创建 zfs 文件系统、共享 NFS。Sun 是 1984 年开发 NFS 的人,毫不奇怪,OpenSolaris 非常擅长为 NFS 服务。使用 OpenSolaris 的主要原因是ZFS - 一个很好的生物信息学文件系统。我喜欢的一些功能:

  • 完整性(所有写入都经过校验和)
  • 池化存储、快照
  • NFS 导出在服务的文件系统中配置
  • 在线压缩
  • 预订(空间保证)
  • 块级重复数据删除
  • 高效的备份(参见zfs send)。

将 Linux 用于您的 NFS 服务器会很好 - 在这种情况下,坚持使用 XFS 或 Ext4。