首先Ceph當(dāng)成一個(gè)分布式存儲(chǔ)或者軟件定義存儲(chǔ),其實(shí)它是一個(gè)積木式架構(gòu)。就是企業(yè)用戶自主可控余地很多,選擇很多,從底層硬件可以選擇任何的通用硬件,X86硬件,硬盤,網(wǎng)絡(luò),這些硬件服務(wù)器上需要搭超融合系統(tǒng),然后需要部署Ceph軟件,Ceph要根據(jù)客戶的應(yīng)用提供塊存儲(chǔ)、對(duì)象存儲(chǔ)和文件存儲(chǔ),在這個(gè)積木式的架構(gòu)上可以看出,Ceph其實(shí)跟超融合系統(tǒng)是緊密結(jié)合的,任何一塊Ceph的軟件都要跟超融合系統(tǒng)進(jìn)行交互,這就是企業(yè)用戶在選擇Ceph的時(shí)候必須要選擇能夠提供基礎(chǔ)架構(gòu)廠家的原因。
解決方案設(shè)計(jì)六步曲
接下來是Ceph的方案設(shè)計(jì)。所謂方案設(shè)計(jì)包括兩部分,一部分就是關(guān)鍵的體系架構(gòu),還有經(jīng)過驗(yàn)證的實(shí)施方案。
這里面我們提供一個(gè)成功法則給大家,Ceph落地的成功法則有三步,客戶必須要選擇兼容性的硬件,兼容性的服務(wù)器,對(duì)于Ceph軟件必須要選擇一個(gè)企業(yè)的發(fā)行版本,最后就是一個(gè)部署指南,就是搭積木的方式,把這三部分結(jié)合在一起。
具體怎么樣做呢?
整個(gè)方案設(shè)計(jì)分為六步,第一,你必須要確定這個(gè)分布式存儲(chǔ)需要解決什么樣的問題,就是你的應(yīng)用場(chǎng)景是什么樣,視頻圖像存儲(chǔ),還是用來給虛擬機(jī)存鏡像用的,有的可能是用于容器公有云,有的大部分用于做備份,我們必須要確定你這個(gè)應(yīng)用場(chǎng)景,然后才能確定具體的需求,需求包括很多,最重要的就是你的容量需求,性能需求,還有訪問方式是用塊訪問還是對(duì)象還是文件,還有你需要副本數(shù)是多少,你需要的糾刪,或者有沒有一些特殊的要求,所以在這里面我們根據(jù)客戶的具體需求和場(chǎng)景來進(jìn)行整個(gè)方案的討論。
這個(gè)討論是要根據(jù)需求落實(shí)你需要什么樣的軟硬件,提供什么樣的一個(gè)接口,整個(gè)的測(cè)試怎么樣,來確保方案設(shè)計(jì)滿足企業(yè)的要求,這個(gè)設(shè)計(jì)還包括整個(gè)方案的實(shí)施,還有最后整個(gè)實(shí)施文檔以及結(jié)果,都要記錄下來。
整個(gè)Ceph的分布式存儲(chǔ)就是一個(gè)DIY的過程,用戶有很大的自主能力,選擇的空間,所以他選擇的硬件和選擇的不一樣,可能整個(gè)實(shí)施過程也不一樣,整個(gè)的方案也不一樣,所以整個(gè)方案設(shè)計(jì)會(huì)涉及到這四部分,就是硬件怎么選擇,軟件怎么選擇,需要哪些人員去做,整個(gè)的實(shí)施計(jì)劃是怎么樣的,都明確下來。
要適應(yīng)這些經(jīng)驗(yàn)法則
在部署Ceph分布式存儲(chǔ)過程中,我們首先企業(yè)必須要知道什么是最重要的,包括你的場(chǎng)景需要多高性能,使用的場(chǎng)景怎么樣,是容器還是虛擬機(jī),還是備份,是否需要地理冗余,也就是對(duì)象存儲(chǔ)雙活存儲(chǔ),這些場(chǎng)景是否需要依賴特定的功能,所謂特定的功能,剛才說了你是否需要重刪的功能,你是否需要把數(shù)據(jù)備份同步到第三方存儲(chǔ)上面,也有這樣的一些特定的功能。
根據(jù)這些你會(huì)去定義解決方案是一個(gè)通用的解決方案還是定制的解決方案,其實(shí)每個(gè)廠家提供Ceph的解決方案都會(huì)有一些通用的解決方案,或者是針對(duì)某個(gè)場(chǎng)景的特定的解決方案。因?yàn)閷?duì)于通用的解決方案,其實(shí)它常用的配置就足夠了,但是如果一些特定的解決方案可能還需要進(jìn)一步的調(diào)整,或者有一些部分的功能還需要二次開發(fā),所以在這里面我們必須要明確存儲(chǔ)什么是最重要的。
??? 明確了里面的使用場(chǎng)景什么最重要以后,還有另外一點(diǎn),重要的事情要說三遍,必須要了解Ceph這個(gè)產(chǎn)品,它能提供什么,怎么樣才能獲得一個(gè)Ceph的分布式存儲(chǔ)。
你買來一堆的服務(wù)器,硬件,還有網(wǎng)卡,在上面部署超融合系統(tǒng),部署Ceph軟件,根據(jù)應(yīng)用的需求我們會(huì)提供塊存儲(chǔ)還是對(duì)象存儲(chǔ)還是文件存儲(chǔ),這里面可以選擇的空間很大,每一個(gè)東西用戶都可以選擇,所以會(huì)有一個(gè)選擇的痛苦。
選擇服務(wù)器,選擇什么樣的CPU,價(jià)格是不一樣的,你可以選擇最常用的英特爾CPU,或者是ARM CPU都可以,Ceph都支持。硬盤你可以選擇普通的PCie硬盤,生命周期不一樣,價(jià)格不一樣,容量不一樣,你也可以選擇副本,技術(shù)也可以選擇糾刪碼技術(shù),也不太一樣,得出來的性能也不一樣,你是否需要Cache,有讀和寫cache,所以里面有很多需要用戶選擇的地方。
怎么辦?這也有一些經(jīng)驗(yàn),對(duì)于硬盤來說,Ceph支持不同類型的硬盤,有普通的SATA硬盤、SAS硬盤,也有PCIE和SSD和NVMe的硬盤,其實(shí)有一點(diǎn),企業(yè)去使用Ceph的時(shí)候必須要明確的,企業(yè)Ceph社區(qū)在一開始整個(gè)設(shè)計(jì)來說,它是用于吞吐量這種場(chǎng)景,不是用于高性能低延時(shí)的IOPS場(chǎng)景。就好像3副本,必須要把數(shù)據(jù)同時(shí)落盤以后才能返回給客戶端,所以整個(gè)的訪問路徑其實(shí)是很長(zhǎng)的,所以一開始的時(shí)候不適合使用在低延時(shí)高性能的存儲(chǔ)里面,但是它特別適合用于對(duì)于吞吐量要求高,對(duì)于容量要求高這種存儲(chǔ)里面。
當(dāng)然對(duì)于未來得發(fā)展,現(xiàn)在Cache的技術(shù)也發(fā)展的越來越快,未來也可以用于性能要求很高的,就好像數(shù)據(jù)庫這種場(chǎng)景。
還有一點(diǎn)大家需要注意的,不要使用消費(fèi)類別的硬盤,這個(gè)已經(jīng)經(jīng)過驗(yàn)證了,必須要使用企業(yè)級(jí)的硬盤。
對(duì)于硬盤來說有什么經(jīng)驗(yàn)法則呢?這里面列出了各種硬盤的性能,可以看得出來SATA硬盤比SaaS硬盤,轉(zhuǎn)數(shù)不一樣,還有普通的SATA SSD和SAS SSD和NVME,它的性能不一樣,價(jià)格也不一樣,容量也不一樣,其實(shí)客戶在選擇的時(shí)候,都選擇價(jià)格最低,容量最大的,但是得到的性能其實(shí)也是不一樣的。這個(gè)是我們經(jīng)驗(yàn)值,就是對(duì)于3副本的Ceph集群,可以看出來一個(gè)普通的7200轉(zhuǎn)的SATA硬盤,最多就能提供30兆的帶寬,10K的SaaS硬盤最多能提供45兆的帶寬,如果是SATA SSD可以提供120兆的帶寬出來,所以必須要根據(jù)客戶對(duì)性能的要求,去算多少的硬盤才能滿足對(duì)吞吐量的要求。
第二可以選擇網(wǎng)絡(luò),這有幾個(gè)很重要的指標(biāo),Ceph對(duì)網(wǎng)絡(luò)的要求很高,基本上在生產(chǎn)里面必須是萬兆網(wǎng)卡起步,如果你底下的硬盤越多,對(duì)帶寬要求越高,對(duì)網(wǎng)卡的要求也是很高的,我們的經(jīng)驗(yàn)告訴你,最好最好就是用聚合綁定,如果是萬兆網(wǎng)卡,如果是兩個(gè)萬兆網(wǎng)口綁在一起,基本可以提供快20GB的網(wǎng)絡(luò),VLANs也可以使用。很重要的就是我們要使用巨型禎,如果應(yīng)用帶寬要求高,建議使用,就是MTU=9000。
網(wǎng)絡(luò)的法則我們經(jīng)常在客戶那遇到的兩個(gè)常見問題,就是上行鏈路帶寬太窄,好像我們到收費(fèi)站,每一個(gè)口都是10GB一樣,但最后聚集在一個(gè)路口上,那就是擁堵了,其實(shí)也是一樣的。我們每臺(tái)服務(wù)器,因?yàn)榉植际酱鎯?chǔ)都是一臺(tái)一臺(tái)服務(wù)器,我們每臺(tái)服務(wù)器可以對(duì)外提供10GB,但是上行鏈路必須要確保每個(gè)10GB加起來可以通出去,別上行鏈路提供也是10GB,其實(shí)你是無法去充分發(fā)揮每臺(tái)服務(wù)器的帶寬。
第二個(gè)法則,Ceph存儲(chǔ)里面至少分兩類網(wǎng)絡(luò),一個(gè)是對(duì)外業(yè)務(wù)網(wǎng)絡(luò),一個(gè)集群網(wǎng)絡(luò),因?yàn)閿?shù)據(jù)寫到一個(gè)硬盤上,要同時(shí)去往外,在底下的集群網(wǎng)絡(luò)同時(shí)到其他服務(wù)器同步數(shù)據(jù),所以有個(gè)法則,對(duì)于3副本,集群網(wǎng)絡(luò)必須是業(yè)務(wù)網(wǎng)絡(luò)的帶寬兩倍,這一點(diǎn)很多廠家在選擇Ceph里面犯錯(cuò)誤。
還有一個(gè)就是很重要的,服務(wù)器的選擇,我們給出第一個(gè)很重要的經(jīng)驗(yàn),就是要確保你的超融合系統(tǒng)和軟件必須要跟服務(wù)器有兼容性的認(rèn)證,為什么這樣說?其實(shí)我們?nèi)ジ芏嗫蛻袅牡臅r(shí)候,因?yàn)镃eph是開源的,有很多國內(nèi)創(chuàng)業(yè)型廠家就是把Ceph拿下來,給打包一下,然后給用戶,就提供一個(gè)版本了,他們是用開源的OS,其實(shí)都沒有跟底下的廠家做驗(yàn)證,有一次我的客戶說他用了開源的Ceph,用了OS,數(shù)據(jù)丟了,廠家說這是硬件的問題,硬件廠家說你的存儲(chǔ)軟件根本沒有跟我的做兼容性驗(yàn)證,所以在這里面我們會(huì)建議客戶選擇的Ceph軟件必須要跟下面的硬件有兼容性的認(rèn)證。
服務(wù)器,除了選擇品牌還可以選擇CPU、RAID控制卡,內(nèi)存和硬盤PCIe的規(guī)格和通道數(shù),有很多這方面的選擇,具體怎么選擇?
CPU,目前Ceph支持三種類型的CPU,一個(gè)是因特爾的,一個(gè)是NVMe的,還有ARM的,這里列出了我們一些經(jīng)驗(yàn),如果你是一個(gè)普通的硬盤,CPU主屏需求要求多高,SATA硬盤或者SAS硬盤建議有2GHz的主屏,SSD我們建議2到4Ghz,NVMe是4到8 Ghz,這個(gè)是我們的經(jīng)驗(yàn)值,考慮到Ceph去做正常的服務(wù)或者去做數(shù)據(jù)同步對(duì)CPU的要求。
如果用戶需要使用Ceph文件訪問,有一個(gè)MDS服務(wù)器,Metadata服務(wù)器,客戶端打開文件越多,需要的內(nèi)存越多,CPU我們推薦服務(wù)器必須三個(gè)或者更多給大家,還有一個(gè)就是Metadata因?yàn)橛幸粋€(gè)原數(shù)據(jù),我們建議這個(gè)原數(shù)據(jù)pool在SSD或者NVMe,來加速它的訪問索引。
網(wǎng)關(guān),如果客戶需要用到對(duì)象存儲(chǔ),必須要用到RGW對(duì)象網(wǎng)關(guān),對(duì)象網(wǎng)關(guān)有很多的文件訪問,建議使用更多的內(nèi)存和CPU內(nèi)核,一個(gè)網(wǎng)關(guān)服務(wù)器我們建議需要12個(gè)CPU的核80Ghz,普通的網(wǎng)關(guān),包括Samba、ISCSI和NFS網(wǎng)關(guān),我們建議4到6個(gè)CPU的核和16個(gè)內(nèi)存就可以了。
剛才介紹了我們一些經(jīng)驗(yàn)法則,最后根據(jù)這些經(jīng)驗(yàn)?zāi)銈兊倪x擇要得到一個(gè)實(shí)施的指南。
首先你所做得方案指南必須滿足存儲(chǔ)的需求,分為三部分,業(yè)務(wù)的需求,性能的需求,軟件的需求。業(yè)務(wù)的需求就是數(shù)據(jù)保護(hù)最重要,很多人如果要說數(shù)據(jù)保護(hù),就要確保RPO和RTO等于0,如果是對(duì)象網(wǎng)關(guān)可能有多站點(diǎn),多個(gè)存儲(chǔ)實(shí)時(shí)的進(jìn)行鏡像。
性能的要求包括容量、帶寬、IOPS和延時(shí),性能的要求對(duì)硬件的選擇是很重要的,什么樣的硬件對(duì)應(yīng)什么樣的性能,軟件的要求就是要根據(jù)用例,根據(jù)你實(shí)際的應(yīng)用,需要提供怎么樣的協(xié)議出來,因?yàn)閯偛耪f了Ceph塊、對(duì)象、文件,你的應(yīng)用不一樣,需要構(gòu)建的協(xié)議也不一樣,數(shù)據(jù)保護(hù)也是一樣的,Ceph可以提供副本的技術(shù),副本的數(shù)據(jù)保護(hù)和糾刪碼的方式,這兩種方式出來的性能或者出來的有效存儲(chǔ)容量也是不一樣的。
根據(jù)這個(gè)需求我們就可以去作出整個(gè)的方案設(shè)計(jì)出來,好像搭積木一樣,包括設(shè)計(jì)文檔、實(shí)施部署、測(cè)試、上線前的準(zhǔn)備,還有測(cè)試,還有上線后的維保,維保的方式,出現(xiàn)問題我需要怎么預(yù)解決,或者一些場(chǎng)景問題的處理,把整個(gè)方案好象積木一樣搭建起來。
SUSE可以提供一個(gè)很完整完善的經(jīng)過驗(yàn)證的實(shí)施指南給大家。如果大家感興趣可以訪問,如果大家對(duì)Ceph需要了解,也可以自己找機(jī)器,不管是虛擬機(jī)還是物理機(jī),可以按照我們整個(gè)視頻教學(xué)整個(gè)去搭建Ceph,這里面有鏈接,我們給大家提供一個(gè)最佳的實(shí)踐指南(https://www.suse.com/c/zh-hans/sesv6-setup/)。
(本文未經(jīng)演講者本人審閱)