CephFS - cephfs

Ceph 是一个开源存储平台,它将数据存储在基于 RADOS 的存储集群中。它具有高度可扩展性,并且作为一个没有单点故障的分布式系统,非常可靠。

Ceph 为块存储和文件系统提供不同的组件。

CephFS 是 Ceph 的文件系统组件,它提供了一个健壮的、功能齐全的、符合 POSIX 标准的分布式文件系统。在内部,它将文件映射到 Ceph 对象,并将文件元数据(例如文件所有权、目录路径、访问权限)存储在单独的数据池中。

术语

Ceph 使用术语 *对象* 来指代它存储的数据。负责存储和管理数据的守护进程是 *Ceph OSD*。Ceph 的存储分为 *池*,它们是用于存储对象的逻辑分区。它们也被称为 *数据池*、*存储池* 或 *OSD 池*。

*CephFS 文件系统* 由两个 OSD 存储池组成,一个用于实际数据,一个用于文件元数据。

cephfs 驱动程序在 Incus 中

注意

cephfs 驱动程序只能用于具有内容类型 filesystem 的自定义存储卷。

对于其他存储卷,请使用 Ceph 驱动程序。该驱动程序也可以用于具有内容类型 filesystem 的自定义存储卷,但它通过 Ceph RBD 镜像实现它们。

与其他存储驱动程序不同,此驱动程序不会设置存储系统,而是假设您已经安装了 Ceph 集群。

您可以预先创建要使用的 CephFS 文件系统,并通过 source 选项指定它,也可以指定 cephfs.create_missing 选项来自动创建文件系统和数据和元数据 OSD 池(使用 cephfs.data_poolcephfs.meta_pool 中给出的名称)。

此驱动程序的行为也与其他驱动程序不同,因为它提供了远程存储。因此,根据内部网络,存储访问速度可能比本地存储慢一些。另一方面,使用远程存储在集群设置中具有很大的优势,因为所有集群成员都可以访问具有完全相同内容的相同存储池,而无需同步存储池。

Incus 假设它对 OSD 存储池拥有完全控制权。因此,您不应该在 Incus OSD 存储池中维护任何不属于 Incus 的文件系统实体,因为 Incus 可能会删除它们。

如果服务器端启用了快照,则 Incus 中的 cephfs 驱动程序支持快照。

配置选项

以下配置选项可用于使用 cephfs 驱动程序的存储池以及这些池中的存储卷。

存储池配置

类型

默认值

描述

cephfs.cluster_name

字符串

ceph

包含 CephFS 文件系统的 Ceph 集群的名称

cephfs.create_missing

布尔

false

创建文件系统和丢失的数据和元数据 OSD 池

cephfs.data_pool

字符串

-

要为文件系统创建的数据 OSD 池名称

cephfs.fscache

布尔

false

启用内核 fscachecachefilesd 的使用

cephfs.meta_pool

字符串

-

要为文件系统创建的元数据 OSD 池名称

cephfs.osd_pg_num

字符串

-

创建丢失的 OSD 池时要使用的 OSD 池 pg_num

cephfs.path

字符串

/

CephFS 挂载的基本路径

cephfs.user.name

字符串

admin

要使用的 Ceph 用户

source

字符串

-

要使用的现有 CephFS 文件系统或文件系统路径

volatile.pool.pristine

字符串

true

CephFS 文件系统在创建时是否为空

提示

除了这些配置之外,您还可以为存储卷配置设置默认值。请参见 配置存储卷的默认值.

存储卷配置

类型

条件

默认值

描述

security.shared

布尔

自定义块卷

volume.security.shared 相同或 false

启用跨多个实例共享卷

security.shifted

布尔

自定义卷

volume.security.shifted 相同或 false

启用 ID 偏移覆盖(允许多个隔离实例附加)

security.unmapped

布尔

自定义卷

volume.security.unmapped 相同或 false

禁用卷的 ID 映射

size

字符串

合适的驱动程序

volume.size 相同

存储卷的大小/配额

snapshots.expiry

字符串

自定义卷

volume.snapshots.expiry 相同

控制何时删除快照(需要类似于 1M 2H 3d 4w 5m 6y 的表达式)

snapshots.pattern

字符串

自定义卷

volume.snapshots.pattern 相同或 snap%d

表示快照名称的 Pongo2 模板字符串(用于计划快照和未命名快照)[1]

snapshots.schedule

字符串

自定义卷

volume.snapshots.schedule 相同

Cron 表达式 (<minute> <hour> <dom> <month> <dow>),逗号分隔的计划别名列表 (@hourly@daily@midnight@weekly@monthly@annually@yearly),或为空以禁用自动快照(默认值)