文章目录
- 前言:
- [1.1 文件系统相关操作](#1.1 文件系统相关操作)
- [1.2 设置相关操作](#1.2 设置相关操作)
- [1.3 最大文件大小与性能](#1.3 最大文件大小与性能)
- [1.4 关闭CephFS集群](#1.4 关闭CephFS集群)
- [1.5 快速关闭群集以进行删除或灾难恢复](#1.5 快速关闭群集以进行删除或灾难恢复)
- [1.6 MDS守护程序操作](#1.6 MDS守护程序操作)
- [1.7 设置最低客户端版本](#1.7 设置最低客户端版本)
- [1.8 全局设置](#1.8 全局设置)
- [1.9 高级用法](#1.9 高级用法)
前言:
这些命令专为操作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>
此命令将文件系统状态重置为默认设置(名称和池除外),非零等级保存在停止集中。