4.8. 使用文件和目录


作为存储管理员,您可以控制文件或目录数据如何映射到对象。

本节描述了如何:

4.8.1. 先决条件

  • 安装 attr 软件包。

4.8.2. 文件和目录布局概述

本节介绍 Ceph 文件系统上下文中的文件和目录布局。

文件或目录的布局控制其内容如何映射到 Ceph RADOS 对象。目录布局主要用于为该目录中的新文件设置继承布局。

要查看和设置文件或目录布局,请使用虚拟扩展属性或扩展文件属性 (xattrs)。布局属性的名称取决于文件是常规文件还是目录:

  • 常规文件布局属性称为 ceph.file.layout
  • 目录布局属性称为 ceph.dir.layout

File and Directory Layout 字段 列出了您可以在文件和目录上设置的可用布局字段。

布局继承

在创建文件时,文件会继承其父目录的布局。但是,随后对父目录布局的更改不会影响子级。如果目录没有设置任何布局,文件将使用目录结构中的布局从最接近的目录继承布局。

其它资源

4.8.3. 设置文件和目录布局字段

使用 setfattr 命令设置文件或目录上的布局字段。

重要

当您修改文件的布局字段时,该文件必须为空,否则会出现错误。

先决条件

  • 节点的根级别访问权限。

流程

  1. 修改文件或目录中的布局字段:

    语法

    setfattr -n ceph.TYPE.layout.FIELD -v VALUE PATH

    替换:

    • TYPEfiledir
    • FIELD,字段的名称。
    • VALUE,字段的新值 。
    • 带有到文件或目录路径的 PATH

    示例

    [root@fs ~]# setfattr -n ceph.file.layout.stripe_unit -v 1048576 test

其它资源

  • 如需了解更多详细信息,请参见 Red Hat Ceph Storage文件和目录布局概述部分中的表格。
  • 请参阅 setfattr(1) 手册页。

4.8.4. 查看文件和目录布局字段

要使用 getfattr 命令查看文件或目录的布局字段:

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 对存储集群中所有节点的根级别访问权限。

流程

  1. 以单一字符串形式查看文件或目录中的布局字段:

    语法

    getfattr -n ceph.TYPE.layout PATH

    替换
    • 带有到文件或目录路径的 PATH
    • TYPEfiledir

    示例

    [root@mon ~] getfattr -n ceph.dir.layout /home/test
    ceph.dir.layout="stripe_unit=4194304 stripe_count=2 object_size=4194304 pool=cephfs_data"

注意

在设置目录之前,该目录不具有明确的布局。因此,尝试在没有首先设置的情况下查看布局会失败,因为没有更改。

其它资源

4.8.5. 查看单个布局字段

使用 getfattr 命令查看文件或目录的个别布局字段。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 对存储集群中所有节点的根级别访问权限。

流程

  1. 查看文件或目录中的单个布局字段:

    语法

    getfattr -n ceph.TYPE.layout.FIELD _PATH

    替换
    • TYPEfiledir
    • FIELD,字段的名称。
    • 带有到文件或目录路径的 PATH

    示例

    [root@mon ~] getfattr -n ceph.file.layout.pool test
    ceph.file.layout.pool="cephfs_data"

    注意

    pool 字段中的池按照名称来指示。不过,新建的池可以通过 ID 来指示。

其它资源

4.8.6. 删除目录布局

使用 setfattr 命令从目录中移除布局。

注意

设置文件布局时,您无法更改或删除该文件。

先决条件

  • 具有布局的目录。

流程

  1. 从目录中删除布局:

    语法

    setfattr -x ceph.dir.layout DIRECTORY_PATH

    示例

    [user@client ~]$ setfattr -x ceph.dir.layout /home/cephfs

  2. 删除 pool_namespace 字段:

    语法

    setfattr -x ceph.dir.layout.pool_namespace DIRECTORY_PATH

    示例

    [user@client ~]$ setfattr -x ceph.dir.layout.pool_namespace /home/cephfs

    注意

    pool_namespace 字段是唯一可以单独删除的字段。

其它资源

  • setfattr(1) 手册页
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部