CephFS管理秘籍:全面掌握文件系统与MDS守护程序命令

文章目录

前言:

这些命令专为操作Ceph集群中的CephFS文件系统而设计。请注意,默认情况下,系统仅支持一个文件系统的使用。若需启用多文件系统功能,请执行命令 ceph fs flag set enable_multiple true

1.1 文件系统相关操作

创建文件系统

shell 复制代码
ceph fs new <file system name> <metadata pool name> <data pool name>

此命令用于创建新的CephFS文件系统。请明确指定文件系统名称、元数据池名称和数据池名称。数据池一旦设定便无法更改,且每个文件系统均配备独立的MDS守护程序组。因此,请确保您的备用守护程序数量足以支持新文件系统的运行。

列出文件系统

shell 复制代码
ceph fs ls

显示当前存在的所有文件系统。

转储FSMap信息

shell 复制代码
ceph fs dump [epoch]

在指定时期(默认值为当前)导出FSMap,涵盖所有文件系统设置、MDS守护程序及其所管理的等级,以及备用MDS守护程序列表。

销毁文件系统

shell 复制代码
ceph fs rm <file system name> [--yes-i-really-mean-it]

从FSMap中删除CephFS文件系统的相关信息,但元数据池和数据池将保持不变,需单独销毁。

获取文件系统信息

shell 复制代码
ceph fs get <file system name>

获取指定文件系统的详细信息,包括设置和等级,这些信息是 fs dump 命令输出信息的子集。

更改文件系统上的设置

shell 复制代码
ceph fs set <file system name> <var> <val>

这些设置特定于命名文件系统,并且不影响其他文件系统

添加数据池

shell 复制代码
ceph fs add_data_pool <file system name> <pool name/id>

将数据池添加到文件系统,该池可用于文件布局,作为存储文件数据的备用位置。

删除指定的池

  ceph fs rm_data_pool <file system name> <pool name/id>

此命令从文件系统的数据池列表中删除指定的池,如果有任何文件具有已删除数据池的布局,则文件数据将不可用,无法删除默认数据池(在创建文件系统时创建的第一个数据池)

1.2 设置相关操作

配置最大文件大小

shell 复制代码
ceph fs set <fs name> max_file_size <size in bytes>

CephFS支持配置最大文件大小,默认值为1TB。若需存储更大文件,可增大此限制(64位字段)。将 max_file_size 设置为0不会取消限制,而会限制客户端仅能创建空文件。

1.3 最大文件大小与性能

CephFS在追加文件内容或设置文件大小时,会强制执行最大文件大小限制。该限制不影响已存储的内容。创建大文件(即使不写入数据)时,某些操作(如删除)会导致MDS执行大量操作,检查可能存在的RADOS对象。

通过 max_file_size 设置可防止用户创建艾字节大小的文件,导致MDS上的负载,因为它在进行统计或删除之类的操作期间会尝试枚举对象。

1.4 关闭CephFS集群

关闭集群

shell 复制代码
ceph fs set <fs_name> down true

恢复集群

shell 复制代码
ceph fs set <fs_name> down false

关闭CephFS集群时,将恢复 max_mds 的先前值,并以某种方式关闭MDS守护程序,以便将日志刷新到元数据池,并停止所有客户端的I/O操作。

1.5 快速关闭群集以进行删除或灾难恢复

要允许快速删除文件系统(以进行测试)或快速关闭文件系统和MDS守护程序,可以使用fs fail命令,此命令设置文件系统标志,以防止备用文件在文件系统上被激活

ceph fs fail <fs_name>

也可以通过以下操作手动完成此过程

ceph fs set <fs_name> joinable false

然后,操作员可能会使所有ranks失败,这会导致MDS守护进程作为备用程序重生,文件系统将处于降级的状态

ceph mds fail <fs_name>:<n>

一旦所有ranks都不活动,也可以删除文件系统或将其保留在该状态下以用于其他目的(也许是灾难恢复),要恢复集群,只需设置joinable标志

ceph fs set <fs_name> joinable true

守护进程

大多数操作mds的命令都采用参数,该参数可以采用以下三种形式之一

<fs_name>:<rank>
<fs_id>:<rank>
<rank>

1.6 MDS守护程序操作

标记MDS守护程序为失败状态

shell 复制代码
ceph mds fail <gid/name/role>

当MDS守护程序未能按时向mon发送MDS_beacon_grace消息时,相当于集群将执行此操作。若守护程序处于活动状态且有合适的备用服务器可用,则使用 mds fail 将强制故障转移到备用服务器。

向MDS守护程序发送命令

shell 复制代码
ceph tell mds.<daemon name> command ...

向指定MDS守护程序发送命令,使用 mds.* 可向所有守护程序发送命令。使用 ceph tell mds.* 查看帮助文档。

标记文件系统等级为已修复

shell 复制代码
ceph mds repaired <role>

此命令操作已标记为已损坏的文件系统等级,但不会更改MDS。

1.7 设置最低客户端版本

为确保CephFS集群稳定运行,有时需设置能够连接到集群的客户端的最低Ceph版本。较早版本的客户端可能运行存在错误的代码,导致客户端间锁定问题,

CephFS提供了一种设置最低客户端版本的机制。

设置最低客户端版本

shell 复制代码
ceph fs set <fs name> min_compat_client <release>

例如,仅允许Nautilus版本的客户端使用:

shell 复制代码
ceph fs set cephfs min_compat_client nautilus

运行旧版本的客户端将被自动驱逐。

1.8 全局设置

设置全局CephFS标志

shell 复制代码
ceph fs flag set <flag name> <flag val> [<confirmation string>]

设置全局CephFS标志(即不特定于特定文件系统),当前,唯一的标志设置是enable_multiple,它允许具有多个CephFS文件系统。

有些标志要求您使用" --yes-i-really-mean-it"或类似的字符串来提示以确认。

在继续之前,请仔细考虑这些操作,因为他们是一些比较危险的操作。

1.9 高级用法

以下命令在常规操作中并非必需,仅在特殊情况下使用。不当使用可能导致严重问题,如文件系统无法访问。

管理MDS兼容性标志

shell 复制代码
ceph mds compat rm_compat # 删除兼容性功能标志
ceph mds compat rm_incompat # 删除不兼容功能标志
ceph mds compat show # 显示MDS兼容性标志

从失败集合中删除等级

shell 复制代码
ceph mds rmfailed

重置文件系统状态

shell 复制代码
ceph fs reset <file system name>

此命令将文件系统状态重置为默认设置(名称和池除外),非零等级保存在停止集中。

相关推荐
45° 微笑3 天前
k8s集群 ceph rbd 存储动态扩容
ceph·容器·kubernetes·rbd
查士丁尼·绵4 天前
ceph补充介绍
ceph
Hello.Reader6 天前
Ceph 存储系统全解
分布式·ceph
Clarence_Ls8 天前
<十六>Ceph mon 运维
运维·ceph
手持钩笼引天下8 天前
踩坑:关于使用ceph pg repair引发的业务阻塞
运维·ceph
Clarence_Ls9 天前
<十七>Ceph 块存储理论与实践
ceph
知本知至12 天前
ceph rgw使用sts Security Token Service
linux·网络·ceph
一名路过的小码农12 天前
ubantu 编译安装ceph 18.2.4
linux·c++·ceph
大新新大浩浩12 天前
ceph 删除rbd 锁的命令
ceph·1024程序员节