设置多主机SAN

我正在寻找关于在我们的SAN上设置多主机I / O访问的build议:

我有一个包含Equallogic PS-M4110存储刀片的刀片机箱(PowerEdge1000e),其中一个RAID6卷目前格式为ext4。

这通过iSCSI连接到其他刀片(所有运行的Ubuntu服务器14.04)之一,并安装在那里作为一个标准的驱动器。

现在,我正尝试将机箱中的另一个刀片以允许多主机I / O的方式连接到SAN。

最好尽量避免使用NFS的明显解决scheme,因为我们使用的一些稍微有些可编码的工具在进行NFS的高I / O时有一个崩溃和烧毁的习惯。 这是特别有问题的,因为这些工具需要数周的时间才能运行,而且没有太多的机会检查点(你猜这是一个学术环境了吗?)。

然而,一切都与当前的iSCSI设置很好地发挥。 所以我倾向于一个集群感知或分布式文件系统+ iSCSI作为最好的select,但我担心裂脑问题等,因为我们只有一个节点。

1)上面的任何一个都是远程理智的吗?

2)你有什么build议使用哪个fs(最好是FOSS和linux兼容)?

iSCSI是一个块级协议,通过networking读取/写入原始磁盘。 它没有文件locking的概念。 由于它也是一个networking协议,它确实允许多个连接到单个目标。 您必须能够保证iSCSI上的文件系统级别将具有足够的文件locking以防止同时写入。

我从来没有尝试过(太可怕了)。 我听说过一些例子,在这些例子中,民间机器允许一台机器读/写访问,其他机器只读。 很明显,这取决于你在这些卷上想要什么。 例如,SQL服务器的基于磁盘的内容显然需要深入了解该服务器使用的locking机制以及可能的只读表特征。

如前所述,iSCSI是一种块访问协议 – 它恰好在以太网上传输。 尝试在单个块设备上执行多主机IO是一个可怕的计划。 大多数集群不支持这个原因。 您需要担心通过操作系统caching各个层,以及您的I / O操作的primefaces性。

即使只有一个“可写”和一个“只读” – “只读”主机实际上总是读“脏”的文件系统。 我已经编写了备份解决scheme,通过克隆副本,一致性检查克隆并安装备份来实现这一点。 这仍然只是JUST的作品,因为我明确地冲洗数据/主机缓冲区,并确保我分别捕获事务日志,所以我可以“重放”和修复脏文件系统。

NFS的存在是出于某种原因,它以一种相当干净的方式处理了对Unix文件系统的多主机访问。 这并不完美 – 你最终可能会被文件系统锁住,但是至less在你每次使用的时候都不会损坏你的文件系统。

弄清楚为什么你的工具在NFS上被轰炸 – 对于初学者来说,你可能会发现软件或硬件挂载或NFS上的超时。 或者尝试从TCP切换到UDP,反之亦然。

如果你真的必须使用iSCSI,那么我build议你想要做的就是 – 如上所述 – 采用克隆实例方法,而不是共享并发IO。