ceph资源池pool管理

发布时间:2024年01月19日

之前我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?

  • 首先我们需要在 Ceph 中定义一个 Pool 资源池。

  • Pool 是 Ceph 中存储 Object 对象抽象概念。

  • 我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同时 Pool 可以设置副本 size 大小,默认副本数量为 3。

一个pool资源池应该包含多少PG数?

OSD总数官方推荐PG数
小于5个128
5-10个512
10-50个4096
大于50个参考公式(TargetPGsPerOSD,OSDNumber,DataPercent)/PoolReplicatesize

TargetPGsPerOSD:? ?每个OSD对应的PG数

OSDNumber:当前OSD总数

DataPercent:当前Pool预计会占用的Ceph集群总空间百分比

PoolReplicatesize:当前pool的副本数

例如:100 * 60 * 50% / 3 = 1000 —> 取最接近2的次方值1024

ceph操作

1.创建存储池

ceph osd pool create <存储池名> <PG数>  [PGP数] 
例如:cd /etc/ceph
ceph osd pool create mypool 64 

2.查看存储池

ceph osd pool ls ? ? ?
或 ? ? 
ceph osd lspools ? ? ? ? ? ? ? ? ? 查看对应的id号 
ceph osd pool get mypool size ? ?  查看存储池mypool里的副本数
ceph osd pool get mypool pg_num ?  查看存储池mypool里的pg数
ceph osd pool get mypool pgp_num ? 查看存储池mypool里的pgp数

3.设置副本数/PG数/PGP数

ceph osd poll set ? ? ? <存储池名> ? <副本数>/<PG数>/<PGP数> ? ? ? 
例:
修改副本: ceph osd pool set mypool size 2 ? ?
修改PG数:ceph osd pool set mypool pg_num 128
修改PGP数:ceph osd pool set mypool pgp_num 128
?
#修改默认副本数为 2
vim ceph.conf
......
osd_pool_default_size = 2
ceph-deploy --overwrite-conf config push node01 node02 node03

4.删除pool资源池

ceph osd pool rm <存储池名> <存储池名> --yes-i-really-really-mean-it ? 
注:需要先修改ceph配置/etc/ceph/ceph.conf,添加
[mon]
mon allow pool delete = true
?
推送 ceph.conf 配置文件给所有 mon 节点
ceph-deploy --overwrite-conf config push node01 node02 node03
?
所有 mon 节点重启 ceph-mon 服务
systemctl restart ceph-mon.target
?
执行删除 Pool 命令
ceph osd pool rm mypool mypool --yes-i-really-really-mean-it

CephFS操作

服务端操作:

1、在管理节点创建 mds 服务

ceph-doploy mds crcatc <节点> …… ? ? ?  创建MDS
?
cd /etc/ceph
ceph-deploy mds create node01 node02 node03

2.查看各个节点的 mds 服务

ssh root@node01 systemctl status ceph-mds@node01
ssh root@node02 systemctl status ceph-mds@node02
ssh root@node03 systemctl status ceph-mds@node03

3.创建元数据存储池

  • 启用 ceph 文件系统

  • ceph 文件系统至少需要两个 rados 池,一个用于存储数据,一个用于存储元数据。此时数据池就类似于文件系统的共享目录。

ceph osd pool create <元数据存储池名> <PG数> ? ? ? ? ? 
?
例如:ceph osd pool create cephfs_metadata 128

4.创建数据存储池

ceph osd pool create <数据存储池> <PG数> ? ? ? ? ? ? ? ? ? ?
?
例如:ceph osd pool create cephfs_data 128

5.创建CephFS

ceph fs new <CephFS名称> <元数据存储池名><数据存储池>
?
ceph fs new mycephfs cephfs_metadata cephfs_data        
#启用ceph,元数据Pool在前,数据Pool在后
?
ceph fs ls                  #查看cephfs

6.给挂载用户授权

ceph fs authorize <CephFS名称>client.<用户名><文件系统路径><rw或r>

客户端操作:

mount -t ceph <节点1名称>:6789,<节点2名称>:6789,……:<文件系统路径> <本地挂载点目录> -o name=<用户名>,secret=<密匙>或secretfile=<密匙文件>



ceph-fuse -m <节点1名称>:6789,<节点2名称>:6789,……:<本地挂载点目录> [-o nomepty(如果挂载的是空目录要加这个选项)]

RBD操作:

1.先创建存储池

ceph osd pool create <存储池名> <PG数> 

2.转换为RBD模式

ceph osd pool  application enable <存储池名> rbd

3.初始化存储池

rbd pool init -p <存储池名>

4.指定存储池创建镜像

rbd create -p <存储名> --image <镜像名> --size <镜像大小>
?
可简写为:
rbd create <存储池名>/<镜像名> --size <镜像大小>

5.查看存储池下存在哪些镜像

rbd ls -l -p <存储池名>

6.查看镜像详细信息

rbd info<存储池名>/<镜像名>

7.修改镜像大小

rod resize<存储池名>/<镜像名> --size <镜像大小> [--allow-shrink(缩小镜像大小)]

8.删除镜像

#直接删除镜像
rbd rm -p 存储池名 --image 镜像名
rbd remove <存储池名>/<镜像名>
?
#推荐使用 trash 命令,这个命令删除是将镜像移动至回收站,如果想找回还可以恢复
rbd trash <存储池名>/<镜像名>
rbd ls -l -p 存储池名
rbd trash list -p 存储池名
5fc98fe1f304 镜像名#找出对应的镜像
?
#还原镜像
rbd trash restore rbd-demo/5fc98fe1f304
rbd ls -l -p rbd-demo

文章来源:https://blog.csdn.net/HanYuHao11/article/details/135687353
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。