您好,登錄后才能下訂單哦!
這篇文章主要介紹了Ceph中怎么知道一個Object的存放位置,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
ceph中,數據會被平均拆分為4MB(默認值)的Object,然后通過Pool ---(crush)----> PG -----> OSD的流程,最后存放到OSD中。
那么怎么才能獲取一個Object的存放位置?
要存放一個Object到ceph集群中,需要知道:
Object的名字name
指定要存放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的二進制文件
# 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
使用如下rados rm命令,從pool中刪除該名字的object即可。
# rados rm test-object-1 --pool=testpool
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Ceph中怎么知道一個Object的存放位置”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。