[英]Why Ceph calculate PG ID by object hash rather than CRUSH algorithm?
Ceph 使用 CRUSH 算法進行 PG->OSD 映射,它適用於增加/減少 OSD 節點。
但是對於 obj->PG 映射,Ceph 還是使用傳統的 hash,即pgid = hash(obj_name) % pg_num
。 如果我們改變 PG 的數量,這種方法可能會導致大量的數據遷移,甚至會降低系統的可用性。
為什么 Ceph 不使用 CRUSH algirhtm(比如稻草 2)進行 obj->PG 映射,當 PG 的數量發生變化時,它可能具有最佳的數據遷移量?
有不同的場景,我認為 CRUSH 不是靈丹妙葯。
這是我的看法,歡迎批評或討論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.