Ceph中怎么知道一个Object的存放位置

这篇文章主要介绍了Ceph中怎么知道一个Object的存放位置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联是一家专业提供双滦企业网站建设,专注与成都做网站、成都网站制作、H5响应式网站、小程序制作等业务。10年已为双滦众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

ceph中,数据会被平均拆分为4MB(默认值)的Object,然后通过Pool ---(crush)----> PG -----> OSD的流程,最后存放到OSD中。

那么怎么才能获取一个Object的存放位置?

一、存放一个Object

要存放一个Object到ceph集群中,需要知道:

  1. Object的名字name

  2. 指定要存放Object的pool名

查看pools,这儿使用"testpool"这个pool。

# rados lspools
rbd
testpool

新建一个"test.txt"文件,生成名为"test-object-1”的Object,往"testpool"中写入

# echo "test data" > test.txt
# rados put test-object-1 test.txt --pool=testpool

查看该Object

# rados -p testpool ls
rbd_directory
rbd_id.bar
rbd_data.5e3b248a65f6.0000000000000083
rbd_data.5e3b248a65f6.0000000000000080
rbd_data.5e3b248a65f6.00000000000000e0
rbd_data.5e3b248a65f6.0000000000000087
rbd_data.5e3b248a65f6.0000000000000000
rbd_data.5e3b248a65f6.00000000000000ff
rbd_data.5e3b248a65f6.0000000000000084
rbd_data.5e3b248a65f6.00000000000000a0
rbd_data.5e3b248a65f6.0000000000000060
rbd_data.5e3b248a65f6.0000000000000021
rbd_data.5e3b248a65f6.0000000000000004
rbd_data.5e3b248a65f6.0000000000000085
rbd_data.5e3b248a65f6.0000000000000081
rbd_data.5e3b248a65f6.0000000000000020
rbd_data.5e3b248a65f6.0000000000000086
rbd_data.5e3b248a65f6.0000000000000082
test-object-1
rbd_header.5e3b248a65f6

查看该Object在ceph集群中存放的位置。

# ceph osd map testpool test-object-1
osdmap e95 pool 'testpool' (1) object 'test-object-1' -> pg 1.74dc35e2 (1.1e2) -> up ([4,1], p4) acting ([4,1], p4)
上述输出信息表明,在osdmap中 "epoch 95" --> pool number 1 "testpool'" 下,存放了“'test-object-1”的object,存放在PG “1.74dc35e2 (1.1e2)”,其osd是osd.4和osd.1,并且osd.4是Primary osd。

二、查看osdmap

获取osdmap的二进制文件

# sudo ceph osd getmap -o osds.map
got osdmap epoch 95

使用文本方式查看osdmap

# osdmaptool --print osds.map
osdmaptool: osdmap file 'osds.map'
epoch 95
fsid ced59665-9de8-42b7-b2c3-5a19cffe97c7
created 2016-03-25 21:13:13.595390
modified 2016-03-31 12:36:39.588974
flags sortbitwise

pool 0 'rbd' replicated size 2 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 16 flags hashpspool stripe_width 0
pool 1 'testpool' replicated size 2 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 512 pgp_num 512 last_change 95 flags hashpspool stripe_width 0
    removed_snaps [1~3]

max_osd 6
osd.0 up   in  weight 1 up_from 77 up_thru 88 down_at 70 last_clean_interval [54,61) 10.167.225.35:6812/3979 10.167.225.35:6813/3979 10.167.225.35:6814/3979 10.167.225.35:6815/3979 exists,up 5c0194c3-351b-4ce9-9864-083819a3e0cb
osd.1 up   in  weight 1 up_from 74 up_thru 91 down_at 70 last_clean_interval [51,61) 10.167.225.35:6808/3668 10.167.225.35:6809/3668 10.167.225.35:6810/3668 10.167.225.35:6811/3668 exists,up 02327243-d1e4-4ea5-9688-9c5e6f46ec44
osd.2 up   in  weight 1 up_from 68 up_thru 89 down_at 67 last_clean_interval [57,61) 10.167.225.35:6804/3107 10.167.225.35:6805/3107 10.167.225.35:6806/3107 10.167.225.35:6807/3107 exists,up 03a50780-9924-4f66-bf5c-71fa0b37bf2f
osd.3 up   in  weight 1 up_from 63 up_thru 89 down_at 62 last_clean_interval [48,61) 10.167.225.35:6800/2728 10.167.225.35:6801/2728 10.167.225.35:6802/2728 10.167.225.35:6803/2728 exists,up edaf6eda-6683-48bd-adf3-f9c748148036
osd.4 up   in  weight 1 up_from 85 up_thru 90 down_at 80 last_clean_interval [71,84) 10.167.225.63:6804/3048 10.167.225.63:6808/1003048 10.167.225.63:6809/1003048 10.167.225.63:6810/1003048 exists,up f57ba6b1-54e9-4bfc-930f-42adbdd036fb
osd.5 up   in  weight 1 up_from 85 up_thru 91 down_at 80 last_clean_interval [65,84) 10.167.225.63:6800/2559 10.167.225.63:6805/1002559 10.167.225.63:6807/1002559 10.167.225.63:6811/1002559 exists,up 583e265c-11c1-4230-81d6-7c9a58d0f463

三、删除一个Object

使用如下rados rm命令,从pool中删除该名字的object即可。

# rados rm test-object-1 --pool=testpool

感谢你能够认真阅读完这篇文章,希望小编分享的“Ceph中怎么知道一个Object的存放位置”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!

网页题目:Ceph中怎么知道一个Object的存放位置
URL分享:https://www.cdcxhl.com/article36/igscpg.html

成都网站建设公司_创新互联,为您提供网站收录动态网站移动网站建设定制网站企业建站品牌网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化