Ceph集群使用---常用命令

Ceph集群使用—常用命令

背景知识

ceph中的pool、PG、OSD的关系

Pool每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,它规定了数据冗余的类型和对应的副本分布策略;支持两种类型:副本(replicated)和 纠删码( Erasure Code)
PG( placement group)是一个放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略;简单点说就是相同PG内的对象都会放到相同的硬盘上; PG是 ceph的核心概念, 服务端数据均衡和恢复的最小粒度就是PG;
OSD是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程;
关系如下:

  • 一个Pool里有很多PG
  • 一个PG里包含一堆对象;一个对象只能属于一个PG
  • PG有主从之分,一个PG分布在不同的OSD上(针对三副本类型)

下图来区别:

Ceph架构

其架构如下;

常用命令

sudo ceph health  查看健康状况
sudo ceph -s  查看集群状况
sudo ceph osd tree  查看OSD信息
pool
1
sudo ceph osd pool create lhbpool 128 128

创建名为lhbpool的pool,这个pool中的pg,pgp都为128;

1
sudo ceph osd pool get lhbpool pg_num

获取pg_num,或pgp_num的大小;

1
sudo ceph osd pool rename rlhbpool lhbpool

重命名pool

1
ceph osd pool set-quota test-pool max_objects 100

设置允许最大object数量为100
取消配额限制只需要把对应值设为0即可。

1
ceph osd pool set-quota test-pool max_bytes $((10 * 1024 * 1024 * 1024))

设置允许容量限制为10GB
取消配额限制只需要把对应值设为0即可。

1
sudo ceph osd lspools

打印pool列表

1
ceph osd pool delete test-pool test-pool  --yes-i-really-really-mean-it

删除pool,删除一个pool会同时清空pool的所有数据,因此非常危险。(和rm -rf /类似)。因此删除pool时ceph要求必须输入两次pool名称,同时加上–yes-i-really-really-mean-it选项。

1
sudo rados df

查看pool状态信息

1
ceph osd pool set/get {pool-name} {key} {value}

通过上述语法设置获取pool的元数据

1
ceph osd pool set test-pool size 3

设置pool的冗余副本数量为3

Crush MAP 相关
  • 获取现有集群的crush map
1
sudo ceph osd getcrushmap -o crush.map

为二进制文件,需要反编译;反编译命令为:crushtool -d crush.map -o crushmap-decompile

  • 运用新的crush map
    当你修改了crush map后需要编译,如下命令:
1
crushtool -c crushmap-decompile -o crush.map

接着设置到集群中,用如下命令:

1
sudo ceph osd setcrushmap -i crush.map
Ceph 管理接口 (radosgw-admin)
  • 列出所有用户
1
radosgw-admin metadata list user

还可以列出桶:radosgw-admin metadata list bucket

  • 创建用户
1
sudo radosgw-admin user create --uid="lhb" --display-name="First User"

sudo radosgw-admin user create

  • 显示用户信息,以及可能存在的子用户和密钥
1
sudo radosgw-admin user info --uid=testuser

sudo radosgw-admin user info

  • 显示配额子系统统计的用户状态
1
sudo radosgw-admin user stats --uid=testuser

sudo radosgw-admin user stats

  • 其他功能
1
2
3
4
5
6
7
user rm  删除用户
user suspend 暂停某用户
user enable 重新允许暂停的用户
user check 检查用户信息
bucket list 罗列所有桶
bucket rm 删除一个桶
……

ref: http://docs.ceph.org.cn/man/8/radosgw-admin/

总结

摘自某处的一个图,是相关命令的总结,如下:

另外还有一个知识树: