概述
1 首先建立一个测试文件。
#echo "Hello Ceph, You are Awesome like MJ" > /tmp/helloceph #ceph osd pool create HPC_Pool 128 128 |
2 将生成的测试文件存入该池中并确认文件在池中:
#rados -p HPC_Pool put object1 /tmp/helloceph #rados -p HPC_Pool ls object1 |
3 在ceph中,数据都是以对象的形式存储的,这些对象属于一个PG,这些PG又对应多个OSD。现在我们来直观地感受一下这个概念:
# ceph osd map HPC_Pool object1 osdmap e221395 pool 'HPC_Pool' (14) object 'object1' -> pg 14.bac5debc (14.3c) -> up ([6,4,7], p6) acting ([6,4,7], p6) |
我们来探讨一下这个命令的输出。
osdmap e221395: 这个是OSD map的版本号。
pool 'HPC_Pool' (14) : 这是池名字和ID
object 'object1': 这个是对象名称。
pg 14.bac5debc (14.3c):这是PG编号,这表示对象oject1属于PG 14.3c。
up ([6,4,7] :这是osd的up集合,这里包含osd.6、osd.4、osd.7。由于副本级是3,因此每一个PG将会存放到三个OSD上。这同时表明存放PG 14.3c的三个OSD的状态都是up。这是每一个特定crush map规则集中的一个特点osd map版本的所有相关osd的有序列表。正常情况下,这个和acting集合是一样的。
acting ([6,4,7]:这表明osd.6、osd.4、osd.7都在集合中,其中osd.6是主osd, osd.4是第二个、osd.7是第三个。acting集合是负责一个特定osd map的osd有序列表
4 检查这些osd的物理位置。你会发现osd.6、osd.4、osd.7彼此是物理隔开的,他们分别在三个节点上。
最后
以上就是仁爱小白菜为你收集整理的ceph中对象和osd的匹配的全部内容,希望文章能够帮你解决ceph中对象和osd的匹配所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复