将同一磁盘挂载到两台 Linux 机器 - SAN/NAS

将同一磁盘挂载到两台 Linux 机器 - SAN/NAS

我对存储和文件系统一无所知,这就是我创建这个问题的原因。

我想将同一个磁盘安装到两台Linux机器上,并且两台机器必须能够同时在同一个磁盘上读/写。

据我所知,这并不容易,因为如果两台不同的机器访问同一磁盘,文件可能会被损坏。

我想了解我必须使用什么才能在两台机器上安装相同的磁盘以及 SAN 或 NAS 如何适应这一切......

经过一些研究,我认为为了做到这一点,必须使用 NFS 或 ACFS 之类的东西

答案1

您可以通过 NFS 来做到这一点。将磁盘安装到一台计算机上,并通过 NFS 将该驱动器共享给另一台计算机。

假设要共享的磁盘是 /dev/sdb,而要共享磁盘的机器是 machine1.example.com 和 machine2.example.com,那么:

  1. 在machine1中挂载/dev/sdb(如果该磁盘已经挂载并被machine1使用,则可以跳过此步骤)

  2. 将machine1作为NFS服务器,并导出/dev/sdb挂载的目录。假设 /dev/sdb 挂载在 /mnt/sharemount 上。 NFS 导出条目/etc/exports应为:

    /mnt/sharemount machine2.example.com(rw,sync)

  3. 现在允许 machine2 通过步骤 2 中的 NFS 使用 machine1 中的 /mnt/sharemount,只需将 machine1 中的 /mnt/sharemount 挂载到 machine2 上

    mount machine1.example.com:/mnt/sharemount /mnt/sharemount

如果这两台机器开始写入 /mnt/sharemount 中的同一位置,数据不会被损坏,因为将应用所需的锁,并且这一切对您来说都是透明的。

这个答案只是一个大纲。如果您不熟悉将新磁盘安装到服务器以及设置 NFS,请 google how to configure nfs client and server linux。搜索结果将为您提供数十个易于遵循的教程和分步指南。如果您习惯使用命令行(我假设您是),您应该能够以最短的时间完成设置。

答案2

如果您将存储共享为文件共享,则不会出现任何问题。想一个CIFS(Samba)共享或者网络文件系统从 NAS 设备或从一台服务器到另一台服务器。

如果您将磁盘共享为块设备,即 iSCSI 或光纤通道 LUN,您需要集群感知文件系统最重要的是促进两个系统的并发读写操作。
文件系统需要具有集群感知能力,因为在普通文件系统中,锁定是由内核在内存中完成的,一个节点将无法看到哪些文件被锁定以及正在或已在另一节点上被修改,从而导致在文件损坏中。

Linux 的典型集群文件系统是开源的GFS2或商业Veritas Cluster 文件系统

答案3

您可以通过 NFS 轻松实现此目的

制作可供用户读/写的 NFS 共享,您可以找到相同的指南这里

相关内容