《Linux開源存儲全棧詳解:從Ceph到容器存儲》致力於幫助讀者形成有關Linux開源存儲世界的細緻的拓撲,從存儲硬體、Linux存儲堆疊、存儲加速、存儲安全、存儲管理、分散式存儲、雲存儲等各個角度與層次展開討論,同時對處於主導地位的、較為流行的開源存儲項目進行闡述,包括SPDK、ISA-L、OpenSDS、Ceph、OpenStack Swift與Cinder、容器存儲等。
基本介紹
- 書名:Linux開源存儲全棧詳解:從Ceph到容器存儲
- 作者:英特爾亞太研發有限公司 編著
- ISBN:978-7-121-36979-7
- 頁數:396頁
- 定價:99.00元
- 出版社:電子工業出版社
- 出版時間:2019年9月出版
- 開本:16開
內容提要,目錄,作者簡介,
內容提要
《Linux開源存儲全棧詳解:從Ceph到容器存儲》致力於幫助讀者形成有關Linux開源存儲世界的細緻的拓撲,從存儲硬體、Linux存儲堆疊、存儲加速、存儲安全、存儲管理、分散式存儲、雲存儲等各個角度與層次展開討論,同時對處於主導地位的、較為流行的開源存儲項目進行闡述,包括SPDK、ISA-L、OpenSDS、Ceph、OpenStack Swift與Cinder、容器存儲等。本書內容基本不涉及具體源碼,主要圍繞各個項目的起源與發展、實現原理與框架、要解決的網路問題等方面展開討論,致力於幫助讀者對Linux開源存儲技術的實現與發展形成整體清晰的認識。本書語言通俗易懂,能夠帶領讀者快速走入Linux開源存儲的世界並作出自己的貢獻。
目錄
第1章 Linux開源存儲 1
1.1 Linux和開源存儲 1
1.1.1 為什麼需要開源存儲 3
1.1.2 Linux開源存儲技術原理和解決方案 6
1.2 Linux開源存儲系統方案介紹 8
1.2.1 Linux單節點存儲方案 8
1.2.2 存儲服務的分類 11
1.2.3 數據壓縮 13
1.2.4 重複數據刪除 16
1.2.5 開源雲計算數據存儲平台 27
1.2.6 存儲管理和軟體定義存儲 29
1.2.7 開源分散式存儲和大數據解決方案 33
1.2.8 開源文檔管理系統 37
1.2.9 網路功能虛擬化存儲 39
1.2.10 虛擬機/容器存儲 40
1.2.11 數據保護 43
1.3 三大頂級基金會 44
第2章 存儲硬體與協定 47
2.1 存儲設備的歷史軌跡 47
2.2 存儲介質的進化 53
2.2.1 3D NAND 53
2.2.2 3D XPoint 55
2.2.3 Intel Optane 58
2.3 存儲接口協定的演變 59
2.4 網路存儲技術 62
第3章 Linux存儲棧 67
3.1 Linux存儲系統概述 67
3.2 系統調用 69
3.3 檔案系統 72
3.3.1 檔案系統概述 73
3.3.2 Btrfs 75
3.4 Page Cache 80
3.5 Direct I/O 82
3.6 塊層(Block Layer) 83
3.6.1 bio與request 84
3.6.2 I/O調度 86
3.6.3 I/O合併 88
3.7 LVM 90
3.8 bcache 93
3.9 DRBD 96
第4章 存儲加速 99
4.1 基於CPU處理器的加速和最佳化方案 100
4.2 基於協處理器或其他硬體的加速方案 103
4.2.1 FPGA加速 103
4.2.2 智慧型網卡加速 105
4.2.3 Intel QAT 107
4.2.4 NVDIMM為存儲加速 110
4.3 智慧型存儲加速庫(ISA-L) 111
4.3.1 數據保護:糾刪碼與磁碟陣列 112
4.3.2 數據安全:哈希 113
4.3.3 數據完整性:循環冗餘校驗碼 115
4.3.4 數據壓縮:IGZIP 116
4.3.5 數據加密 117
4.4 存儲性能軟體加速庫(SPDK) 117
4.4.1 SPDK NVMe驅動 119
4.4.2 SPDK套用框架 133
4.4.3 SPDK用戶態塊設備層 136
4.4.4 SPDK vhost target 150
4.4.5 SPDK iSCSI Target 156
4.4.6 SPDK NVMe-oF Target 163
4.4.7 SPDK RPC 165
4.4.8 SPDK生態工具介紹 172
第5章 存儲安全 181
5.1 可用性 181
5.1.1 SLA 181
5.1.2 MTTR、MTTF和MTBF 182
5.1.3 高可用方案 183
5.2 可靠性 185
5.2.1 磁碟陣列 186
5.2.2 糾刪碼 187
5.3 數據完整性 188
5.4 訪問控制 189
5.5 加密與解密 191
第6章 存儲管理與軟體定義存儲 194
6.1 OpenSDS 194
6.1.1 OpenSDS社區 195
6.1.2 OpenSDS架構 195
6.1.3 OpenSDS套用場景 198
6.1.4 與Kubernetes集成 200
6.1.5 與OpenStack集成 200
6.2 Libvirt存儲管理 201
6.2.1 Libvirt介紹 201
6.2.2 Libvirt存儲池和存儲卷 205
第7章 分散式存儲與Ceph 206
7.1 Ceph體系結構 209
7.1.1 對象存儲 211
7.1.2 RADOS 212
7.1.3 OSD 212
7.1.4 數據定址 214
7.1.5 存儲池 219
7.1.6 Monitor 220
7.1.7 數據操作流程 227
7.1.8 Cache Tiering 228
7.1.9 塊存儲 230
7.1.10 Ceph FS 232
7.2 後端存儲ObjectStore 235
7.2.1 FileStore 236
7.2.2 BlueStore 240
7.2.3 SeaStore 243
7.3 CRUSH算法 244
7.3.1 CRUSH算法的基本特性 244
7.3.2 CRUSH算法中的設備位置及狀態 246
7.3.3 CRUSH中的規則與算法細節 249
7.3.4 CRUSH算法實踐 254
7.3.5 CRUSH算法在Ceph中的套用 261
7.4 Ceph可靠性 262
7.4.1 OSD多副本 263
7.4.2 OSD糾刪碼 264
7.4.3 RBD mirror 265
7.4.4 RBD Snapshot 267
7.4.5 Ceph數據恢復 271
7.4.6 Ceph一致性 274
7.4.7 Ceph Scrub機制 278
7.5 Ceph中的快取 279
7.5.1 RBDCache具體實現 285
7.5.2 固態硬碟用作快取 287
7.6 Ceph加密和壓縮 289
7.6.1 加密 289
7.6.2 壓縮 291
7.6.3 加密和壓縮的加速 294
7.7 QoS 294
7.7.1 前端QoS 294
7.7.2 後端QoS 295
7.7.3 dmClock客戶端 297
7.8 Ceph性能測試與分析 298
7.8.1 集群性能測試 299
7.8.2 集群性能數據 304
7.8.3 綜合測試分析工具 307
7.8.4 高級話題 311
7.9 Ceph與OpenStack 315
第8章 OpenStack存儲 318
8.1 Swift 321
8.1.1 Swift體系結構 321
8.1.2 環 327
8.1.3 Swift API 330
8.1.4 認證 331
8.1.5 對象管理與操作 333
8.1.6 數據一致性 337
8.2 Cinder 338
8.2.1 Cinder體系結構 338
8.2.2 Cinder API 341
8.2.3 cinder-scheduler 342
8.2.4 cinder-volume 343
8.2.5 cinder-backup 347
第9章 容器存儲 348
9.1 容器 348
9.1.1 容器技術框架 350
9.1.2 Docker 353
9.1.3 容器與鏡像 355
9.2 Docker存儲 356
9.2.1 臨時存儲 357
9.2.2 持久化存儲 366
9.3 Kubernetes存儲 369
9.3.1 Kubernetes核心概念 370
9.3.2 Kubernetes數據卷管理 376
9.3.3 Kubernetes CSI 380
作者簡介
任橋偉:從事Linux核心、OpenStack、Ceph等開源項目的開發,著有《Linux核心修煉之道》《Linux那些事兒》系列。
李曉燕:活躍於Cinder和Ceph項目,具有多年存儲領域經驗。
程盈心:Ceph社區的活躍貢獻者,專注於分散式系統的分析與最佳化。
馬建朋:Ceph社區的活躍貢獻者。
劉春梅: 哈爾濱工業大學自動控制專業博士,目前在美國矽谷英特爾工作。從事過網路安全、虛擬化、終端安全、雲計算等領域的工作。
尚德浩:Ceph社區的活躍貢獻者。
胡偉:從事雲計算和邊緣計算相關工作。 在OpenStack、Ceph和Edge Computing領域支持客戶技術方案落地,參與業界多項前沿雲計算相關技術驗證和評估工作。
楊子夜:從事存儲軟體開發和最佳化工作。在虛擬化、存儲、雲安全等領域擁有諸多專利提交,其中21個專利已經被專利局授予 (其中14個在美國,7個在中國)。
曹剛:從事存儲軟體的開發和最佳化工作,現為英特爾開發經理。
劉長鵬:從事存儲軟體和虛擬化研發工作。
劉孝冬:從事存儲軟體研發及存儲相關算法最佳化的工作。
惠春陽:從事存儲軟體研發及存儲相關算法最佳化的工作。
萬群:從事測試領域的研究及實踐近十年,對測試方法及項目管理有相當豐富的經驗。
閆亮:從事存儲軟體的測試和最佳化工作。
周雁波:在英特爾實習期間,從事存儲軟體的開發和最佳化工作。
徐雯昀:在英特爾實習期間,擔任存儲技術文檔工程師,負責SPDK技術文檔方面的工作。