我在服务器上有一个块设备 ( /dev/mapper/vg0-data
)。我计划通过 Linux 安装直接在服务器上本地安装它,但也通过 iSCSI 将其公开给另一台服务器,该服务器将连接到它两次以建立多路径连接。我想知道这是否可以,或者是否会有数据损坏,因为服务器上可能存在本地更改,也可能存在来自 iSCSI 的远程更改。如果涉及任何缓存,可能会发生冲突?我还应该通过 iSCSI 在本地安装块设备吗?
该块设备包含一个 ext4 分区。
这一切都在 Linux,Ubuntu 16.04 LTS 上。
答案1
简短回答:不要这么做
长答案:要在两台不同的机器上双重安装一个块设备,你需要需要使用集群文件系统,如 OCFS 或 GFS2。另一方面,EXT4 不是集群文件系统:同时在两台不同的机器上安装它会立即导致扩展损坏。最新的 EXT4 版本甚至有一个多重安装保护机制,或者mmp
,明确拒绝任何形式的双重安装。
因此,您要么使用集群文件系统,要么放弃块设备共享的想法,转而使用文件共享,例如通过 NFS。
答案2
在没有集群文件系统的情况下,使用一个驱动器进行多个连接无异于自杀。经过几次数据迭代后,您将首先看到数据损坏。您必须运行集群文件系统以避免此类问题。有很多主题回答了这种情况,但这是我最喜欢的。https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392