您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何進行CEPH文件系統元數據的SSD加速,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
對象存儲進程Object Storage Daemons (OSDs)是分布式文件系統Ceph的一大特點,相比其它分布式文件系統,Ceph擴展性和穩定性更好。
在Ceph中,對象先保存到基本OSD,接著復制到其他備份OSD,這個復制過程是同步的,就是寫完了,才能告訴上層應用說寫成功。保證了數據的可用性。
Client的每個寫操作下發到OSD之后,會產生2~3個磁盤seek操作:
把寫操作記錄到OSD的Journal文件上(Journal是元數據,為了保證寫操作的原子性)。
把寫操作更新到Object對應的文件上。
把寫操作記錄到PG Log文件上。
更細一步說,對于一個OSD來說,寫完成之前必須要把元數據保存到它的Journal。而寫操作是先寫Journal,再寫Object,所以,為了提升集群性能,寫Journal的速度一定要快。
因此,一般為了讓Ceph集群更快,性價比更高,需要考慮兩條設計思想:
把文件放在慢速、便宜的存儲設備上,比如SATA HDD。
把Journal放在快速設備上,比如SSD,閃存卡。
另一個常見的設計思想是每個HDD對應一個OSD。當前很多系統配備兩個SSD,很多HDD,如果SSD只存放Journal的話,容量是完全足夠的,因為1個OSD的Journal一般不超過6GB,即使有16個HDD,Journal大約只有96GB,絕大部分SSD的容量是綽綽有余的。
很多管理員擔心SSD會掛掉,所以用SSD組成了RAID-1,其實就是搞了個鏡像,容量減半。然后把Journal放到了SSD RAID組上。其實還有一個辦法是,從每個SSD拿出一個分區組成RAID-1,來做系統盤。剩下的分區來保存Ceph Journal,但是不做RAID。
不過這樣有可能會導致一種糟糕的狀況。當SSD放了10個或更多OSD Journal,它們和操作系統共享同一個SSD,如果有一段時間大家的讀寫很頻繁的時候,Ceph的性能會受到影響。比如某個主機掛了,冗余機器開始掃描數據做恢復,這個時候,其他OSD的性能就很差了,因為分到的帶寬很少了。
那么,使用RAID-1來保護Journal就好一點嗎?因為Ceph目前必須要掃描整個OSD文件存儲器才能恢復Journal,所以只要Journal丟了,那OSD也就沒了,必須要掃描整個磁盤慢慢恢復。但是RAID-1有個缺點就是每次寫都要寫兩遍。其實有個更好的辦法就是把所有的OSD Journal分成兩撥,分別放到兩個SSD,這樣,壞掉一個,還有一半的Journal是好的。
Ceph還有個Monitor,MON,主要作用是維持集群的主副本映射圖,可以查詢同步操作時的最新版本的映射圖。利用的key/value存儲快照和迭代器,執行OSD的同步。如果MON和OSD在同一個SSD上時,如果SSD變慢,那么MON也就掛掉了,如果有備份MON的話,操作不受影響。
如果要用SSD和HDD來部署Ceph的話,那么最終的結論是:
每個節點的OSD不要太多,小于8個比較合適,這種情況下Journal放在SSD效果比較好。原因就是SSD Journal多了,性能就受影響。
假如OSD實在太多,那就不要用SSD保存Journal,用HDD可能更好一點。或者說把OS裝在HDD上,然后用沒有RAID的SSD保存OSD Journal。
用一些專用的MON。
關于如何進行CEPH文件系統元數據的SSD加速就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。