注意
本文档适用于 Ceph 开发版本。
创建一个Ceph文件系统
创建存储池
一个Ceph文件系统至少需要两个RADOS存储池,一个用于数据,一个用于元数据。
我们建议配置至少元数据存储池使用3个副本,
我们建议为元数据存储池使用最快的可行低延迟存储设备(NVMe、Optane,
我们强烈建议将CephFS元数据存储池配置在专用的SSD / NVMe OSD上。这确保了高客户端工作负载不会对元数据操作产生负面影响。参见设备类别以这种方式配置存储池。
用于创建文件系统的数据存储池是“默认”数据存储池,也是存储所有inode回溯信息的地点,这些信息用于硬链接管理和灾难恢复。因此,所有CephFS inode至少在默认数据存储池中有一个对象。如果计划使用纠删码存储池存储文件系统数据,最好将默认存储池配置为复制存储池,以便在更新回溯时提高小对象写入和读取性能。另外,可以添加另一个纠删码数据存储池(另见纠删码),该存储池可用于整个目录和文件层次结构(另见文件布局).
参考Pools了解有关管理存储池的更多信息。 例如,要为文件系统创建两个具有默认设置的存储池,您可能需要运行以下命令:
$ ceph osd pool create cephfs_data
$ ceph osd pool create cephfs_metadata
元数据存储池通常最多只包含几GB的数据。因此,通常建议使用较小的PG计数。在实践中,对于大型集群,64或128通常被使用。
Note
文件系统、元数据存储池和数据存储池的名称只能包含集合[a-zA-Z0-9_-.]中的字符。
创建文件系统
创建存储池后,您可以使用fs new
command:
$ ceph fs new <fs_name> <metadata> <data> [--force] [--allow-dangerous-metadata-overlay] [<fscid:int>] [--recover] [--yes-i-really-really-mean-it] [<set>...]
此命令创建具有指定元数据和数据存储池的新文件系统。指定的数据存储池是默认数据存储池,一旦设置就不能更改。每个文件系统都有分配给排名的MD守护进程集,确保您有足够的备用守护进程来容纳新的文件系统。
Note
--yes-i-really-really-mean-it
可以用于某些fs set
命令
The --force
选项用于实现以下任何一项:
将纠删码存储池设置为默认数据存储池。不建议使用EC存储池作为默认数据存储池。参见创建存储池 for details.
将非空存储池(存储池已经包含一些对象)设置为元数据存储池。
使用特定文件系统ID(fscid)创建文件系统。使用--fscid选项时需要--force选项。
The --allow-dangerous-metadata-overlay
选项允许重用已经使用的元数据和数据存储池。这只有在紧急情况下并且仔细阅读文档后才能执行。
如果未设置--fscid
选项提供创建具有特定fscid的文件系统。这可以在应用程序期望文件系统ID在恢复后保持稳定时使用,例如,在监控数据库丢失并重建后。因此,文件系统ID并不总是随着新的文件系统而不断增加。
The --recover
选项将文件系统排名0的状态设置为现有但失败。因此,当MD守护进程最终接管排名0时,守护进程会读取现有的RADOS元数据,而不会覆盖它。该标志还防止备用MD守护进程加入文件系统。
The set
选项允许在创建文件系统时原子地设置fs set
支持的多个选项。
例如:
$ ceph fs new cephfs cephfs_metadata cephfs_data set max_mds 2 allow_standby_replay true
$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
创建文件系统后,您的MD(s)将能够进入active状态。 例如,在单个MD系统中:
$ ceph mds stat
cephfs-1/1/1 up {0=a=up:active}
创建文件系统后,MD处于活动状态,您就可以挂载文件系统了。如果您创建了多个文件系统,您将在挂载时选择使用哪一个。
如果您创建了多个文件系统,并且在挂载时客户端没有指定文件系统,您可以通过使用ceph fs set-default
command.
添加数据存储池到文件系统
请参阅添加数据存储池到文件系统.
使用纠删码存储池与CephFS
只要它们启用了覆盖,您就可以将纠删码存储池用作CephFS数据存储池,具体操作如下:
ceph osd pool set my_ec_pool allow_ec_overwrites true
注意,EC覆盖仅在使用具有BlueStore后端的OSD时才受支持。
您不能将纠删码存储池用作CephFS元数据存储池,因为CephFS元数据使用RADOSOMAP数据结构存储,而EC存储池无法存储。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.