聊聊云平臺(tái)分布式存儲(chǔ)池建立實(shí)施經(jīng)驗(yàn)
一、概述
目前云平臺(tái)已經(jīng)得到了廣泛應(yīng)用,存儲(chǔ)池作為云平臺(tái)的IAAS主要構(gòu)成部分,需要在云平臺(tái)上線實(shí)施的時(shí)候就進(jìn)行良好的規(guī)劃,保持充分的穩(wěn)定性、靈活性,保證后續(xù)的便捷使用和運(yùn)維,以更好的支撐業(yè)務(wù)發(fā)展。金融業(yè)的云平臺(tái)計(jì)算池中運(yùn)行有裸機(jī)、虛擬機(jī)、容器多種運(yùn)行態(tài)資源,為支撐數(shù)據(jù)庫、應(yīng)用服務(wù)器、容器以及文件存儲(chǔ)等場(chǎng)景,在建立企業(yè)級(jí)云平臺(tái)存儲(chǔ)池時(shí),通常需要規(guī)劃采用多種不同特性的存儲(chǔ)設(shè)備組建存儲(chǔ)池,以便支撐不同場(chǎng)景的需求。
二、分析應(yīng)用場(chǎng)景,建立多個(gè)云平臺(tái)存儲(chǔ)池
對(duì)存儲(chǔ)進(jìn)行規(guī)劃建設(shè)時(shí),離不開存儲(chǔ)應(yīng)用場(chǎng)景的分析,需要考慮的云存儲(chǔ)是用來做應(yīng)用系統(tǒng)的存儲(chǔ),還是歸檔、或者是備份云存儲(chǔ)端、或者其他的應(yīng)用,因?yàn)椴煌膽?yīng)用是需要不同的解決方案。當(dāng)確定了云的應(yīng)用場(chǎng)景后,才可以繼續(xù)根據(jù)需求制定應(yīng)對(duì)方案。例如對(duì)于應(yīng)用系統(tǒng),如支撐業(yè)務(wù)交易的數(shù)據(jù)庫,對(duì)容量要求相對(duì)不大,但要求滿足較高的性能。例如對(duì)于多個(gè)系統(tǒng)間的文件交換,或者多個(gè)服務(wù)器節(jié)點(diǎn)需要共享維護(hù)同一個(gè)共享文件目錄,共享文件服務(wù)器則要求有效的訪問控制、同時(shí)具備較好的帶寬。而用于備份的存儲(chǔ),則需要安全與可用性、歸檔則要求大容量而成本低廉的存儲(chǔ)。確定了應(yīng)用場(chǎng)景,也就確定了存儲(chǔ)池的建設(shè)方向。
金融業(yè)的核心、柜面等重要交易系統(tǒng),因?yàn)闃I(yè)務(wù)并發(fā)量大,切業(yè)務(wù)敏感性高,必須保證相應(yīng)系統(tǒng)的數(shù)據(jù)庫、應(yīng)用程序具備極高的穩(wěn)定性和性能,為保證數(shù)據(jù)庫以及此類響應(yīng)時(shí)間要求較高的應(yīng)用高效穩(wěn)定運(yùn)行,獲得良好的iops和讀寫時(shí)延,則需要在企業(yè)云平臺(tái)存儲(chǔ)池中規(guī)劃專用的通過集中式全閃存存儲(chǔ)構(gòu)建的存儲(chǔ)資源池,此部分存儲(chǔ)池通常采用高端集中式存儲(chǔ)構(gòu)成,高端集中式存儲(chǔ)技術(shù)成熟,使用時(shí)間長,案例眾多,服務(wù)體系完備,通常采用高性能存儲(chǔ)機(jī)頭管理高速的NVME SSD,能提供極高的IOPS響應(yīng)速度。集中式存儲(chǔ)通常采用高效FC協(xié)議提供服務(wù),也有少量用戶采用ISCSI等IP SAN方式提供服務(wù)。集中式存儲(chǔ)因其產(chǎn)品設(shè)計(jì)理念,存在一定的弊端,例如在需要對(duì)存儲(chǔ)設(shè)備進(jìn)行擴(kuò)容、遷移等操作時(shí),單臺(tái)存儲(chǔ)的擴(kuò)展能力相對(duì)有限,擴(kuò)容靈活性差。集中式存儲(chǔ)的使用經(jīng)驗(yàn)已經(jīng)較為成熟,在規(guī)劃組網(wǎng)等時(shí)需要考慮的磁盤域規(guī)劃、raid以及熱備盤規(guī)劃、物理端口冗余、多路徑規(guī)劃等規(guī)劃重點(diǎn)均已經(jīng)應(yīng)用非常廣泛,本文不再花費(fèi)過多篇幅進(jìn)行闡述。
三、云平臺(tái)分布式存儲(chǔ)池規(guī)劃建立
除集中式存儲(chǔ)池之外,云平臺(tái)中目前多用于支撐一般虛擬機(jī)、容器以及保存海量文件的存儲(chǔ),仍是采用分布式存儲(chǔ)。云存儲(chǔ)解決方案通常采用分布式設(shè)計(jì)理念,可從成本、容量、空間可擴(kuò)展性、服務(wù)可用性、數(shù)據(jù)可靠性、接口通用性等多個(gè)維度提升存儲(chǔ)的質(zhì)量。由于這些明顯的優(yōu)勢(shì),分布式云存儲(chǔ)成為有效的支持塊存儲(chǔ)、對(duì)象存儲(chǔ)、NAS存儲(chǔ)等多種存儲(chǔ)格式的存儲(chǔ)類型,對(duì)象存儲(chǔ)常用于保存視頻圖像信息庫等數(shù)據(jù)存儲(chǔ)與共享業(yè)務(wù),成為云平臺(tái)中便捷、統(tǒng)一管理和高效應(yīng)用的云平臺(tái)基礎(chǔ)組件。
云平臺(tái)中分布式存儲(chǔ)池的規(guī)劃建設(shè),需要考慮的因素通常包含容量、性能、安全性幾個(gè)方面,相關(guān)的規(guī)劃點(diǎn)則包括節(jié)點(diǎn)數(shù)量、磁盤配比、組網(wǎng)規(guī)劃、集群的用戶角色規(guī)劃等。下面以一套CEPH分布式存儲(chǔ)為例,闡述其規(guī)劃實(shí)施路徑。
3.1 分布式存儲(chǔ)集群及節(jié)點(diǎn)硬盤規(guī)劃實(shí)施
分布式存儲(chǔ)集群規(guī)劃第一步需要基于企業(yè)當(dāng)前數(shù)據(jù)量,合理分析本企業(yè)近3-5年的容量增長情況,并區(qū)分集中式存儲(chǔ)和分布式存儲(chǔ)的數(shù)據(jù)量。節(jié)點(diǎn)池是集群中以節(jié)點(diǎn)為單位組成的存儲(chǔ)區(qū)域單元,不同節(jié)點(diǎn)池中包含若干臺(tái)集群內(nèi)主機(jī),為用戶提供不同的存儲(chǔ)業(yè)務(wù)服務(wù)??梢酝瑫r(shí)支持塊存儲(chǔ)、文件存儲(chǔ)、對(duì)象存儲(chǔ)業(yè)務(wù),每種業(yè)務(wù)分別位于不同的節(jié)點(diǎn)池。每個(gè)節(jié)點(diǎn)池的擁有自己的監(jiān)控節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn),節(jié)點(diǎn)池間獨(dú)立,使用某分節(jié)點(diǎn)池的存儲(chǔ)資源,數(shù)據(jù)只能在該節(jié)點(diǎn)池內(nèi)的主機(jī)上分布存儲(chǔ),不同節(jié)點(diǎn)池之間數(shù)據(jù)完全隔離互不影響節(jié)點(diǎn)池。需要全面考慮塊存儲(chǔ)、對(duì)象存儲(chǔ)、文件存儲(chǔ)池的需求,三類存儲(chǔ)建議獨(dú)立不同的存儲(chǔ)池部署,單獨(dú)規(guī)劃不同配置的服務(wù)器作為數(shù)據(jù)節(jié)點(diǎn)。
硬盤池是集群節(jié)點(diǎn)池中以硬盤為單位組成的的存儲(chǔ)區(qū)域單元,不同硬盤池中包含節(jié)點(diǎn)池內(nèi)若干臺(tái)集群內(nèi)主機(jī)中的若干硬盤,為用戶提供不同的存儲(chǔ)業(yè)務(wù)服務(wù)。通過硬盤池也可以滿足不同存儲(chǔ)業(yè)務(wù)數(shù)據(jù)間的隔離,以及用戶使用不同性能的存儲(chǔ)需求。
每個(gè)數(shù)據(jù)節(jié)點(diǎn)的硬盤規(guī)劃,關(guān)鍵要考慮SSD和機(jī)械硬盤的配比。在預(yù)算充足切對(duì)存儲(chǔ)池性能要求較高時(shí),也可以考慮全閃存配置的數(shù)據(jù)節(jié)點(diǎn),構(gòu)建全閃存分布式存儲(chǔ)池。如果采用混閃進(jìn)行配置,則通常是一個(gè)或者多個(gè)SSD磁盤作為緩存加速盤和元數(shù)據(jù)存儲(chǔ)盤,后端配置4-6塊HDD作為容量盤,SSD+HDD組成一個(gè)OSD。例如一套對(duì)象存儲(chǔ),包含數(shù)據(jù)池和元數(shù)據(jù)池兩部分,可以采用HDD+SSD構(gòu)建數(shù)據(jù)池,為保證整個(gè)存儲(chǔ)池的性能,建議一個(gè)OSD中SSD容量不低于20%,但構(gòu)建元數(shù)據(jù)池時(shí),則推薦采用SSD組池,且建議配置2塊以上SSD作為故障容錯(cuò)。數(shù)據(jù)節(jié)點(diǎn)服務(wù)器通常需配置支持直通模式的RAID卡。
根據(jù)目前市面主流服務(wù)器,有2.5英寸硬盤盒3.5英寸硬盤兩種規(guī)格的服務(wù)器可供選擇,2.5英寸有7200/10000/15000轉(zhuǎn)速不同規(guī)格,轉(zhuǎn)速越高讀寫性能越好,但是2.5英寸硬盤因其尺寸規(guī)格限制,目前最大為2.4TB的規(guī)格,因此單臺(tái)2U服務(wù)器能支撐的裸容量相對(duì)有限。而3.5英寸硬盤可支持采用3.5英寸HDD磁盤的最多為24盤位,HDD硬盤最大可達(dá)16TB。如果追求性能,也跟建議采用大容量3.5寸硬盤搭配更多的SSD緩存加速層來配置數(shù)據(jù)存儲(chǔ)。
3.2 分布式存儲(chǔ)集群組網(wǎng)規(guī)劃實(shí)施
為了保證云存儲(chǔ)的性能以及安全性,通常規(guī)劃云平臺(tái)的分布式存儲(chǔ)集群在邏輯上分為三個(gè)網(wǎng)絡(luò)平面:存儲(chǔ)業(yè)務(wù)網(wǎng)絡(luò)(存儲(chǔ)外網(wǎng))、存儲(chǔ)前端網(wǎng)絡(luò)(存儲(chǔ)內(nèi)網(wǎng))、存儲(chǔ)后端網(wǎng)絡(luò)(存儲(chǔ)內(nèi)網(wǎng))。存儲(chǔ)的前端網(wǎng)絡(luò)和后端網(wǎng)絡(luò)為了保證性能,建議分開,但是在網(wǎng)口資源有限的情況下,也可以將前端和后端網(wǎng)絡(luò)合并,但業(yè)務(wù)網(wǎng)與存儲(chǔ)內(nèi)部交換網(wǎng)絡(luò)是需要分開的。
此外還有存儲(chǔ)節(jié)點(diǎn)的管理網(wǎng)絡(luò)。典型組網(wǎng)推薦采用三張雙口萬兆網(wǎng)卡。分布式存儲(chǔ)除了管理網(wǎng)絡(luò)可以采用GE網(wǎng)絡(luò)外,其他組網(wǎng)為保證性能均建議采用不低于10GE網(wǎng)絡(luò)。根據(jù)企業(yè)的IP地址分配,后端和前端網(wǎng)路的IP地址均不涉及存儲(chǔ)池外使用,故而可以采用不常用的私有網(wǎng)地址,但業(yè)務(wù)網(wǎng)的IP地址則考慮納入企業(yè)的ISCSI網(wǎng)絡(luò)。
表一:分布式存儲(chǔ)集群組網(wǎng)規(guī)劃表
3.3 分布式存儲(chǔ)集群角色規(guī)劃實(shí)施
一套分布式集群分為管理節(jié)點(diǎn)、監(jiān)控節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)三個(gè)角色,這三個(gè)角色的服務(wù)均可以部署在同一臺(tái)物理機(jī)上。單臺(tái)服務(wù)部署同時(shí)部署3個(gè)角色,單臺(tái)物理服務(wù)器故障會(huì)同時(shí)引起該節(jié)點(diǎn)上的監(jiān)控節(jié)點(diǎn)、管理節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)同時(shí)故障。站在風(fēng)險(xiǎn)分擔(dān)的角度,當(dāng)物理服務(wù)器有富余時(shí),建議將存儲(chǔ)節(jié)點(diǎn)、管理節(jié)點(diǎn)、監(jiān)控節(jié)點(diǎn)分離在不同的物理服務(wù)器上。當(dāng)存儲(chǔ)集群中的節(jié)點(diǎn)數(shù)等于3時(shí),受物理服務(wù)器的限制,管理節(jié)點(diǎn)、監(jiān)控節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)可以合一部署。
管理節(jié)點(diǎn)主要用于針對(duì)存儲(chǔ)集群的管理程序的控制,做好規(guī)劃后,管理節(jié)點(diǎn)按照規(guī)劃的信息進(jìn)行集群的安裝部署,并將監(jiān)控信息圖形化,給存儲(chǔ)節(jié)點(diǎn)服務(wù)發(fā)布命令等,集群需要配置兩個(gè)管理節(jié)點(diǎn),一主一備。 監(jiān)控節(jié)點(diǎn)主要針對(duì)集群的運(yùn)行健康狀態(tài)進(jìn)行監(jiān)控,每個(gè)集群的監(jiān)控節(jié)點(diǎn)數(shù)量必須為奇數(shù)個(gè),范圍3~7個(gè)。一套三節(jié)點(diǎn)集群的節(jié)點(diǎn)角色部署樣例推薦規(guī)劃如下:
表二:分布式存儲(chǔ)集群角色規(guī)劃表
3.4 分布式存儲(chǔ)集群配置規(guī)劃
為了保證集群的高容錯(cuò)能力,對(duì)于集群的服務(wù)器上架的機(jī)架需要充分考慮機(jī)柜掉電,機(jī)柜網(wǎng)絡(luò)斷開等故障場(chǎng)景,因此在進(jìn)行上架規(guī)劃時(shí),機(jī)架創(chuàng)建與規(guī)劃建議依照實(shí)際物理擺放,盡量不要一個(gè)機(jī)架上只有一個(gè)節(jié)點(diǎn)。
數(shù)據(jù)池冗余策略規(guī)劃。存儲(chǔ)集群需要考慮單臺(tái)服務(wù)器故障、或者單塊硬盤故障等場(chǎng)景,需要規(guī)劃安全的數(shù)據(jù)冗余策略。常見的數(shù)據(jù)冗余策略包含以下兩種:
(1)多副本策略。多副本是分布式存儲(chǔ)中目前較為常見的方案。如果按照多副本方案規(guī)劃容錯(cuò)能力,幾副本就需要有幾倍的存儲(chǔ)空間來提供冗余,副本個(gè)數(shù)越多,安全性越高,但缺點(diǎn)在于存儲(chǔ)數(shù)據(jù)所需要的空間也成倍增長,N副本最終得到可用容量為實(shí)際硬盤裸容量的1/N。目前常見的是采用兩副本和三副本兩種策略,對(duì)于數(shù)據(jù)安全性較高的行業(yè)和集群,建議采用三副本以上。
副本數(shù)與集群節(jié)點(diǎn)數(shù)對(duì)應(yīng)關(guān)系規(guī)劃:
支持2-6副本,一般用2副本和3副本,推薦使用3副本。
2副本,至少2節(jié)點(diǎn),推薦4節(jié)點(diǎn)。
3副本,至少3~4節(jié)點(diǎn),推薦5節(jié)點(diǎn)。
4副本,至少5節(jié)點(diǎn),推薦6節(jié)點(diǎn)。
(2)糾刪碼。類似于存儲(chǔ)的raid5,采用糾刪碼規(guī)劃的存儲(chǔ)池最終得到可用容量能達(dá)到實(shí)際硬盤裸容量的約70%,糾刪碼是可用容量更高的一種數(shù)據(jù)保護(hù)策略,將數(shù)據(jù)分割成多個(gè)數(shù)據(jù)塊,對(duì)這些數(shù)據(jù)塊擴(kuò)展、編碼生成冗余的校驗(yàn)塊,并將其存儲(chǔ)在不同的位置。相應(yīng)采用糾刪碼冗余技術(shù)的集群,對(duì)于數(shù)據(jù)節(jié)點(diǎn)的CPU開銷會(huì)更多,因?yàn)樾枰囊欢ǖ挠?jì)算資源用于進(jìn)行存儲(chǔ)數(shù)據(jù)的糾刪碼校驗(yàn),故而對(duì)于存儲(chǔ)節(jié)點(diǎn)的CPU型號(hào)要求更高。
塊存儲(chǔ)和對(duì)象存儲(chǔ)數(shù)據(jù)池均可以使用三副本或者糾刪碼策略。為了能讓集群正常工作,且根據(jù)用戶需求,可以承受單個(gè)硬盤(或單個(gè)節(jié)點(diǎn))的故障。集群必須預(yù)留一定的容量空間。具體需要預(yù)留多少容量空間,用附件的表格可計(jì)算得知。
存儲(chǔ)精簡(jiǎn)特性。有豐富運(yùn)維經(jīng)驗(yàn)的系統(tǒng)管理員都會(huì)知道,對(duì)于一個(gè)分配出去的LUN,通常應(yīng)用系統(tǒng)是不會(huì)使用完該LUN的所有空間,若存儲(chǔ)采用精簡(jiǎn)配置,則只有當(dāng)使用的時(shí)候才會(huì)占用存儲(chǔ)空間,而非劃出一部分空間預(yù)留的方式。例如集群的可用容量10T,創(chuàng)建一個(gè)1T的2副本池中的存儲(chǔ)塊,集群的可用容量并不會(huì)減少,仍為10T。當(dāng)向存儲(chǔ)塊中寫入0.5T數(shù)據(jù),占用集群容量0.5T*2 (2副本)=1T,集群剩余可用容量為9T。若存儲(chǔ)采用厚配置,則為劃出一部分空間預(yù)留的方式。
精簡(jiǎn)卷的特性,在測(cè)試環(huán)境中,可以考慮應(yīng)用,通常一個(gè)精簡(jiǎn)卷中運(yùn)行的是不止一臺(tái)虛擬機(jī),它能提高存儲(chǔ)資源的利用率,但是在生產(chǎn)環(huán)境中開啟精簡(jiǎn)卷的功能,將要承擔(dān)較大的風(fēng)險(xiǎn),如果該LUN一旦空間耗盡,將直接導(dǎo)致多臺(tái)虛擬機(jī)或者多個(gè)業(yè)務(wù)因空間不足而宕機(jī)的風(fēng)險(xiǎn)。況且分布式存儲(chǔ)具備良好的擴(kuò)容靈活性,生產(chǎn)環(huán)境的規(guī)劃中,不建議開啟精簡(jiǎn)特性。
尺有所短,寸有所長,建立一個(gè)企業(yè)的云平臺(tái)存儲(chǔ)池的關(guān)鍵還是對(duì)業(yè)務(wù)的分析,只要企業(yè)的存儲(chǔ)管理人員能立足業(yè)務(wù),能做到對(duì)自己企業(yè)的業(yè)務(wù)發(fā)展趨勢(shì)和需求心中有數(shù),從業(yè)務(wù)的具體需求和預(yù)測(cè)出發(fā),就能從容面對(duì)云平臺(tái)的存儲(chǔ)池規(guī)劃建設(shè)。在進(jìn)行新的存儲(chǔ)管理規(guī)劃時(shí),要求技術(shù)人員更有全局觀,更全面的了解各個(gè)業(yè)務(wù)系統(tǒng),要從單個(gè)系統(tǒng)的規(guī)劃思維轉(zhuǎn)為系統(tǒng)群的規(guī)劃思維,充分評(píng)估各系統(tǒng)的性能峰值和容量峰值體量,峰值出現(xiàn)時(shí)間等因素,充分考慮系統(tǒng)的核心需求,熟練掌握分布式與集中式的優(yōu)劣,并結(jié)合業(yè)務(wù)系統(tǒng)的需求進(jìn)行具體分析,科學(xué)搭配,合理進(jìn)行規(guī)劃和建設(shè)實(shí)施。