Ceph 14.2.1及以后的版本没有默认的存储池,需自行创建存储池,然后再在存储池中创建块设备。本章节主要介绍如何创建存储池。
- 创建存储池,存储池的名字可自行命名,此处以vdbench为例进行说明。
| ceph osd pool create vdbench 32 32
|

- 命令中的vdbench是存储池名字。
- 创建存储池命令最后的两个数字,比如ceph osd pool create vdbench 32 32中的两个32分别代表存储池的pg和pgp的数量。
- Ceph官方文档建议整个集群所有存储池的pg数量之和大约为:(OSD数量 * 100)/数据冗余因数。数据冗余因数对副本模式而言是副本数,对EC模式而言是数据块+校验块之和。例如,三副本模式的数据冗余因数是3,EC4+2模式的数据冗余因数是6。
- 举个例子,假设整个集群3台服务器,每台服务器12个OSD,总共36个OSD,三副本模式的数据冗余因数是3,按照上述公式计算应为1200,一般建议pg数取2的整数次幂,可将vdbench存储池的pg数量设置为1024。
- 示例一:如何修改存储池的副本数(以将存储池副本数调整为2为例)。
- 获取存储池"vdbench"的副本数设置数量。
| ceph osd pool get vdbench size
|
- 修改存储池"vdbench"的副本数设置数量。
| ceph osd pool set vdbench size 2
|
- 再次查看存储池"vdbench"的副本数设置数量,显示为2。
| ceph osd pool get vdbench size
size: 2
|
- 示例二:如何查看本地纠删配置。
- 查看本地纠删配置文件列表。如果没有手动在集群上创建额外的配置文件,默认使用default配置,且默认在使用ceph osd pool create命令使用default配置。
| ceph osd erasure-code-profile ls
|
返回信息如下:

- 查看"default"的配置内容,显示k=2,m=2,即表示数据块k为2,校验块m=2。
| ceph osd erasure-code-profile get default
|

- 需要新建纠删配置并应用再存储池上的用户,具体可以参考《Ceph对象存储 部署指南》中的“创建EC存储池”相关内容。
- 更多关于pool的命令操作,可以查阅Ceph开源社区中关于pool命令的说明。
- 创建存储池后,需指定池类型(cephFS、rbd、rgw),此处以创建块存储为例进行说明。
| ceph osd pool application enable vdbench rbd
|

- 命令中vdbench是存储池名字,rbd是指存储池类型。
- 命令后加上--yes-i-really-mean-it可对存储池类型进行修改。
- 可选:(可选)存储池使能zlib压缩。
| ceph osd pool set vdbench compression_algorithm zlib
ceph osd pool set vdbench compression_mode force
ceph osd pool set vdbench compression_required_ratio .99
|

- 上述命令执行成功后,查看存储池是否创建成功。
返回信息如下所示代表存储池创建成功。
1
2
3
4
5
6
7
8
9
10
11
12
13 | cluster:
id: 0207ddea-2150-4509-860d-365e87420b3e
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 25h)
mgr: ceph3(active, since 2d), standbys: ceph2, ceph1
osd: 1 osds: 1 up (since 25h), 1 in (since 9d)
data:
pools: 1 pools, 32 pgs
usage:46MiB used, 2.2 TiB / 2.2 TiB avail
pgs: 32 active+clean
|