如何为“只写” smb 共享设置临时故障转移?

如何为“只写” smb 共享设置临时故障转移?

我的任务是设置一个存储服务器,用于从 Illumina 机器“接收”数据,该机器运行非常昂贵的 DNA 测序操作,中断性有限。测序仪本身连接到供应商提供的 Windows PC 上,以运行控制软件,该软件需要一条可以转储数据的路径(几周内大约 12-16TB)。存储服务器使用 CentOS/samba 为此目的提供共享。我的问题是:如果存储服务器或网络发生故障,是否有办法使安装在 Windows PC 上的共享“重新映射”或至少缓存到本地存储?当然,我希望在发生这种情况时收到通知。请记住,我们不能只在本地镜像所有内容,因为没有足够的空间。基本上,我希望测序仪软件能够继续写入共享,只要有一些本地空间来保存数据,直到可以同步。如果可能的话,我当然会添加一个或两个额外的驱动器,以增加我们解决问题的时间。

我主要使用 Unix,因此,如果能提供 Windows 世界中“显而易见”的解决方案,我将不胜感激。我不想在测序仪的 Windows 机器上安装各种疯狂的第三方软件,但可靠的、经过测试的解决方案可能没问题。

编辑:应该补充一下,如果有一个完全不使用 smb 的创造性解决方案,我不介意。

TLDR:重要的是 a) Windows 客户端软件看到可以写入数据文件的路径 b) 这些文件以某种方式最终到达存储服务器 c) 如果网络连接或存储服务器出现故障,则会有一段时间窗口,在此期间软件不会被阻止并可以继续写入数据,并使用本地连接的存储作为缓存。

答案1

这是个奇怪的问题。这是在集中存储环境中可以预料到的事情,因为所有有价值的工作都是由服务器集中完成的,但我从未听说有人使用单连接存储来做到这一点。

你没有提到存储服务器是提供的还是你自己的——无论如何,我知道的唯一一种实现文件高可用性的廉价方法是使用DFS并准备好一些备用路径,以便切换。问题是,在将 DFS 重新映射到新共享之前,您仍然会遇到写入失败。

如果您有足够的钱,这个问题很容易解决 - 只需安装一个支持节点地理位移的集群存储设备,并运行多路径驱动程序即可。Netapp 使用城域集群就是一个例子,如果您正在查看磁盘,IBM 的 SVC 具有拆分 IO 对,甚至可能是 VDisk 镜像。

编辑:@mfinni 让我想到了脚本。你说你的控制应用程序想要一个大型网络共享的“路径”——它需要知道它很大吗?如果你指示它写入本地驱动器会怎么样?是否可以将其配置为写入特定、足够小的文件,以便您可以保持脚本运行,当控制应用程序关闭它们时,脚本会将它们转移到 NAS?

另外,它会写入磁带吗?磁带驱动器非常适合这些类型的只写应用程序 - 每个磁带盒可容纳 1.6TB 未压缩数据。

答案2

不是。您可以为 NAS 共享设置故障转移群集,这将降低发生故障的可能性。但这并不能消除数据丢失的可能性,只是减少了故障点。

如果不允许数据丢失,则正确的方法是以下两种方法之一:

  1. 向软件供应商施压,以免网络存储消失时导致数据丢失。
  2. 让软件在本地写入,然后你编写一个复制脚本,如果网络存储消失,该脚本也不会复制。

答案3

DNA 测序仪有什么样的输出?我猜它是一个分成 2GB 文件的超大数据库?您可以编写一个小的批处理文件,检查是否有超过 2 个文件,并复制修改日期最早的文件,一旦成功完成,就将其删除。(假设它只输出文件,不需要旧文件)如果复制由于某种原因失败(例如 NAS 出现故障),它就不会删除本地文件并发送电子邮件。

我认为稳定的 NAS 发生故障的可能性与连接到 DNA 测序仪的计算机一样大,是的,网络可能会发生故障,但如果 NAS 有备用以太网端口,您可以使用交叉线直接插入它们(或不插入,MDIX 等...)

相关内容