內容簡介
基礎篇(第1~5章),從Ceph的架構與設計思想講起,到Ceph存儲基石RADOS,CRUSH的本質、原理與關係分析,Ceph的三大存儲係統,再到Ceph的可視化管理Calamari。從整體認識Ceph。中級篇(第6~8章),介紹三大存儲方式的應用。如文件係統(高性能計算與大數據)、塊存儲(虛擬化與數據庫)和對象存儲(雲盤與RGW異地災備)幾個熱點應用方麵進行講解。高級篇(第9~12章),介紹與Ceph有關的高級應用,如性能調優、自定義CRUSH、緩衝池與糾刪碼、可視化等。實戰篇(第13~14章),講解實際生産環境中的問題與解決,如常見案例分析、Ceph的運維與排錯等。
作者簡介
Ceph中國社區,匯聚中國Ceph分布式係統愛好者,有Ceph綫上社區,開展視頻授課與培訓,並積極開展綫下交流活動,有一定的影響力。社區中的骨乾均是來自各大企業的Ceph實踐者,有豐富的實戰經驗。
目錄
Contents 目錄
本書贊譽
序
前言
第1章 初識Ceph1
1.1 Ceph概述1
1.2 Ceph的功能組件5
1.3 Ceph架構和設計思想7
1.4 Ceph快速安裝9
1.4.1 Ubuntu/Debian安裝10
1.4.2 RHEL/CentOS安裝13
1.5 本章小結16
第2章 存儲基石RADOS17
2.1 Ceph功能模塊與RADOS18
2.2 RADOS架構20
2.2.1 Monitor介紹20
2.2.2 Ceph OSD簡介22
2.3 RADOS與LIBRADOS26
2.4 本章小結31
第3章 智能分布CRUSH32
3.1 引言32
3.2 CRUSH基本原理33
3.2.1 Object與PG34
3.2.2 PG與OSD34
3.2.3 PG與Pool35
3.3 CRUSH關係分析37
3.4 本章小結41
第4章 三大存儲訪問類型42
4.1 Ceph FS文件係統42
4.1.1 Ceph FS和MDS介紹43
4.1.2 部署MDS45
4.1.3 掛載Ceph FS46
4.2 RBD塊存儲47
4.2.1 RBD介紹47
4.2.2 librbd介紹48
4.2.3 KRBD介紹48
4.2.4 RBD操作50
4.2.5 RBD應用場景56
4.3 Object對象存儲57
4.3.1 RGW介紹57
4.3.2 Amazon S3簡介58
4.3.3 快速搭建RGW環境61
4.3.4 RGW搭建過程的排錯指南68
4.3.5 使用S3客戶端訪問RGW服務71
4.3.6 admin管理接口的使用75
4.4 本章小結78
第5章 可視化管理Calamari79
5.1 認識Calamari79
5.2 安裝介紹79
5.2.1 安裝calamari-server80
5.2.2 安裝romana(calamari-client)82
5.2.3 安裝diamond85
5.2.4 安裝salt-minion86
5.2.5 重啓服務87
5.3 基本操作87
5.3.1 登錄Calamari87
5.3.2 WORKBENCH頁麵88
5.3.3 GRAPH頁麵89
5.3.4 MANAGE頁麵90
5.4 本章小結92
第6章 文件係統—高性能計算與大數據93
6.1 Ceph FS作為高性能計算存儲93
6.2 Ceph FS作為大數據後端存儲98
6.3 本章小結101
第7章 塊存儲—虛擬化與數據庫102
7.1 Ceph與KVM102
7.2 Ceph與OpenStack106
7.3 Ceph與CloudStack110
7.4 Ceph與ZStack114
7.5 Ceph提供iSCSI存儲 122
7.6 本章小結128
第8章 對象存儲—雲盤與RGW異地災備129
8.1 網盤方案:RGW與OwnCloud的整閤129
8.2 RGW的異地同步方案133
8.2.1 異地同步原理與部署方案設計134
8.2.2 Region異地同步部署實戰137
8.3 本章小結146
第9章 Ceph硬件選型、性能測試與優化147
9.1 需求模型與設計147
9.2 硬件選型148
9.3 性能調優151
9.3.1 硬件優化152
9.3.2 操作係統優化155
9.3.3 網絡層麵優化161
9.3.4 Ceph層麵優化170
9.4 Ceph測試174
9.4.1 測試前提175
9.4.2 存儲係統模型175
9.4.3 硬盤測試176
9.4.4 雲硬盤測試182
9.4.5 利用Cosbench來測試Ceph185
9.5 本章小結189
第10章 自定義CRUSH191
10.1 CRUSH解析191
10.2 CRUSH設計:兩副本實例201
10.3 CRUSH設計:SSD、SATA混閤實例207
10.3.1 場景一:快–慢存儲方案207
10.3.2 場景二:主–備存儲方案214
10.4 模擬測試CRUSH分布217
10.5 本章小結222
第11章 緩衝池與糾刪碼223
11.1 緩衝池原理223
11.2 緩衝池部署225
11.2.1 緩衝池的建立與管理226
11.2.2 緩衝池的參數配置226
11.2.3 緩衝池的關閉228
11.3 糾刪碼原理229
11.4 糾刪碼應用實踐232
11.4.1 使用Jerasure插件配置糾刪碼232
11.4.2 ISA-L插件介紹234
11.4.3 LRC插件介紹235
11.4.4 其他插件介紹235
11.5 本章小結235
第12章 生産環境應用案例237
12.1 Ceph FS應用案例237
12.1.1 將Ceph FS導齣成NFS使用238
12.1.2 在Windows客戶端使用Ceph FS239
12.1.3 OpenStack Manila項目對接Ceph FS案例242
12.2 RBD應用案例244
12.2.1 OpenStack對接RBD典型架構244
12.2.2 如何實現Cinder Multi-Backend246
12.3 Object RGW應用案例:讀寫分離方案248
12.4 基於HLS的視頻點播方案249
12.5 本章小結251
第13章 Ceph運維與排錯252
13.1 Ceph集群運維252
13.1.1 集群擴展252
13.1.2 集群維護259
13.1.3 集群監控266
13.2 Ceph常見錯誤與解決方案277
13.2.1 時間問題277
13.2.2 副本數問題279
13.2.3 PG問題282
13.2.4 OSD問題286
13.3 本章小結292
前言/序言
隨著信息化浪潮的到來,全球各行各業逐步藉助信息技術深入發展。據悉,企業及互聯網數據以每年50%的速率在增長。據權威調查機構Gartner預測,到2020年,全球數據量將達到35ZB,相當於80億塊4TB硬盤,數據結構的變化給存儲係統帶來瞭全新的挑戰。那麼有什麼方法能夠存儲這些數據呢?我認為Ceph是解決未來十年數據存儲需求的一個可行方案。Ceph是存儲的未來!SDS是存儲的未來!
為什麼寫這本書目前,磁盤具備容量優勢,固態硬盤具備速度優勢。但能否讓容量和性能不局限在一個存儲器單元呢?我們很快聯想到磁盤陣列技術(Redundant Array of Independent Disk,RAID,不限於HDD)。磁盤陣列技術是一種把多塊獨立的硬盤按不同的方式組閤起來形成一個硬盤組(Disk Group,又稱Virtual Disk),從而提供比單個硬盤更高的存儲性能與數據備份能力的技術。磁盤陣列技術既可提供多塊硬盤讀寫的聚閤能力,又能提供硬盤故障的容錯能力。
鏡像技術(Mirroring)又稱為復製技術(Replication),可提供數據冗餘性和高可用性;條帶(Striping),可提供並行的數據吞吐能力;糾刪碼(Erasure Code),把數據切片並增加冗餘編碼而提供高可用性和高速讀寫能力。鏡像、條帶和糾刪碼是磁盤陣列技術經典的數據分發方式,這3種經典的磁盤技術可通過組閤方式提供更加豐富的數據讀寫性能。
傳統的磁盤陣列技術的關注點在於數據在磁盤上的分發方式,隨著通用磁盤、通用服務器,以及高速網絡的成本降低,使數據在磁盤上的分發擴展到在服務器節點上的分發成為可能。鏡像技術、條帶技術和糾刪碼技術基於服務器節點的粒度實現後,這些技術的特點不再局限於單個設備的性能,而是具備“橫嚮擴展”能力。我們暫且認為這是分布式存儲本質的體現。
分布式存儲解決瞭數據體量問題,對應用程序提供標準統一的訪問接入,既能提升數據安全性和可靠性,又能提高存儲整體容量和性能。可以預見,分布式存儲是大規模存儲的一個實現方嚮。分布式存儲廣泛地應用於航天、航空、石油、科研、政務、醫療、視頻等高性能計算、雲計算和大數據處理領域。目前行業應用對分布式存儲技術需求旺盛,其處於快速發展階段。
Ceph是加州大學聖剋魯茲分校的Sage Weil博士論文的研究項目,是一個使用自由開源協議(LGPLv2.1)的分布式存儲係統。目前Ceph已經成為整個開源存儲行業最熱門的軟件定義存儲技術(Software Defined Storage,SDS)。它為塊存儲、文件存儲和對象存儲提供瞭統一的軟件定義解決方案。Ceph旨在提供一個擴展性強大、性能優越且無單點故障的分布式存儲係統。從一開始,Ceph就被設計為能在通用商業硬件上高度擴展。
由於其開放性、可擴展性和可靠性,Ceph成為瞭存儲行業中的翹楚。這是雲計算和軟件定義基礎設施的時代,我們需要一個完全軟件定義的存儲,更重要的是它要為雲做好準備。無論運行的是公有雲、私有雲還是混閤雲,Ceph都非常閤適。國內外有不少的Ceph應用方案,例如美國雅虎公司使用Ceph構建對象存儲係統,用於Flickr、雅虎郵箱和Tumblr(輕量博客)的後端存儲;國內不少公有雲和私有雲商選擇Ceph作為雲主機後端存儲解決方案。
如今的軟件係統已經非常智能,可以最大限度地利用商業硬件來運行規模龐大的基礎設施。Ceph就是其中之一,它明智地采用商業硬件來提供企業級穩固可靠的存儲係統。
Ceph已被不斷完善,並融入以下建設性理念。
每個組件能夠綫性擴展。
無任何單故障點。
解決方案必須是基於軟件的、開源的、適應性強的。
運行於現有商業硬件之上。
每個組件必須盡可能擁有自我管理和自我修復能力。
對象是Ceph的基礎,它也是Ceph的構建部件,並且Ceph的對象存儲很好地滿足瞭當下及將來非結構化數據的存儲需求。相比傳統存儲解決方案,對象儲存有其獨特優勢:我們可以使用對象存儲實現平颱和硬件獨立。Ceph謹慎地使用對象,通過在集群內復製對象來實現可用性;在Ceph中,對象是不依賴於物理路徑的,這使其獨立於物理位置。這種靈活性使Ceph能實現從PB(petabyte)級到EB(exabyte)級的綫性擴展。
Ceph性能強大,具有超強擴展性及靈活性。它可以幫助用戶擺脫昂貴的專有存儲孤島。Ceph是真正在商業硬件上運行的企業級存儲解決方案;是一種低成本但功能豐富的存儲係統。Ceph通用存儲係統同時提供塊存儲、文件存儲和對象存儲,使客戶可以按需使用。
由於國內許多企業決策者逐漸認識到Ceph的優勢與前景,越來越多來自係統管理和傳統存儲的工程師使用Ceph,並有相當數量的企業基於Ceph研發分布式存儲産品,為瞭更好地促進Ceph在國內傳播和技術交流,我們幾個愛好者成立瞭Ceph中國社區。目前,通過網絡交流群、消息內容推送和問答互動社區,嚮國內關注Ceph技術的同行提供信息交流和共享平颱。但是,由於信息在傳遞過程中過於分散,偶爾編寫的文檔內容並不完整,導緻初學者在學習和使用Ceph的過程中遇到不少疑惑。同時,由於官方文檔是通過英文發布的,對英語不太熟悉的同行難於學習。鑒於此,Ceph中國社區組織技術愛好者編寫本書,本書主要提供初級和中級層麵的指導。根據調查反饋以及社區成員的意見,我們確定瞭本書內容。
本書特色在本書中,我們將采用穿插方式講述Ceph分布式存儲的原理與實戰。本書側重實戰,循序漸進地講述Ceph的基礎知識和實戰操作。從第1章起,讀者會瞭解Ceph的前生今世。隨著每章推進,讀者將不斷學習、不斷深入。我希望,到本書的結尾,讀者不論在概念上還是實戰上,都能夠成功駕馭Ceph。每個章節在講述完基礎理論知識後會有對應的實戰操作。我們建議讀者在自己的電腦上按部就班地進行實戰操作。這樣,一來讀者不會對基礎理論知識感到睏惑,二來可讓讀者通過實戰操作加深對Ceph的理解。同時,如果讀者在閱讀過程中遇到睏難,我們建議再重溫已閱章節或重做實驗操作,這樣將會加深理解,也可以加入Ceph中國社區QQ群(239404559)進行技術討論。
讀者對象本書適用於以下讀者。
Ceph愛好者。
雲平颱運維工程師。
存儲係統工程師。
係統管理員。
高等院校的學生或者教師。
本書是專門對上述讀者所打造的Ceph入門級實戰書籍。如果你具備GNU/ Linux和存儲係統的基本知識,卻缺乏軟件定義存儲解決方案及Ceph相關的經驗,本書也是不錯的選擇。雲平颱運維工程師、存儲係統工程師讀完本書之後能夠深入瞭解Ceph原理、部署和維護好綫上Ceph集群。同時,本書也適閤大學高年級本科生和研究生作為Ceph分布式存儲係統或者雲計算相關課程的參考書籍,能夠帶領你進入一個開源的分布式存儲領域,深入地瞭解Ceph,有助於你今後的工作。
如何閱讀本書由於Ceph是運行在GNU/Linux係統上的存儲解決方案,我們假定讀者掌握瞭存儲相關知識並熟悉GNU/Linux操作係統。如果讀者在這些方麵知識有欠缺,可參照閱讀其他書籍或專業信息網站。
本書將講述如下的內容。
第1章 描述Ceph的起源、主要功能、核心組件邏輯、整體架構和設計思想,並通過實戰的方式指導我們快速建立Ceph運行環境。
第2章 描述Ceph的分布式本質,深入分析Ceph架構,並介紹如何使用LIBRADOS庫。
第3章 描述CRUSH的本質、基本原理,以及CRUSH作用下數據與對象的映射關係。
第4章 描述Ceph FS文件係統、RBD塊存儲和Object對象存儲的建立以及使用。
第5章 描述Calamari的安裝過程和基本使用操作。
第6章 描述Ceph FS作為高性能計算和大數據計算的後端存儲的內容。
第7章 描述RBD在虛擬化和數據庫場景下的應用,包括OpenStack、CloudStack和ZStack與RBD的結閤。
第8章 描述基於Ceph的雲盤技術方案和備份方案,描述網關的異地同步方案和多媒體轉換網關設計。
第9章 描述Ceph的硬件選型、性能調優,以及性能測試方法。
第10章 描述CRUSH的結構,並給齣SSD與SATA混閤場景下的磁盤組織方案。
第11章 描述Ceph的緩衝池原理和部署,以及糾刪碼原理和糾刪碼庫,最後描述糾刪碼池的部署方案。
第12章 對3種存儲訪問類型的生産環境案例進行分析。
第13章 描述Ceph日常運維細節,以及常見錯誤的處理方法。
勘誤與支持在本書的寫作過程,我們也參考瞭Ceph中國社區往期沙龍一綫工程師、專傢分享的經驗和Ceph官方文檔。我們熱切希望能夠為讀者呈現豐富而且權威的Ceph存儲技術。由於Ceph社區不斷發展,版本迭代速度快,筆者水平有限,書中難免存在技術延後和謬誤,懇請讀者批評指正。可將任何意見和建議發送到郵箱devin@ceph.org.cn或者star.guo@ceph.org.cn,也可以發布到Ceph中國社區問答係統http://bbs.ceph.org.cn/。我們將密切跟蹤Ceph分布式存儲技術的發展,吸收讀者寶貴意見,適時編寫本書的升級版本。Ceph中國社區訂閱號為:“ceph_community”,二維碼為:
歡迎讀者掃描關注,“Ceph中國社區訂閱號”會定期發送Ceph技術文章、新聞資訊。也歡迎讀者通過這個微信訂閱號進行本書勘誤反饋,本書的勘誤和更新也會通過訂閱號發布。
緻謝首先要感謝我們社區的全體誌願者,社區的發展離不開全體誌願者們無怨無悔的奉獻,正是有瞭你們纔有瞭社區今日的繁榮,其次要感謝所有支持過我們的企業,是你們的慷慨解囊成就瞭Ceph中國社區今日的壯大,最後感謝陳曉熹的校稿以及所有為本書編寫提供支持、幫助的人。未來,我們也非常歡迎有誌將開源事業發揚光大的同學們積極加入我們的社區,和我們一起創造Ceph未來的輝煌。
序 PrefaceCeph是目前開源世界在存儲領域的裏程碑式項目,它所帶來的分布式、無中心化設計是目前眾多商用分布式存儲模仿和學習的對象。Ceph社區經過十多年發展已經成為近幾年參與度增長最快的開源社區之一,而Ceph中國社區正是背後的驅動力之一。從2015年開始,Ceph中國社區一直努力在國內普及Ceph的生態,並為廣大Ceph愛好者提供瞭交流平颱,使得眾多開源愛好者能夠進一步瞭解Ceph的魅力。在過去的10年,開源世界慢慢成為瞭IT創新的動力,而這10年也是國內技術愛好者受益於開源的最好時間。但是,從開源愛好者到社區的深度參與方麵,尤其是在世界級開源項目上,我們還存在大缺失,而這些“溝壑”需要像Ceph中國社區這樣的組織來彌補。我很欣喜地看到Ceph中國社區能在最閤適的時間成立並迅速成長,而且受到Ceph官方社區的認可。
Ceph中國社區從論壇的搭建,微信群的建立,公眾號的眾包翻譯和文章分析,到活動的組織都體現瞭一個開源社區最富有活力的價值。本書正是Ceph中國社區給國內Ceph愛好者的一份正當其時的“禮物”,本書是多位Ceph實戰者在Ceph集群運維和問題討論中形成的經驗和錦囊之集閤。毫不誇張地說,本書是我目前看到的最棒的Ceph入門工具書,可以幫助對分布式存儲或者Ceph不太熟悉的讀者真正零距離地接觸並使用它。
王豪邁2016年9月8日
Ceph分布式存儲實戰 下載 mobi epub pdf txt 電子書