AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1047071
Accepted
GoNiS
GoNiS
Asked: 2020-12-22 11:09:30 +0800 CST2020-12-22 11:09:30 +0800 CST 2020-12-22 11:09:30 +0800 CST

如何强制重新读取 XFS 文件系统内容

  • 772

在我们的计算集群中,我们建立了一种简单但非常有效的方式来向计算节点提供数据。

存储系统提供给与 LVS 合并的 lun,在此之上,我们构建了一个大 (80 TiB) XFS 分区。所有节点都连接到存储舱,并且可以毫无问题地识别 LVS 和 XFS。一个节点以读/写 (RW) 模式挂载 XFS,其他节点以只读 (RO) 模式挂载。

现在,问题是每当通过 RW 节点写入新内容时,我必须在其他节点中重新挂载 XFS,以便在 RO 节点中看到新文件。这个操作很简单:umount后面跟着一个mount.

umount /data
mount /data

然而,这个解决方案不是很好,因为这个 RO 节点可能正在读取数据并且可能无法重新安装或导致超时。我想知道是否还有腐败。

那么,现在有人可以强制 XFS(和操作系统,在本例中为 Centos 7)重新读取文件表而不重新挂载吗?

filesystems xfs centos7
  • 3 3 个回答
  • 772 Views

3 个回答

  • Voted
  1. Best Answer
    wazoox
    2020-12-22T14:06:53+08:002020-12-22T14:06:53+08:00

    XFS 不是一个集群文件系统,因此没有任何设施可以满足您的要求(嗯,存在一个专有的 - 并且昂贵的 -集群版本,称为 CXFS,但这是另一回事)。

    正确的解决方案是使用集群文件系统。它们有很多,不幸的是通常设置起来很复杂。

    CentOS 提供 GFS2,设置 IMO 相当困难;我个人更喜欢 OCFS2,它在 Debian 和衍生产品(可能还有 Oracle Linux)上非常容易设置和使用,并且提供了非常好的性能,只是缺少扩展属性和 ACL(这在集群设置中通常并不重要) )。

    例如,请参阅本指南。

    • 10
  2. kofemann
    2020-12-22T11:36:56+08:002020-12-22T11:36:56+08:00

    您可以删除文件系统缓存并触发重新读取:

     echo 3 > /proc/sys/vm/drop_caches
    
    • 3
  3. shodanshok
    2020-12-23T07:54:06+08:002020-12-23T07:54:06+08:00

    请不要那样做。正如@wazoox 回答(我赞成)所解释的那样,XFS不是集群文件系统。

    如原始问题中所述,至少您将遇到缓存一致性问题。但是,如果不使用-o norecovery,ro选项挂载(即:both norecovery 和 ro),则可能会损坏文件系统。

    请考虑在“主”节点上使用 NFS 将存储导出到其他卷。如果你不能这样做,你有两个选择:

    • 使用集群感知文件系统作为 GFS2 或 OCFS2。集群感知文件系统支持来自不同运行内核的多个并发挂载,其中每个节点都有一个专用日志(即:“一个窗口”)用于写入主文件系统。请注意,各个节点之间所需的缓存一致性会显着降低性能,尤其是在读取已经在另一个节点缓存中的内容时;

    • 使用Gluster、Ceph 等横向扩展的分布式文件系统。集群与分布式文件系统之间的主要区别在于后者实际上是其他文件系统之间的聚合,每个文件系统都位于节点本地。这种聚合通常是通过用户空间应用程序(即:gluster 客户端)完成的,与经典的本地 POSIX 文件系统相比,它极大地损害了性能。但是,您可以聚合数十或数百个节点,并在添加节点时进行容量和速度扩展。

    虽然为您的特定情况找到最佳方法的唯一方法是测试具有代表性工作负载的各种方法,但我建议首先保持简单并尝试使用 NFS 共享。

    • 3

相关问题

  • 我如何知道 AIX 中磁盘上的文件系统是什么?

  • 控制 UNIX 目录内容用户组所有权

  • 在 Ubuntu 上将 Windows 磁盘分区与 Linux 分区合并

  • 在 VMPlayer 上 Windows 和 Linux 之间共享目录的最佳方式

  • md5sum 重复为同一台机器上的同一文件提供不同的校验和

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve