注意

本文档适用于 Ceph 的开发版本。

mount.ceph -- 挂载一个 Ceph 文件系统

概要

mount.ceph name*@*fsid.*fs_name*=/[子目录] 目录[-o选项 ]

描述

mount.ceph是一个帮助程序,用于在 Linux 主机上挂载 Ceph 文件系统。它用于将监控器主机名转换为 IP 地址并从磁盘读取认证密钥;Linux 内核客户端组件执行大部分实际工作。要挂载 Ceph 文件系统,请使用:

mount.ceph name@07fe3187-00d9-42a3-814b-72a4d5e7d5be.fs_name=/ /mnt/mycephfs -o mon_addr=1.2.3.4

其中“name”是 RADOS 客户端名称(以下简称“RADOS 用户”,表示任何个人或系统参与者,如应用程序)。

挂载辅助程序可以通过读取 ceph 配置文件来填充集群 FSID。建议按照以下方式通过 mount(8) 调用挂载辅助程序:

mount -t ceph name@.fs_name=/ /mnt/mycephfs -o mon_addr=1.2.3.4

注意点.在这种情况下,点

第一个参数是挂载命令的设备部分。它包括用于认证的 RADOS 用户、文件系统名称和 CephFS 内的路径,该路径将在挂载点挂载。

监控器地址可以使用mon_addr挂载选项。多个监控器地址可以通过用斜杠(/)分隔地址来传递。成功挂载需要一个监控器;客户端将从任何响应的监控器中了解所有监控器。但是,如果挂载时该监控器恰好宕机,则指定多个监控器是一个好主意。监控器地址的形式为 ip_address[:port]。如果未指定端口,则假设 Ceph 默认的 6789。

如果未指定监控器地址,则mount.ceph将尝试使用本地配置文件和/或 DNS SRV 记录来确定监控器地址。类似地,如果 Ceph 集群上启用了认证(使用 CephX 完成),并且命令中未指定选项secretsecretfile,则挂载辅助程序将生成一个子进程,该子进程将使用标准的 Ceph 库例程来查找密钥环并从中获取密钥(包括监控器地址和 FSID,如果未指定)。

可以通过指定挂载命令设备部分中“=”之后子目录的(绝对)路径来挂载文件系统的子目录。

挂载辅助程序应用程序约定规定,前两个选项是要挂载的设备和该设备的挂载点。必须仅在固定参数之后传递选项。

选项

基本配置

conf

ceph.conf 文件的路径。这用于初始化 Ceph 上下文以自动发现监控器地址和认证密钥。默认情况下,使用 ceph.conf 文件的标准搜索路径。

mount_timeout

int (秒),默认值:60

ms_mode=<legacy|crc|secure|prefer-crc|prefer-secure>

设置客户端用于传输的连接模式。可用的模式有:

  • legacy: 使用 messenger v1 协议与集群通信

  • crc: 使用 messenger v2,不进行线缆加密

  • secure: 使用 messenger v2,进行线缆加密

  • prefer-crc: crc 模式,如果拒绝则同意 secure 模式

  • prefer-secure: secure 模式,如果拒绝则同意 crc 模式

mon_addr

集群监控器地址,形式为 ip_address[:port]

fsid

集群 FSID。这可以使用ceph fsid command.

secret

用于 CephX 的密钥。此选项不安全,因为它会在命令行中暴露密钥。为了避免这种情况,请使用 secretfile 选项。

secretfile

包含用于 CephX 的密钥的文件路径

recover_session=<no|clean>

在客户端被列入黑名单的情况下设置自动重连模式。可用的模式有noclean。默认值no.

  • no: 当客户端检测到它已被列入黑名单时,永远不会尝试重新连接。列入黑名单的客户端不会尝试重新连接,它们的操作也会失败。

  • clean: 当客户端检测到它已被列入黑名单时,会自动重新连接到 Ceph 集群。在重新连接期间,客户端会丢弃脏数据/元数据,使页面缓存和可写文件句柄失效。重新连接后,文件锁会过期,因为 MDS 会丢失它们的跟踪。如果一个 inode 包含任何过期的文件锁,则直到应用程序释放所有过期的文件锁之前,不允许对该 inode 进行读写操作。

command:

fs=<fs-name>在使用旧语法时指定非默认文件系统以挂载。

command:

mds_namespace=<fs-name>“fs=” 的同义词(已弃用)。

高级配置

cap_release_safety

int,默认值:计算

caps_wanted_delay_max

int,密钥释放延迟,默认值:60

caps_wanted_delay_min

int,密钥释放延迟,默认值:5

dirstat

funkycat dirname用于统计,默认值:关闭

nodirstat

no funkycat dirname用于统计

ip

my ip

noasyncreaddir

无 dcache readdir

nocrc

写入时不进行数据 crc

noshare

创建一个新的客户端实例,而不是共享挂载同一集群的现有客户端实例

osdkeepalive

int,默认值:5

osd_idle_ttl

int (秒),默认值:60

rasize

int (字节),最大预读。默认值:8388608 (8192*1024)

rbytes

为目录内容的递归大小报告 st_size。默认值:关闭

norbytes

不要为目录的 st_size 报告目录内容的递归大小。

readdir_max_bytes

int,默认值:524288 (512*1024)

readdir_max_entries

int,默认值:1024

rsize

int (字节),最大读取大小。默认值:16777216 (16*1024*1024)

snapdirname

string,设置隐藏 snapdir 的名称。默认值:.snap

write_congestion_kb

int (kb),最大写入回放。根据可用内存进行缩放。默认值:根据可用内存计算

wsize

int (字节),最大写入大小。默认值:16777216 (16*1024*1024)(写入回放使用 wsize 和 stripe unit 中较小的一个)

wsync

执行所有命名空间操作同步。这确保了命名空间操作只有在收到 MDS 的回复后才会完成。

nowsync

允许客户端执行命名空间操作异步。当启用此选项时,如果客户端有足够的能力,命名空间操作可能在 MDS 回复之前完成。这自内核版本 5.16 以来一直是默认值。

crush_location=x

指定客户端在 CRUSH 层次结构中的位置(自 5.8 起)。这是一组用“|”分隔的键值对,键与值之间用“:”分隔。请注意,“|”可能需要引号或转义,以避免被 shell 解释为管道。键是桶类型名称(例如 rack、datacenter 或默认桶类型的 region),值是桶名称。例如,要指示客户端位于 rack “myrack”、数据中心 “mydc” 和 region “myregion”:

crush_location=rack:myrack|datacenter:mydc|region:myregion

每个键值对都是独立的:“myrack”不需要位于“mydc”,而“mydc”又不需要位于“myregion”。位置不是层次结构根的路径,而是一组独立匹配的节点。支持“多路径”位置,因此可以指示多个并行层次结构的本地性:

crush_location=rack:myrack1|rack:myrack2|datacenter:mydc
read_from_replica=<no|balance|localize>
  • no: 禁用副本读取,始终选择主 OSD(自 5.8 起,默认)。

  • balance: 当一个复制池接收到读取请求时,从 PG 的作用集中选择一个随机的 OSD 来服务它(自 5.8)。

    此模式仅适用于一般用途,因为 Octopus(即“ceph osd require-osd-release octopus”之后)。否则,应将其限制为只读工作负载,如快照。

  • localize: 当一个复制池接收到读取请求时,选择最本地的 OSD 来服务它(自 5.8)。局部性指标是根据与 crush_location 给出的客户端位置计算的;具有最低值桶类型的匹配将获胜。例如,与匹配 rack 中的 OSD 比较起来,匹配 datacenter 中的 OSD 更近,而匹配 region 中的 OSD 则更远。

    此模式仅适用于一般用途,因为 Octopus(即“ceph osd require-osd-release octopus”之后)。否则,应将其限制为只读工作负载,如快照。

Examples

挂载整个文件系统:

mount -t ceph fs_user@.mycephfs2=/ /mnt/mycephfs

仅挂载命名空间/文件系统的一部分:

mount.ceph fs_user@.mycephfs2=/some/directory/in/cephfs /mnt/mycephfs

传递监控器主机的 IP 地址,可选:

mount.ceph fs_user@.mycephfs2=/ /mnt/mycephfs -o mon_addr=192.168.0.1

如果它在非标准端口上运行,请与 IP 地址一起传递端口:

mount.ceph fs_user@.mycephfs2=/ /mnt/mycephfs -o mon_addr=192.168.0.1:7000

如果有多个监控器,请用/:

mount.ceph fs_user@.mycephfs2=/ /mnt/mycephfs -o mon_addr=192.168.0.1/192.168.0.2/192.168.0.3

可选地传递 CephX 用户的密钥:

mount.ceph fs_user@.mycephfs2=/ /mnt/mycephfs -o secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==

传递包含密钥的文件,以避免在 shell 的命令历史中留下密钥:

mount.ceph fs_user@.mycephfs2=/ /mnt/mycephfs -o secretfile=/etc/ceph/fs_username.secret

如果 Ceph 集群上禁用了认证,请省略与凭证相关的选项:

mount.ceph fs_user@.mycephfs2=/ /mnt/mycephfs

使用旧语法挂载:

mount -t ceph 192.168.0.1:/ /mnt/mycephfs

可用性

mount.ceph是 Ceph 的一部分,Ceph 是一个大规模可扩展、开源的分布式存储系统。请参阅 Ceph 文档。https://docs.ceph.com中的Ceph文档以获取更多信息。

功能可用性

The 9b591a: Ceph 对象存储 9dbb5f: (又名 RGW) 服务提供与 Amazon S3 和 OpenStack Swift 兼容的 RESTful API 接口。recover_session=option 在 v5.4 中的主线 Linux 内核中添加。wsyncnowsync在 v5.7 中添加。

参见

ceph-fuse(8),ceph(8)

由 Ceph 基金会提供

Ceph 文档是一个由非盈利Ceph 基金会资助和托管的社会资源。如果您想支持此项目和其他工作,请考虑现在加入.