1. 设置osd pool min_size
首先通过rados命令查看pool如下:
#rados lspools
data
metadata
rbd
默认的osd的min_size数量配置为2,这里以一个osd为例需要将其设置为1
ceph osd pool get {pool-name} {key}
ceph osd pool set {pool-name} {key} {value}
#ceph osd pool set data min_size 1
2. 测试上传一个对象
准备一个test.txt文件然后利用rados上传
rados put {object-name} {file-path} --pool=data
#rados put test.txt test.txt --pool=data
#rados put test.txt test.txt --pool=data
查看上传的结果
#rados -p data ls (这里会列举pool中的对象名称)
查看对象的位置
ceph osd map {pool-name} {object-name}
ceph osd map data test.txt
ceph osd map data test.txt
根据映射关系,我们可以到osd查看内容的存储结构
#cd /srv/ceph/osd0
在这里可以看到相关的配置文件,其中current存储数据对象内容的地方,进入里面可以看到一堆head文件和omap(元数据利用leveldb存储)。
根据映射关系,文件test.txt存储的对象应该位于以0.8开头0.8_head的目录中,可以看到有文件test.txt__head_8B0B6108__0即是我们刚存储的对象。
利用rados命令还可以做benchmark、恢复对象、删除对象等操作,这里就不再一一列举了。
3. 扩展集群添加新的osd到集群中
为当前节点增加一个Ceph OSD进程。
#sudo mkdir -p /srv/ceph/osd1
回到集群的工作目录下
#cd /root/ceph-cluster
#
ceph-deploy osd prepare apusapp:/srv/ceph/osd1
#ceph-deploy osd activate apusapp:/srv/ceph/osd1
利用命令
#ceph -w
可以看到集群内部在做数据迁移
进入osd1的current目录下可以看到刚刚上传对象0.8开头有0.8_TEMP和0.8_head,osd0中的对象内容也复制了过来。