Linux 的共享块设备的文件系统

Linux 的共享块设备的文件系统

有这样的事吗?我不关心性能,我只需要能够从两台计算机访问同一个块设备。块设备没有任何花哨的东西(如预留),所以它是纯粹的读/写设备,没有缓存或其他讨厌的技巧。

答案1

Red Hat 的全局文件系统 v2 (GFS2) 可能是 Linux 上最流行的集群文件系统。请参阅:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/global_file_system_2/index#ch-overview-GFS2

还有 Oracle 集群文件系统 v2 (OCFS2) 和 IBM 通用并行文件系统 (GPFS)。请参阅:

https://blogs.oracle.com/cloud-infrastructure/post/a-simple-guide-to-oracle-cluster-file-system-ocfs2-using-iscsi-on-oracle-cloud-infrastructure

https://www.ibm.com/docs/en/gpfs/4.1.0.4?topic=guide-introducing-general-parallel-file-system

Red Hat 无法扩展到 16 个节点以上,因为它没有专用的元数据主机,并且每个主机都有自己的所有元数据副本。长话短说:由于您必须保持所有内容同步,因此性能实际上会降低,分布式锁流量变得非常大(最近没有发布公共基准测试,对此深表歉意!)。Oracle 的文件系统旨在处理 Real Application Cluster (RAC),因此可以很好地处理大文件,但小文件性能就不是那么好了。IBM 的文件系统不是 100% 开源的,所以我不会在开源环境中部署它。

其余一切都颇具异国情调。

答案2

它们被命名为集群文件系统https://en.m.wikipedia.org/wiki/Clustered_file_system。不同的产品具有不同的功能。例如:GFS2、OCFS2、Lustre

答案3

缓存是实际问题(磁盘写入冲突)的上一层。假设节点 A 和节点 B 拥有同一个磁盘。它们尝试同时将不同内容写入同一个块。这很可能会损坏文件系统。

相反,使用 NFS 或 SMB 等支持多节点访问的网络文件系统。许多功能齐全的存储系统可以将卷显示为文件共享。

集群文件系统(例如 GFS、GPFS 或 OCFS)也用于解决并发问题。它们的设计往往要求节点具有分布式锁管理器和隔离机制(那些花哨的 SCSI 预留),以确保多节点块访问安全。从历史上看,与通过一台服务器进行逻辑文件访问的文件共享相比,集群文件系统的实现难度更大。

相关内容