ceph的資料管理始於ceph client的寫操作,鑑於ceph使用多副本及強一致性策略來保證資料的安全性和完整性,乙個寫請求的資料會首先被寫入到primary osd上去,然後primary osd會進一步將資料複製到secondary和其它tertiary osd上去並一直等待他們的完成通知,然後再將最終的完成確認傳送給client。這篇文章主要從ceph資料管理這個方面入手,通過具體的例項介紹一下如何在ceph中找到資料的存放位置。
1、我們先建立乙個包含資料的test檔案、乙個ceph pool並且設定pool的副本數為
2、 將檔案寫入到建立的pool中$ echo "hello ceph, i'm learning the data management part." > /tmp/testfile
$ cat /tmp/testfile
hello ceph, i'm learning the data management part.
$ ceph osd pool create helloceph 192
192 pool 'helloceph' created
$ ceph osd pool set helloceph size 3
set pool 3 size to
3
3、 檢視object1的pg map$ rados -p helloceph put object1 /tmp/testfile
$ rados -p helloceph ls
object1
4、 檢視三個osd的資訊,主要是host資訊即osd在哪個機器上$ ceph osd map helloceph object1
osdmap e8 pool 'helloceph' (3) object
'object1' -> pg 3.bac5debc (3.bc) -> up ([0,1,2], p0) acting ([0,1,2], p0)
其中:osdmap e8 osd map的版本號
pool 'helloceph' (3) pool的名字和id
object
'object1'
object的名字
pg 3.bac5debc (3.bc) pg number,即3.bc
up ([0,1,2], p0) osd up set,因為我們設定的是3副本,所以每個pg都會被存放在3個osd上
acting ([0,1,2], p0) acting set,即osd.0(primary)、osd.1(secondary)和osd.2(tertiary)
5、 從osd中找出testfile檔案(這裡以osd.1為例)[root@admin-node osd]# ceph osd tree
id weight type name up/down reweight primary-affinity
-10.05589 root default
-20.02190 host node2
0 0.01700 osd.0 up 1.00000 1.00000
3 0.00490 osd.3 up 1.00000 1.00000
-30.01700 host node3
1 0.01700 osd.1 up 1.00000 1.00000
-40.01700 host node1
2 0.01700 osd.2 up 1.00000 1.00000
$ ssh node1(osd.1所在機器)
$ cd /var/lib/ceph/osd/ceph-0/current
$ cd 3.bc_head
$ cat object1__head_bac5debc__3
hello ceph, i
'm learning the data management part.
同樣,我們也可以在osd.0和osd.2中找到object1.
如何在大量的資料中找出不重複的整數?
在 2.5 億個整數中找出不重複的整數。注意 記憶體不足以容納這 2.5 億個整數。方法一 分治法 與前面的題目方法類似,先將 2.5 億個數劃分到多個小檔案,用 hashset hashmap 找出每個小檔案中不重複的整數,再合併每個子結果,即為最終結果。方法二 位圖法 位圖,就是用乙個或多個 b...
如何在大量的資料中找出不重複的整數?
在 2.5 億個整數中找出不重複的整數。注意 記憶體不足以容納這 2.5 億個整數。方法一 分治法 與前面的題目方法類似,先將 2.5 億個數劃分到多個小檔案,用 hashset hashmap 找出每個小檔案中不重複的整數,再合併每個子結果,即為最終結果。方法二 位圖法 位圖,就是用乙個或多個 b...
如何在大量的資料中找出不重複的整數
在 2.5 億個整數中找出不重複的整數。注意 記憶體不足以容納這 2.5 億個整數。由於這道題目與前面的題目類似,也是無法一次性把所有資料載入到記憶體中,因此也可以採用類似的方法求解。方法一 分治法 採用 hash 函式的方法,把這 2.5 億個整數劃分到更小的檔案中,從而保證每個檔案的大小不超過可...