ceph學習筆記之十 副本放置策略
副本放置策略
CRUSH 算法的設置目的是使數據能夠根據設備的存儲能力和寬帶資源加權平均地分布,並保持一個相對的概率平衡。副本放置在具有層次結構的存儲設備中,這對數據安全也有重要影響。通過反射系統的物理安裝組織,CRUSH算法可以將系統模塊化,從而定位潛在的設備故障。這些潛在故障的資源包括物理的,比如共用電源,共用的網絡。通過向集群映射編碼信息,CRUSH副本放置策略可以將數據對象獨立在不同故障域,同時仍然保持所需的分布。例如,為了定位可能存在的並發故障,應該確保設備上的數據副本放置在不同的機架、主機、電源、控制器、或其他的物理位置。
Placement Rules
Cluster Map反映了存儲系統層級的物理拓撲;Placement Rules則決定了一個PG的對象副本選擇規則,通過對規則進行設定,就可以使副本在集群中的分布位置。
解讀Placement Rules用法
# rules
rule replicated_ruleset {
ruleset 0 //Ruleset的ID編號
type replicated //類型為replicated或者erasure code
min_size 1 //副本數最小值為1
max_size 10 //副本數最大值為10
step take default //選擇一個名稱為default的bucket,做下一步輸入
step chooseleaf firstn 0 type host //firstn 0為表示為pool設置的副本數
step emit
}
rule replicated_ssd_ruleset {
ruleset 1
type replicated
min_size 1
max_size 10
step take ssd
step chooseleaf firstn 0 type host
step emit
}
# end crush map
Placement Rules執行流程
1、take操作選擇一個Bucket ,一般是root類型的Bucket
2、choose操作有不同的選擇方式
本文出自 “無詺IT小站” 博客,謝絕轉載!
ceph學習筆記之十 副本放置策略