- Ceph分布式存儲實戰
- Ceph中國社區
- 3466字
- 2019-01-04 06:06:49

前言
隨著信息化浪潮的到來,全球各行各業逐步借助信息技術深入發展。據悉,企業及互聯網數據以每年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未來的輝煌。
- 操作系統實用教程(Linux版)
- 發布!設計與部署穩定的分布式系統(第2版)
- 精解Windows 8
- Windows Phone 7.5 Data Cookbook
- 深入理解eBPF與可觀測性
- 細說Linux基礎知識
- Ceph分布式存儲實戰
- Linux命令行大全(第2版)
- 計算機應用基礎(Windows 7+Office 2016)
- 計算機系統的自主設計
- 統信UOS應用開發進階教程
- Web Penetration Testing with Kali Linux(Third Edition)
- Linux內核修煉之道
- Learn OpenShift
- Serverless Architectures with Kubernetes