「BlueStore」修訂間的差異
跳至導覽
跳至搜尋
(未顯示同一使用者於中間所作的 5 次修訂) | |||
行 1: | 行 1: | ||
⚫ | |||
== Ceph 存儲引擎 == |
== Ceph 存儲引擎 == |
||
* Ceph 支援多種存儲引擎,以插件的方式來進行管理使用 |
* Ceph 支援多種存儲引擎,以插件的方式來進行管理使用 |
||
行 7: | 行 6: | ||
== BlueStore 的優勢 == |
== BlueStore 的優勢 == |
||
* 減少寫放大; |
* 減少寫放大; |
||
− | * 針對FLASH媒體磁碟進行了優化;(SSD) |
+ | * 針對 FLASH 媒體磁碟進行了優化;(SSD) |
* 直接管理設備,進一步減少檔案系統部分的開銷。 |
* 直接管理設備,進一步減少檔案系統部分的開銷。 |
||
== BlueStore 的邏輯架構 == |
== BlueStore 的邏輯架構 == |
||
− | [[Image:BlueStore.png|link=]] |
+ | [[Image:BlueStore.png|360px|link=]] |
+ | * BlueStore 實做了直接管理設備的方式,拋棄了本機檔案系統 |
||
+ | : BlockDevice 實做在用戶狀態下使用 linux aio 直接對設備進行 I/O 操作,去除了本機檔案系統的消耗,減少系統複雜度,更有利於 SSD 發揮性能優勢; |
||
+ | * 管理設備需要一個磁碟空間管理系統,BlueStore 採用 Allocator 進行設備空間管理 |
||
+ | : 目前支援 StupidAllocator 和 BitmapAllocator 兩種模式; |
||
+ | * BlueStore 的 metadata 是以 Key-Value 的形式存在 RocksDB 裡 |
||
+ | : 而 RocksDB 不能直接操作設備,為此,BlueStore 實做了一個 BlueRocksEnv,繼承自 EnvWrapper,為 RocksDB 提供底層檔案系統的抽象介面支援; |
||
+ | * 為了介接 BlueRocksEnv,BlueStore 實做了一個簡潔的檔案系統 BlueFS,只實做 BlueRocksEnv 所需要的介面, |
||
+ | : 在系統啟動掛載這個檔案系統的時候,將所有的 metadata 都載入到記憶體中 |
||
+ | : BlueFS 的資料和日誌檔案都通過 BlockDevice 存到底層的設備上; |
||
+ | * BlueFS 和 BlueStore 可以共用設備,也可以分別指定不同的設備 |
||
+ | : 為了獲得更好的效能 BlueStore 可以使用 SATA SSD,而 BlueFS 使用 NVMe SSD |
||
== 參考連結 == |
== 參考連結 == |
||
* [https://kknews.cc/tech/yzvgpqn.html 史上最詳細的ceph工作原理解析] |
* [https://kknews.cc/tech/yzvgpqn.html 史上最詳細的ceph工作原理解析] |
||
+ | __NOTOC__ |
||
⚫ |
於 2021年1月27日 (三) 01:02 的最新修訂
Ceph 存儲引擎
- Ceph 支援多種存儲引擎,以插件的方式來進行管理使用
- 目前支援 filestore,kvstore,memstore 以及 bluestore 等
- Ceph Luminous (12.2.Z) 以後預設是 bluestore
- BlueStore 目前基本已經穩定
BlueStore 的優勢
- 減少寫放大;
- 針對 FLASH 媒體磁碟進行了優化;(SSD)
- 直接管理設備,進一步減少檔案系統部分的開銷。
BlueStore 的邏輯架構
- BlueStore 實做了直接管理設備的方式,拋棄了本機檔案系統
- BlockDevice 實做在用戶狀態下使用 linux aio 直接對設備進行 I/O 操作,去除了本機檔案系統的消耗,減少系統複雜度,更有利於 SSD 發揮性能優勢;
- 管理設備需要一個磁碟空間管理系統,BlueStore 採用 Allocator 進行設備空間管理
- 目前支援 StupidAllocator 和 BitmapAllocator 兩種模式;
- BlueStore 的 metadata 是以 Key-Value 的形式存在 RocksDB 裡
- 而 RocksDB 不能直接操作設備,為此,BlueStore 實做了一個 BlueRocksEnv,繼承自 EnvWrapper,為 RocksDB 提供底層檔案系統的抽象介面支援;
- 為了介接 BlueRocksEnv,BlueStore 實做了一個簡潔的檔案系統 BlueFS,只實做 BlueRocksEnv 所需要的介面,
- 在系統啟動掛載這個檔案系統的時候,將所有的 metadata 都載入到記憶體中
- BlueFS 的資料和日誌檔案都通過 BlockDevice 存到底層的設備上;
- BlueFS 和 BlueStore 可以共用設備,也可以分別指定不同的設備
- 為了獲得更好的效能 BlueStore 可以使用 SATA SSD,而 BlueFS 使用 NVMe SSD