Ceph源碼分析

Ceph源碼分析 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:常濤
出品人:
頁數:0
译者:
出版時間:2016-11
價格:59
裝幀:
isbn號碼:9787111552079
叢書系列:大數據技術叢書
圖書標籤:
  • ceph
  • 分布式
  • 計算機
  • 編程
  • 分布式存儲
  • 源碼
  • storage
  • 數據庫
  • Ceph
  • 分布式存儲
  • 源碼分析
  • 存儲係統
  • 內核
  • C++
  • Linux
  • 開源
  • 技術
  • 架構
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

隨著雲計算技術的興起和普及,雲計算基石:分布式共享存儲係統受到業界的重視。Ceph以其穩定、高可用、可擴展的特性,乘著開源雲計算管理係統OpenStack的東風,迅速成為最熱門的開源分布式存儲係統。

Ceph作為一個開源的分布式存儲係統,人人都可以免費獲得其源代碼,並能夠安裝部署,但是並不等於人人都能用起來,人人都能用好。用好一個開源分布式存儲係統,首先要對其架構、功能原理等方麵有比較好的瞭解,其次要有修復漏洞的能力。這些都是在采用開源分布式存儲係統時所麵臨的挑戰。

要用好Ceph,就必須深入瞭解和掌握Ceph源代碼。Ceph源代碼的實現被公認為比較復雜,閱讀難度較大。閱讀Ceph源代碼,不但需要對C++語言以及boost庫和STL庫非常熟悉,還需要有分布式存儲係統相關的基礎知識以及對實現原理的深刻理解,最後還需要對Ceph框架和設計原理以及具體的實現細節有很好的把握。所以Ceph源代碼的閱讀是相當有挑戰性的。

本著對Ceph源代碼的濃厚興趣以及實踐工作的需要,需要對Ceph在源代碼層級有比較深入的瞭解。當時筆者盡可能地搜索有關Ceph源代碼的介紹,發現這方麵的資料比較少,筆者隻能自己對著Ceph源代碼開始瞭比較艱辛的閱讀之旅。在這個過程中,每一個小的進步都來之不易,理解一些實現細節,都需要對源代碼進行反復地推敲和琢磨。自己在閱讀的過程中,特彆希望有人能夠幫助理清整體代碼的思路,能夠解答一下關鍵的實現細節。本書就是秉承這樣一個簡單的目標,希望指引和幫助廣大Ceph愛好者更好地理解和掌握Ceph源代碼。

本書麵嚮熱愛Ceph的開發者,想深入瞭解Ceph原理的高級運維人員,想基於Ceph做優化和定製的開發人員,以及想對社區提交代碼的研究人員。官網上有比較詳細的介紹Ceph安裝部署以及操作相關的知識,希望閱讀本書的人能夠自己動手實踐,對Ceph進一步瞭解。本書基於目前最新的Ceph 10.2.1版本進行分析。

本書著重介紹Ceph的整體框架和各個實現模塊的實現原理,對核心源代碼進行分析,包括一些關鍵的實現細節。存儲係統的實現都是圍繞數據以及對數據的操作來展開,隻要理解核心的數據結構,以及數據結構的相關操作就可以大緻瞭解核心的實現和功能。本書的寫作思路是先介紹框架和原理,其次介紹相關的數據結構,最後基於數據結構,介紹相關的操作實現流程。

最後感謝一起工作過的同事們,同他們在Ceph技術上進行交流溝通並加以驗證實踐,使我受益匪淺。感謝機械工業齣版社的編輯吳怡對本書齣版所做的努力,以及不斷提齣的寶貴意見。感謝我的妻子孫盛南女士在我寫作期間默默的付齣,對本書的寫作提供瞭堅強的後盾。

由於Ceph源代碼比較多,也比較復雜,寫作的時間比較緊,加上個人的水平有限,錯誤和疏漏在所難免,懇請讀者批評指正。有任何的意見和建議都可發送到我的郵箱changtao381@163.com,歡迎讀者與我交流Ceph相關的任何問題。

著者簡介

圖書目錄

序言
前言
第1章 Ceph整體架構 1
1.1 Ceph的發展曆程 1
1.2 Ceph的設計目標 2
1.3 Ceph基本架構圖 2
1.4 Ceph客戶端接口 3
1.4.1 RBD 4
1.4.2 CephFS 4
1.4.3 RadosGW 4
1.5 RADOS 6
1.5.1 Monitor 6
1.5.2 對象存儲 7
1.5.3 pool和PG的概念 7
1.5.4 對象尋址過程 8
1.5.5 數據讀寫過程 9
1.5.6 數據均衡 10
1.5.7 Peering 11
1.5.8 Recovery和Backfill 11
1.5.9 糾刪碼 11
1.5.10 快照和剋隆 12
1.5.11 Cache Tier 12
1.5.12 Scrub 13
1.6 本章小結 13
第2章 Ceph通用模塊 14
2.1 Object 14
2.2 Buffer 16
2.2.1 buffer::raw 16
2.2.2 buffer::ptr 17
2.2.3 buffer::list 17
2.3 綫程池 19
2.3.1 綫程池的啓動 20
2.3.2 工作隊列 20
2.3.3 綫程池的執行函數 21
2.3.4 超時檢查 22
2.3.5 ShardedThreadPool 22
2.4 Finisher 23
2.5 Throttle 23
2.6 SafeTimer 24
2.7 本章小結 25
第3章 Ceph網絡通信 26
3.1 Ceph網絡通信框架 26
3.1.1 Message 27
3.1.2 Connection 29
3.1.3 Dispatcher 29
3.1.4 Messenger 29
3.1.5 網絡連接的策略 30
3.1.6 網絡模塊的使用 30
3.2 Simple實現 32
3.2.1 SimpleMessager 33
3.2.2 Accepter 33
3.2.3 DispatchQueue 33
3.2.4 Pipe 34
3.2.5 消息的發送 35
3.2.6 消息的接收 36
3.2.7 錯誤處理 37
3.3 本章小結 38
第4章 CRUSH數據分布算法 39
4.1 數據分布算法的挑戰 39
4.2 CRUSH算法的原理 40
4.2.1 層級化的Cluster Map 40
4.2.2 Placement Rules 42
4.2.3 Bucket隨機選擇算法 46
4.3 代碼實現分析 49
4.3.1 相關的數據結構 49
4.3.2 代碼實現 50
4.4 對CRUSH算法的評價 52
4.5 本章小結 52
第5章 Ceph客戶端 53
5.1 Librados 53
5.1.1 RadosClient 54
5.1.2 IoCtxImpl 56
5.2 OSDC 56
5.2.1 ObjectOperation 56
5.2.2 op_target 57
5.2.3 Op 57
5.2.4 Striper 58
5.2.5 ObjectCacher 59
5.3 客戶寫操作分析 59
5.3.1 寫操作消息封裝 60
5.3.2 發送數據op_submit 61
5.3.3 對象尋址_calc_target 61
5.4 Cls 62
5.4.1 模塊以及方法的注冊 62
5.4.2 模塊的方法執行 63
5.4.3 舉例說明 64
5.5 Librbd 65
5.5.1 RBD的相關的對象 65
5.5.2 RBD元數據操作 66
5.5.3 RBD數據操作 67
5.5.4 RBD的快照和剋隆 69
5.6 本章小結 71
第6章 Ceph的數據讀寫 72
6.1 OSD模塊靜態類圖 72
6.2 相關數據結構 73
6.2.1 Pool 74
6.2.2 PG 75
6.2.3 OSDMap 75
6.2.4 OSDOp 77
6.2.5 Object_info_t 77
6.2.6 ObjectState 78
6.2.7 SnapSetContext 79
6.2.8 ObjectContext 79
6.2.9 Session 80
6.3 讀寫操作的序列圖 81
6.4 讀寫流程代碼分析 83
6.4.1 階段1:接收請求 83
6.4.2 階段2:OSD的op_wq處理 85
6.4.3 階段3:PGBackend的處理 95
6.4.4 從副本的處理 95
6.4.5 主副本接收到從副本的應答 95
6.5 本章小結 96
第7章 本地對象存儲 97
7.1 基本概念介紹 98
7.1.1 對象的元數據 98
7.1.2 事務和日誌的基本概念 98
7.1.3 事務的封裝 99
7.2 ObjectStore對象存儲接口 100
7.2.1 對外接口說明 101
7.2.2 ObjectStore代碼示例 101
7.3 日誌的實現 102
7.3.1 Jouanal對外接口 102
7.3.2 FileJournal 103
7.4 FileStore的實現 109
7.4.1 日誌的三種類型 110
7.4.2 JournalingObjectStore 111
7.4.3 Filestore的更新操作 112
7.4.4 日誌的應用 115
7.4.5 日誌的同步 115
7.5 omap的實現 116
7.5.1 omap存儲 117
7.5.2 omap的剋隆 118
7.5.3 部分代碼實現分析 119
7.6 CollectionIndex 120
7.6.1 CollectIndex接口 122
7.6.2 HashIndex 123
7.6.3 LFNIndex 124
7.7 本章小結 124
第8章 Ceph糾刪碼 125
8.1 EC的基本原理 125
8.2 EC的不同插件 126
8.2.1 RS編碼 126
8.2.2 LRC編碼 126
8.2.3 SHEC編碼 128
8.2.4 EC和副本的比較 129
8.3 Ceph中EC的實現 129
8.3.1 Ceph中EC的基本概念 129
8.3.2 EC支持的寫操作 130
8.3.3 EC的迴滾機製 131
8.4 EC的源代碼分析 132
8.4.1 EC的寫操作 132
8.4.2 EC的write_full 133
8.4.3 ECBackend 133
8.5 本章小結 133
第9章 Ceph快照和剋隆 134
9.1 基本概念 134
9.1.1 快照和剋隆 134
9.1.2 RDB的快照和剋隆比較 135
9.2 快照實現的核心數據結構 137
9.3 快照的工作原理 139
9.3.1 快照的創建 139
9.3.2 快照的寫操作 139
9.3.3 快照的讀操作 140
9.3.4 快照的迴滾 141
9.3.5 快照的刪除 141
9.4 快照讀寫操作源代碼分析 141
9.4.1 快照的寫操作 141
9.4.2 make_writeable函數 142
9.4.3 快照的讀操作 145
9.5 本章小結 146
第10章 Ceph Peering機製 147
10.1 statechart狀態機 147
10.1.1 狀態 147
10.1.2 事件 148
10.1.3 狀態響應事件 148
10.1.4 狀態機的定義 149
10.1.5 context函數 150
10.1.6 事件的特殊處理 150
10.2 PG狀態機 151
10.3 PG的創建過程 151
10.3.1 PG在主OSD上的創建 151
10.3.2 PG在從OSD上的創建 153
10.3.3 PG的加載 154
10.4 PG創建後狀態機的狀態轉換 154
10.5 Ceph的Peering過程分析 156
10.5.1 基本概念 156
10.5.2 PG日誌 159
10.5.3 Peering的狀態轉換圖 166
10.5.4 pg_info數據結構 167
10.5.5 GetInfo 169
10.5.6 GetLog 176
10.5.7 GetMissing 181
10.5.8 Active操作 183
10.5.9 副本端的狀態轉移 187
10.5.10 狀態機異常處理 188
10.6 本章小結 188
第11章 Ceph數據修復 189
11.1 資源預約 190
11.2 數據修復狀態轉換圖 191
11.3 Recovery過程 193
11.3.1 觸發修復 193
11.3.2 ReplicatedPG 195
11.3.3 pgbackend 199
11.4 Backfill過程 205
11.4.1 相關數據結構 205
11.4.2 Backfill的具體實現 205
11.5 本章小結 210
第12章 Ceph一緻性檢查 211
12.1 端到端的數據校驗 211
12.2 Scrub概念介紹 213
12.3 Scrub的調度 213
12.3.1 相關數據結構 214
12.3.2 Scrub的調度實現 214
12.4 Scrub的執行 217
12.4.1 相關數據結構 217
12.4.2 Scrub的控製流程 219
12.4.3 構建ScrubMap 221
12.4.4 從副本處理 224
12.4.5 副本對比 225
12.4.6 結束Scrub過程 228
12.5 本章小結 228
第13章 Ceph自動分層存儲 230
13.1 自動分層存儲技術 230
13.2 Ceph分層存儲架構和原理 231
13.3 Cache Tier的模式 231
13.4 Cache Tier的源碼分析 234
13.4.1 pool中的Cache Tier數據結構 234
13.4.2 HitSet 236
13.4.3 Cache Tier的初始化 237
13.4.4 讀寫路徑上的Cache Tier處理 238
13.4.5 cache的flush和evict操作 245
13.5 本章小結 250
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

簡單的羅列而已

评分

我不知道寫推薦序的人要不要臉,還國內外最好的源碼分析書籍,爛成這樣,且不說內容如何,就這麼多typo好意思給人看嗎

评分

我不知道寫推薦序的人要不要臉,還國內外最好的源碼分析書籍,爛成這樣,且不說內容如何,就這麼多typo好意思給人看嗎

评分

韆萬彆買,求你們瞭。讀瞭以後心發慌。

评分

較快速翻過

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有