目錄
osd daemon 狀態:預設每2s匯報自己的狀態給monitor (同時監控組內其他osd狀態)
up
:可以提供io
down
:不能提供io
in
:有資料
out
:沒有資料
如在 副本數為 3 的配置中,乙個pg
中 包含 三個osd daemon
,也就是三塊硬碟,其中乙個是master
,剩下兩個是副本
;
pg
和osd daemon
之間的關係,是通過crush
演算法得出的;常規這三個osd daemon
可以在一台機器上,也可以在不同機器上;那麼根據crush
演算法會盡可能的保證乙個平衡,就是不在同乙個機器上;畢竟ceph中的資料是乙個為平衡的狀態,一切都是通過crush
演算法來實現的資料平衡;
而pg
本身是個有序列表,位於第一的位置是master
;這個列表的產生是由monitor
來產生的;
在monitor
節點上會執行乙個叫pg monitor
的程序;
定時檢索整個集群中是否存在新建的儲存池pool
(這個儲存池其實就乙個一堆 pg 的集合
);
當發現新的儲存池
時,會繼續檢查儲存池中的 pg 狀態;
檢查出pg的狀態為新狀態(待建立),該pg會進入乙個creating
的狀態,會把該pg放到建立佇列中
之後monitor
再根據crush
演算法 計算得出 pg 中包含的三個osd daemon
同時算出組長;
此時monitor
會把剛剛計算出來的所有pg
、osd daemon
的資訊直接發給組長;
pg
中的osd daemon
組長收到資訊後,此時組員之間的就知道彼此,這個過程叫做peering
建立連線;
最終生成pg
由以上步驟看出,pg
實際是個邏輯單位,pg
的資訊儲存在crush map
和osd daemon
中。
ceph -s 命令檢視
stable
狀態說明:
hash 校驗,同pg下的osd資料進行hash比較,副本osd會跟主osd比較,有區別就會同步主osd的資料monitor
一旦發現osd daemon
沒有匯報狀態,會立即把此osd daemon
對應的pg組,標記為stable
;表示該 pg 組內有
osd daemon
在2s
中沒有匯報狀態;如果在300s
內osd daemon還沒有匯報狀態,此osd daemon
就會被踢出 對應的pg組;被踢出後,
pg
組內的副本數就變少了,monitor
又會使用crush
演算法重新加入乙個新的osd daemon
加入到pg組中
版本號校驗,同pg下的osd資料每次同步時,都會產生乙個版本號,當版本號有差異時,會同步資料
資料大小size
的比較,同pg下的osd資料直接比較大小,有差異的副本osd就會同步主osd的資料
提供的功能:
pg 的邏輯集合
副本數,提供資料冗餘性
crush 規則,pg 是如何 發現 osd 的
儲存池存在使用者許可權
pool 型別:
複製型別 乙個 pg 中 有多個 osd
糾錯碼型別 分為 k 個 資料塊、m個編碼快,然後進行存放,沒有乙個資料存放多份
缺點:1.速度慢 2. 不支援ceph 所有的操作 ,如:在資料清理是,不支援區域性鎖定清理的功能
目錄osd daemon 狀態:預設每2s匯報自己的狀態給monitor (同時監控組內其他osd狀態)
up
:可以提供io
down
:不能提供io
in
:有資料
out
:沒有資料
如在 副本數為 3 的配置中,乙個pg
中 包含 三個osd daemon
,也就是三塊硬碟,其中乙個是master
,剩下兩個是副本
;
pg
和osd daemon
之間的關係,是通過crush
演算法得出的;常規這三個osd daemon
可以在一台機器上,也可以在不同機器上;那麼根據crush
演算法會盡可能的保證乙個平衡,就是不在同乙個機器上;畢竟ceph中的資料是乙個為平衡的狀態,一切都是通過crush
演算法來實現的資料平衡;
而pg
本身是個有序列表,位於第一的位置是master
;這個列表的產生是由monitor
來產生的;
在monitor
節點上會執行乙個叫pg monitor
的程序;
定時檢索整個集群中是否存在新建的儲存池pool
(這個儲存池其實就乙個一堆 pg 的集合
);
當發現新的儲存池
時,會繼續檢查儲存池中的 pg 狀態;
檢查出pg的狀態為新狀態(待建立),該pg會進入乙個creating
的狀態,會把該pg放到建立佇列中
之後monitor
再根據crush
演算法 計算得出 pg 中包含的三個osd daemon
同時算出組長;
此時monitor
會把剛剛計算出來的所有pg
、osd daemon
的資訊直接發給組長;
pg
中的osd daemon
組長收到資訊後,此時組員之間的就知道彼此,這個過程叫做peering
建立連線;
最終生成pg
由以上步驟看出,pg
實際是個邏輯單位,pg
的資訊儲存在crush map
和osd daemon
中。
ceph -s 命令檢視
stable
狀態說明:
hash 校驗,同pg下的osd資料進行hash比較,副本osd會跟主osd比較,有區別就會同步主osd的資料monitor
一旦發現osd daemon
沒有匯報狀態,會立即把此osd daemon
對應的pg組,標記為stable
;表示該 pg 組內有
osd daemon
在2s
中沒有匯報狀態;如果在300s
內osd daemon還沒有匯報狀態,此osd daemon
就會被踢出 對應的pg組;被踢出後,
pg
組內的副本數就變少了,monitor
又會使用crush
演算法重新加入乙個新的osd daemon
加入到pg組中
版本號校驗,同pg下的osd資料每次同步時,都會產生乙個版本號,當版本號有差異時,會同步資料
資料大小size
的比較,同pg下的osd資料直接比較大小,有差異的副本osd就會同步主osd的資料
提供的功能:
pg 的邏輯集合
副本數,提供資料冗餘性
crush 規則,pg 是如何 發現 osd 的
儲存池存在使用者許可權
pool 型別:
複製型別 乙個 pg 中 有多個 osd
糾錯碼型別 分為 k 個 資料塊、m個編碼快,然後進行存放,沒有乙個資料存放多份
缺點:1.速度慢 2. 不支援ceph 所有的操作 ,如:在資料清理是,不支援區域性鎖定清理的功能
Ceph 細節原理及讀寫流程
目錄osd daemon 狀態 預設每2s匯報自己的狀態給monitor 同時監控組內其他osd狀態 up 可以提供io down 不能提供io in 有資料 out 沒有資料 如在 副本數為 3 的配置中,乙個pg中 包含 三個osd daemon,也就是三塊硬碟,其中乙個是master,剩下兩個...
HBase架構及讀寫流程
hbase架構分析 負責管理hbase元資料,即表的結構 表儲存的region等元資訊。負責表的建立,刪除和修改 因為這些操作會導致hbase元資料的變動 負責為hregionserver分配region,分配好後也會將元資料寫入相應位置 後面會詳細講述放在哪 如果對可用性要求較高,它需要做ha高可...
二 Ceph儲存工作原理及實現
認識ceph ceph是乙個能提供檔案儲存,快儲存和物件儲存的分布式儲存系統。它提供了乙個可無限伸縮的ceph儲存集群 ceph構架 中文官網 ceph架構 中文圖示 rados ceph的高可靠,高可拓展,高效能,高自動化都是由這一層來提供的,使用者資料的儲存最終也都是通過這一層來進行儲存的。可以...