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>

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

相关推荐
一名路过的小码农7 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
墨水\\4 天前
分布式----Ceph应用(下)
分布式·ceph
大G哥4 天前
基于K8S1.28.2实验rook部署ceph
java·ceph·云原生·容器·kubernetes
石兴稳5 天前
Ceph PG(归置组)的状态说明
ceph
石兴稳6 天前
Ceph层次架构分析
ceph
活老鬼6 天前
Ceph分布式存储
linux·运维·服务器·分布式·ceph
石兴稳7 天前
Ceph client 写入osd 数据的两种方式librbd 和kernel rbd
linux·ceph
石兴稳7 天前
Ceph的pool有两种类型
ceph
运维小文7 天前
ceph的集群管理
ceph·对象存储·存储·ceph集群管理·ceph节点管理
石兴稳8 天前
iSCSI 和SCSI的概述
ceph