ceph常用命令
1、查看ceph集群配置信息
ceph daemon /var/run/ceph/ceph-mon.$(hostname -s).asok config show
2、在部署节点修改了ceph.conf文件,将新配置推送至全部的ceph节点
ceph-deploy --overwrite-conf config push dlp node1 node2 node3
3、检查仲裁状态,查看mon添加是否成功
ceph quorum_status --format json-pretty
4、列式pool列表
ceph osd lspools
5、列示pool详细信息
ceph osd dump |grep pool
6、检查pool的副本数
ceph osd dump|grep -i size
7、创建pool
ceph osd pool create pooltest 128
8、删除pool
ceph osd pool delete data
ceph osd pool delete data data --yes-i-really-really-mean-it
9、设置pool副本数
ceph osd pool get data size
ceph osd pool set data size 3
10、设置pool配额
ceph osd pool set-quota data max_objects 100 #最大100个对象
ceph osd pool set-quota data max_bytes $((10 * 1024 * 1024 * 1024)) #容量大小最大为10G
11、重命名pool
ceph osd pool rename data date
12、PG, Placement Groups。CRUSH先将数据分解成一组对象,然后根据对象名称、复制级别和系统中的PG数等信息执行散列操作,再将结果生成PG ID。可以将PG看做一个逻辑容器,这个容器包含多个对 象,同时这个逻辑对象映射之多个OSD上。如果没有PG,在成千上万个OSD上管理和跟踪数百万计的对象的复制和传播是相当困难的。没有PG这一层,管理海量的对象所消耗的计算资源也是不可想象的。建议每个OSD上配置50~100个PG。
PGP是为了实现定位而设置的PG,它的值应该和PG的总数(即pg_num)保持一致。对于Ceph的一个pool而言,如果增加pg_num,还应该调整pgp_num为同样的值,这样集群才可以开始再平衡。
参数pg_num定义了PG的数量,PG映射至OSD。当任意pool的PG数增加时,PG依然保持和源OSD的映射。直至目前,Ceph还未开始再平衡。此时,增加pgp_num的值,PG才开始从源OSD迁移至其他的OSD,正式开始再平衡。PGP,Placement Groups of Placement。
计算PG数:
ceph集群中的PG总数
PG总数 = (OSD总数 * 100) / 最大副本数 ** 结果必须舍入到最接近的2的N次方幂的值
ceph集群中每个pool中的PG总数
存储池PG总数 = (OSD总数 * 100 / 最大副本数) / 池数
获取现有的PG数和PGP数值
ceph osd pool get data pg_num
ceph osd pool get data pgp_num
13、修改存储池的PG和PGP
ceph osd pool set data pg_num = 1
ceph osd pool set data pgp_num = 1
14.查看所有osd和状态
ceph osd tree
systemctl status ceph-osd@3
ceph -s
挂载命令
mount /dve/sdb1 var/lib/ceph/osd/ceph-3
一、添加osd:
当前ceph集群中有如下osd,现在准备新添加osd:
(1)选择一个osd节点,添加好新的硬盘:
(2)显示osd节点中的硬盘,并重置新的osd硬盘:
列出节点磁盘:ceph-deploy disk list rab1
擦净节点磁盘:ceph-deploy disk zap rab1 /dev/sbd(或者)ceph-deploy disk zap rab1:/dev/vdb1
(3)准备Object Storage Daemon:
ceph-deploy osd prepare rab1:/var/lib/ceph/osd1
(4)激活Object Storage Daemon:
ceph-deploy osd activate rab1:/var/lib/ceph/osd1
二、删除osd:
现在要将 rab1中的 osd.4 删除:
(1)把 OSD 踢出集群
ceph osd out osd.4
(2)在相应的节点,停止ceph-osd服务
systemctl stop ceph-osd@4.service
systemctl disable ceph-osd@4.service
(3)删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了
ceph osd crush remove osd.4
(4)删除 OSD 认证密钥
ceph auth del osd.4
(5)删除osd.4
ceph osd rm osd.4