目錄
存儲分類:
https://www.bilibili.com/video/BV1WE41177Kp?from=search&seid=1887114199876544924
存儲發展史
(https://zhuanlan.zhihu.com/p/164775822)
企業中使用存儲按照其功能,使用場景,一直在持續發展和迭代,大體上可以分為四個階段:
- DAS:Direct Attached Storage,即直連存儲,第一代存儲系統,通過SCSI總線擴展至一個外部的存儲,磁帶整列,作為服務器擴展的一部分;
- NAS:Network Attached Storage,即網絡附加存儲,通過網絡協議如NFS遠程獲取后端文件服務器共享的存儲空間,將文件存儲單獨分離出來;
- SAN:Storage Area Network,即存儲區域網絡,分為IP-SAN和FC-SAN,即通過TCP/IP協議和FC(Fiber Channel)光纖協議連接到存儲服務器;
- Object Storage:即對象存儲,隨着大數據的發展,越來越多的圖片,視頻,音頻靜態文件存儲需求,動則PB以上的存儲空間,需無限擴展。
存儲的發展,根據不同的階段誕生了不同的存儲解決方案,每一種存儲都有它當時的歷史誕生的環境以及應用場景,解決的問題和優缺點。
綜上、企業中不同場景使用的存儲,使用表現形式無非是這三種:磁盤(塊存儲設備),掛載至目錄像本地文件一樣使用(文件共享存儲),通過API向存儲系統中上傳PUT和下載GET文件(對象存儲)。
塊存儲:
文件存儲:
對象存儲:
什么是Ceph?
Ceph則是一個統一分布式存儲系統,具有優異的性能、可靠性和可擴展性。Ceph底層是RADOS,它是分布式對象存儲系統,由自修復、自管理、智能的存儲節點組成。可以通過LIBRADOS直接訪問到RADOS的對象存儲系統。RBD(塊設備接口)、RADOS Gateway(對象存儲接口)、Ceph File System(POSIX接口)都是基於RADOS的。
Ceph能夠提供企業中三種常見的存儲需求:塊存儲、文件存儲和對象存儲,正如Ceph官方所定義的一樣“Ceph uniquely delivers object, block, and file storage in one unified system.”,Ceph在一個統一的存儲系統中同時提供了對象存儲、塊存儲和文件存儲,即Ceph是一個統一存儲,能夠將企業企業中的三種存儲需求統一匯總到一個存儲系統中,並提供分布式、橫向擴展,高度可靠性的存儲系統,Ceph存儲提供的三大存儲接口:
更詳細:https://zhuanlan.zhihu.com/p/164775822
Ceph存儲架構
Ceph 獨一無二地用統一的系統提供了對象、塊、和文件存儲功能。 Ceph還擁有大規模可擴展(PB、甚至EB級的存儲空間)、基於CRUSH算法的自我管理和修復、靈活的架構等優點,並且支持OpenStack、CloudStack、OpenNebula、Hadoop等雲平台。 Ceph 節點以普通硬件和智能守護進程作為支撐點, Ceph 存儲集群組織起了大量節點,它們之間靠相互通訊來復制數據、並動態地重分布數據。
Ceph的主要目標是提供高可擴展性和提供對象存儲、塊存儲和文件系統的存儲機制,是一個高擴展、高容錯、高一致的開源分布式存儲平台。
接下來,我們先來看一下Ceph的存儲架構,了解Ceph的分布式架構,功能組件和涉及相關概念。Ceph分布式集群是建立在RADOS算法之上的,RADOS是一個可擴展性,高可靠的存儲服務算法,是Ceph的實現的基礎。Ceph有兩個重要的組件組成:Ceph Monitors(Ceph監視器)和Ceph OSDs(Ceph OSD 守護進程)。
其中Ceph Monitor作為集群中的控制中心,擁有整個集群的狀態信息,Ceph Monitor肩負起整個集群協調工作;
同時Ceph Monitor還負責將集群的指揮工作,將集群的狀態同步給客戶端。
除了Ceph Monitor之外,還有一個重要的組件是OSD,集群中通常有多個OSD組成,OSD即Object Storage Daemon,負責Ceph集群中真正數據存儲的功能,也就是我們的數據最終都會寫入到OSD中。除了Monitor之外,根據Ceph提供的不同功能,還有其他組件,包括:
- Ceph Monitors(ceph-mon);
- Ceph OSDs(ceph-osd);
- Ceph MDS(ceph-mds),用於提供CephFS文件存儲,提供文件存儲所需元數據管理;
- Ceph RGW(ceph-rgw),用於提供Ceph對象存儲網關,提供存儲網關接入;
- Ceph Manager(ceph-mgr),提供集群狀態監控和性能監控。
注:Ceph Monitor監視器維護着集群運行圖的主副本。一個監視器集群確保了當某個監視器失效時的高可用性。存儲集群客戶端向 Ceph Monitor 監視器索取集群運行圖的最新副本。而Ceph OSD 守護進程檢查自身狀態、以及其它 OSD 的狀態,並報告給監視器們。存儲集群的客戶端和各個 Ceph OSD 守護進程使用 CRUSH 算法高效地計算數據位置,而不是依賴於一個中心化的查詢表。它的高級功能包括:基於 librados的原生存儲接口、和多種基於 librados 的服務接口。
Ceph數據的存儲
Ceph中一切皆對象,不管是RBD塊存儲接口,RGW對象存儲接口還是文件存儲CephFS接口,其存儲如到Ceph中的數據均可以看作是一個對象,一個文件需要切割為多個對象(object),然后將object存儲到OSD中,如下圖:
未完待續…… https://zhuanlan.zhihu.com/p/164775822
MinIO和ceph
(http://slack.minio.org.cn/question/5)
之前一直使用MongoDB的GirdFS存儲文件,在並發處理能力和擴容能力上沒有遇到問題。但是使用總是不夠便利,各種功能都需要自己開發。存儲上是wt文件,無法直接識別。
所以,希望找一款替代產品。目前開源的文件存儲系統比較多,比較了多個,我們的要求是要支持S3存儲,最終選定了minio。
從對比中,目前文件存儲在ceph和minio中進行比較選型
ceph優缺點
優點
- 成熟
- 紅帽繼子,ceph創始人已經加入紅帽
- 國內有所謂的ceph中國社區,私人機構,不活躍,文檔有滯后,而且沒有更新的跡象。
- 從git上提交者來看,中國有幾家公司的程序員在提交代碼,星辰天合,easystack, 騰訊、阿里基於ceph在做雲存儲,但是在開源社區中不活躍,阿里一位叫liupan的有參與
- 功能強大
- 支持數千節點
- 支持動態增加節點,自動平衡數據分布。(TODO,需要多長時間,add node時是否可以不間斷運行)
- 可配置性強,可針對不同場景進行調優
缺點
- 學習成本高,安裝運維復雜。(或者說這個不是ceph的缺點,是我水平不行)
minio優缺點
優點
- 學習成本低,安裝運維簡單,開箱即用
- 目前minio論壇推廣給力,有問必答
- 有java客戶端、js客戶端
缺點
- 社區不夠成熟,業界參考資料較少
- 不支持動態增加節點,minio創始人的設計理念就是動態增加節點太復雜,后續會采用其它方案來支持擴容。
- 其缺點是目前不支持動態在線擴容。我們業務的使用量不會很大,所以這個問題先不考慮。
當然是用MinIO呀,MinIO的維護特別簡單,並且性能和擴展也比Ceph要簡單。
Ceph 維護起來多麻煩呀。運維成本太高了。
公司運維每年不投個幾千萬,ceph玩都別玩。
並且Ceph這玩意是超大型公司才玩玩的。
ceph和hadoop