最下面的蓝色长条可以看成一个个主机,里面的灰色圆柱形可以看成一个个OSD,紫色的cabinet可以也就是一个个机柜, 绿色的row可以看成一排机柜,顶端的root是我们的根节点,没有实际意义,你可以把它看成一个数据中心的意思,也可以看成一个机房的意思,不过只是起到了一个树状结构的根节点的作用。 CRUSH从root下的所有的row中选出一个row。 在刚刚的一个row下面的所有cabinet中,CRUSH选出三个cabinet。 在刚刚的三个cabinet下面的所有OSD中,CRUSH分别选出一个OSD。 这样做的根本意义在于,将数据平均分布在了这个集群里面的所有OSD上,同时,这样选择做到了三个OSD分布在三个不同的cabinet上。
需要全量恢复的操作叫做backfill操作。需要增量恢复的操作叫做recovery操作。
# rados -p testpool put testobject /etc/hosts
# rados -p testpool ls
testobject
# rados mksnap testsnap1 -p testpool
# rados lssnap -p testpool
# rados -p testpool rm testobject
# rados -p testpool ls
# rados -p testpool listsnaps testobject
# rados rollback -p testpool testobject testsnap1
# rados -p testpool ls
testobject
ceph osd map testpool testobject
osdmap e71 pool 'testpool' (6) object 'testobject'-
-> pg 6.98824931 (6.31) -> up ([5,4,6], p5) acting ([5,4,6], p5)
e71是osd map 版本ID 71;对象testobject属于PG 6.31 ; 其数据分别分布在osd.5,osd.4,osd.6 上。
1、ceph osd tree
查看osd【5,4,6】其中一个所在的节点
2、ssh ceph-nodeN
,进入该节点 #osd.5所在的node节点
3、df -h | grep -i ceph-5
找出该osd.5的物理存储位置 ,ceph-5是指osd.5
4、cd /var/lib/ceph/osd/ceph-5/current
进入osd.5所在的物理存储文件夹
5、ls -l |grep -i 6.31
找出和PG(6.31)相关的文件夹
6、cd 6.31_head
进入该PG文件夹
7、ls -l
就可以看到我们存储的testobject数据的详细信息
vdbench是存储性能测试的一个常用工具。
下载vdbench50406.zip
使用方法:
例如8k随机读写
创建vm,将jdk和vdbench的文件夹传至vm
# cat parmfile
hd=default,vdbench=/root/tt,user=root,shell=ssh
sd=sd1,lun=/dev/vdb,openflags=o_direct,threads=1
wd=wd1,sd=sd1,xfersize=8k,readpct=50,seekpct=100
rd=rd1,wd=wd1,iorate=max,elapsed=120,maxdata=5500g,interval=1,warmup=30
# ./vdbench -f parmfile