zhuqibs
作者zhuqibs·2020-04-06 19:21
软件开发工程师·Adidas

Ceph访问命令大全

字数 2722阅读 1661评论 0赞 6

当新的节点加入集群,ceph集群开始将部分现有的数据重新平衡到新加入的OSD上,用下面的命令可用观察平衡过程

watch ceph -s

检查集群的存储容量

rados df

能看到pool

查看OSD tree,查看新加入的OSD
ceph osd tree

注意:在生产环境中,一般不会再新节点加入ceph集群后,立即开始数据回填,这样会影响集群性能。所以我们需要设置一些标志位,来完成这个目的

ceph osd set noin

ceph osd set nobackfill

在用户访问的非高峰时,取消这些标志位,集群开始在平衡任务

ceph osd unset noin

ceph osd unset nobackfill

创建一个1024MB大小的块设备
rbd create rbd1 --size 1024 -p cephfs_data

列出创建的块image

rbd ls -p cephfs_data

检查块image的细节

rbd --image rbd1 info -p cephfs_data

映射块设备到client
[root@ceph ceph]# rbd feature disable rbd1 -p compute exclusive-lock object-map fast-diff deep-flatten
[root@ceph ceph]# rbd map --image rbd1 -p compute
/dev/rbd0

检查被映射的设备
[root@ceph ceph]# rbd showmapped
id pool image snap device
0 compute rbd1 - /dev/rbd0

使用这个块设备
[root@ceph ceph]# fdisk -l /dev/rbd0

Disk /dev/rbd0: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4194304 bytes / 4194304 bytes

[root@ceph ceph]# mkfs.xfs /dev/rbd0
meta-data=/dev/rbd0 isize=512 agcount=9, agsize=31744 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

[root@ceph ceph]# mkdir /mnt/ceph-disk1
[root@ceph ceph]# mount /dev/rbd0 /mnt/ceph-disk1
[root@ceph ceph]# df -h /mnt/ceph-disk1
Filesystem Size Used Avail Use% Mounted on
/dev/rbd0 1014M 33M 982M 4% /mnt/ceph-disk1

附录

打印pool列表
ceph osd lspools
创建pool
通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
若少于5个OSD, 设置pg_num为128。
5~10个OSD,设置pg_num为512。
10~50个OSD,设置pg_num为4096。
超过50个OSD,可以参考pgcalc计算。
本文的测试环境只有2个OSD,因此设置pg_num为128。
osd pool default pg num = 128
osd pool default pgp num = 128
创建pool语法:
ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \
[crush-ruleset-name] [expected-num-objects]
ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure \
[erasure-code-profile] [crush-ruleset-name] [expected_num_objects]
创建一个test-pool,pg_num为128:
ceph osd pool create test-pool 128
设置pool配额
支持object个数配额以及容量大小配额。
设置允许最大object数量为100:
ceph osd pool set-quota test-pool max_objects 100
设置允许容量限制为10GB:
ceph osd pool set-quota test-pool max_bytes $((10 1024 1024 * 1024))
取消配额限制只需要把对应值设为0即可。
重命名pool
ceph osd poolrename test-pool test-pool-new
删除pool
删除一个pool会同时清空pool的所有数据,因此非常危险。(和rm -rf /类似)。因此删除pool时ceph要求必须输入两次pool名称,同时加上--yes-i-really-really-mean-it选项。
ceph osd pool delete test-pool test-pool --yes-i-really-really-mean-it
查看pool状态信息
rados df

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

6

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广