■ 中國航空結(jié)算有限責(zé)任公司 高紅巖
編者按:伴隨著新一代信息技術(shù)的快速發(fā)展,未來的信息化建設(shè)的方向?qū)⑹窃诒U闲畔踩那疤嵯?,?yōu)化資源與架構(gòu),達(dá)到降本增效。IT 運(yùn)維部門,作為企業(yè)重要的成本部門,也應(yīng)該主動(dòng)探尋降低IT 成本的新方法,助力企業(yè)穩(wěn)步發(fā)展。
傳統(tǒng)模式下的集中式SAN 存 儲,隨著企業(yè)數(shù)據(jù)的急劇增加及對存儲類型的多樣化要求,已經(jīng)無法適應(yīng)企業(yè)發(fā)展的需要。集中式存儲通常采用 Scale-UP 的擴(kuò)展方式,存儲擴(kuò)容受到物理槽位數(shù)量、容量License 等因素的限制,并且擴(kuò)容后只能獲得容量的擴(kuò)展,無法獲得性能的提升,甚至有時(shí)還出現(xiàn)性能下降的情況。
集中式存儲所有的數(shù)據(jù)訪問都要通過磁盤控制器,這使得磁盤控制器成為了整個(gè)磁盤訪問的瓶頸。
同時(shí),不同廠商的存儲設(shè)備之間的數(shù)據(jù)遷移非常困難,需要依賴額外的軟硬件,導(dǎo)致集中式存儲的性能孤島和數(shù)據(jù)孤島的現(xiàn)象出現(xiàn)。
此外,集中式存儲多是軟硬件一體機(jī),采購成本很高,不同廠商的存儲設(shè)備其管理方式也不盡相同,加大了管理復(fù)雜度,造成管理成本和維護(hù)成本非常高。隨著云計(jì)算、大數(shù)據(jù)技術(shù)的發(fā)展,傳統(tǒng)集中式存儲在對新技術(shù)的支持上就更顯乏力。
Ceph 是一款開源軟件定義的分布式存儲解決方案,很多商業(yè)分布式存儲解決方案都是基于Ceph 發(fā)展而來的,如Bigtera的VirtualStor 系列產(chǎn)品,Hope Bay 的ArkFlex 云端大規(guī)模數(shù)據(jù)存儲平臺產(chǎn)品。
作為一款統(tǒng)一存儲解決方案,Ceph 可以為用戶提供塊存儲、對象存儲和文件存儲,Ceph 采用多副本方式保證數(shù)據(jù)可用性,無中心架構(gòu)避免中心節(jié)點(diǎn)性能瓶頸,整個(gè)分布式存儲架構(gòu)采用高可用架構(gòu),支持故障域隔離。與集中式存儲Scale-UP 的擴(kuò)展方式不同,Ceph 分布式存儲系統(tǒng)采用Scale-Out 橫向擴(kuò)展方式,集群規(guī)模可擴(kuò)展到上千臺,擴(kuò)展時(shí)實(shí)現(xiàn)性能與容量的同時(shí)提升,有效提高基礎(chǔ)架構(gòu)的敏捷性,并采用通用X86 服務(wù)器,實(shí)現(xiàn)與硬件的解耦,從而可獲得成本上的優(yōu)勢。
圖2 磁盤分區(qū)
搭建POC 驗(yàn)證環(huán)境對Ceph 分布式存儲進(jìn)行性能方面的驗(yàn)證。服務(wù)器配置如表1 所示。
(1)集群采用3 節(jié)點(diǎn)架構(gòu),三個(gè)節(jié)點(diǎn)均為OSD、MGR的角色,選擇其中一個(gè)節(jié)點(diǎn)作為監(jiān)控節(jié)點(diǎn)MON。
(2)磁盤設(shè)計(jì):每個(gè)節(jié)點(diǎn)配 有6 塊SATA 硬 盤 和1 塊SSD 盤。使用其中2塊SATA 盤作為系統(tǒng)盤,剩 余4 塊SATA盤作為數(shù)據(jù)盤,設(shè)置為JBOD 模式,每個(gè)數(shù)據(jù)盤運(yùn)行一個(gè)OSD進(jìn)程。Ceph 使用日志卷保證數(shù)據(jù)強(qiáng)一致性,每個(gè)OSD 對應(yīng)一個(gè)日志卷。因日志卷使用空間很小,為了提升Ceph 集群性能,SSD 剩余容量作為OSD 緩存使用。使用Parted 命令將SSD 使用劃分4 個(gè)分區(qū),并保證4KB 分區(qū)對齊。
磁盤分區(qū)如圖2 所示,sda 為SSD 盤,sda1、sda2、sda3 和sda4 這4 個(gè) 分 區(qū) 分別4 個(gè)OSD 的日志卷,sda5、sda6、sda7 和sda8 分別作為4 個(gè)OSD 的緩存來使用。
集群包括3 節(jié)點(diǎn),每個(gè)節(jié)點(diǎn) 包 括4 塊1.8 TB SATA盤作為數(shù)據(jù)盤,整個(gè)集群的裸存儲容量為1.8 TB×4×3=21.6 TB,采用三副本保護(hù),整個(gè)集群可用容量為7.2 TB。
表1 服務(wù)器配置
(3)網(wǎng)絡(luò)設(shè)計(jì):
每個(gè)節(jié)點(diǎn)都有三組網(wǎng)絡(luò):內(nèi)部數(shù)據(jù)交換網(wǎng)絡(luò)、對外數(shù)據(jù)訪問網(wǎng)絡(luò)和集群節(jié)點(diǎn)管理網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)具有2 塊雙口萬兆網(wǎng)卡,每塊網(wǎng)卡的第1 口和第2 口分別做綁定,采用mode4 雙活模式,在擴(kuò)大網(wǎng)絡(luò)帶寬的情況下實(shí)現(xiàn)網(wǎng)絡(luò)冗余保護(hù)。
綁定后的一組網(wǎng)卡作為內(nèi)部數(shù)據(jù)交換,另一組網(wǎng)卡作為對外提供數(shù)據(jù)訪問。每個(gè)節(jié)點(diǎn)的千兆網(wǎng)卡作為集群節(jié)點(diǎn)的管理網(wǎng)。因?yàn)镃eph采用多副本方式存放數(shù)據(jù),節(jié)點(diǎn)之間會(huì)進(jìn)行數(shù)據(jù)交換,所以集群內(nèi)部的數(shù)據(jù)交換網(wǎng)絡(luò)要采用萬兆網(wǎng)絡(luò)或者更高速的網(wǎng)絡(luò)。
對外提供數(shù)據(jù)訪問的網(wǎng)絡(luò)可以使用千兆網(wǎng)絡(luò),也可以使用萬兆網(wǎng)絡(luò),這主要依據(jù)業(yè)務(wù)數(shù)據(jù)流量以及業(yè)務(wù)性能要求,推薦使用萬兆網(wǎng)。節(jié)點(diǎn)管理網(wǎng)只是用于節(jié)點(diǎn)管理,數(shù)據(jù)量很小,可以使用千兆網(wǎng)絡(luò)也可以和對外數(shù)據(jù)網(wǎng)絡(luò)共用。網(wǎng)絡(luò)拓?fù)鋱D如圖3 所示。
圖3 網(wǎng)絡(luò)拓?fù)鋱D
在Ceph 集群中劃分兩個(gè)塊存儲卷,分別叫做vmw-600和vmw-500,在VMware 集 群中的每個(gè)主機(jī)上通過iSCSI Software Adapter 識別到這兩個(gè)卷。從VMware 虛擬化集群中選擇一臺磁盤空間為124 GB 的虛擬機(jī),做下列存儲遷移測試。作,這個(gè)時(shí)間也會(huì)算作虛擬機(jī)遷移的時(shí)間。對于VMware 平臺的虛擬機(jī)存儲遷移,遷移的塊大小為63 KB, 可以計(jì)算出整個(gè)分布式集群的IOPS 約為(310×1024)÷64=4960。
測試一:將虛擬機(jī)從IBM DS 系列存儲遷移到分布式存儲上,查看磁盤性能情況。
在遷移過程中,從底層看到SSD 盤寫帶寬達(dá)到310MB/s 以上,SSD IO 繁忙率達(dá)到80%以上,SATA 數(shù)據(jù)盤沒有IO,這是因?yàn)镾SD 盤作為數(shù)據(jù)緩存使用,所有數(shù)據(jù)是先寫入SSD 的。虛擬機(jī)存儲遷移共用610 s 完成,遷移速度為208 MB/s。
對于虛擬機(jī)實(shí)際遷移速度比分布式存儲底層看到的速度慢的原因,是因?yàn)樘摂M化平臺在虛擬機(jī)遷移時(shí)會(huì)做一些預(yù)處理的工
測試二:將虛擬機(jī)從vmw-600 遷移到vmw-500 上。
此時(shí)SSD 盤寫帶寬在216 至239 MB/s,讀帶寬在50 至76 MB/s,IO 繁忙率達(dá)到87% 至91% 之間上,SATA數(shù)據(jù)盤沒有讀寫IO。
當(dāng)虛擬機(jī)遷到61% 時(shí),SATA 數(shù)據(jù)盤出現(xiàn)寫IO。此時(shí)SATA 數(shù)據(jù)盤寫帶寬17至31MB/s 之 間,IO 繁忙 率超 過25% 至41% 之 間。SSD盤讀帶寬為136 至149 MB/s,寫 帶 寬124 至127 MB/s,IO 繁 忙 率 超 過85%, 計(jì)算出集群的平均讀IOPS 為(134×1024)÷64=2 280,平 均 寫 I O P S 約 為(146×1024)÷64=2 008。整個(gè)虛擬機(jī)存儲遷移共用670 s 完成,遷移速度為189 MB/s。
當(dāng)sdd、sdb、sde 和sdc磁盤出現(xiàn)寫IO 時(shí)可知,SSD盤緩存使用量已經(jīng)達(dá)到向底層磁盤刷數(shù)據(jù)的條件,SSD盤正在向底層SATA 盤遷移數(shù)據(jù)。此時(shí),SSD 盤既要作為寫緩存接收來自上層應(yīng)用的寫數(shù)據(jù),又要將自身數(shù)據(jù)讀取出來傳到SATA 盤上,所以對于上層應(yīng)用來說,整個(gè)集群IOPS 相比測試下降了59.5%。
根據(jù)實(shí)際測試結(jié)果,對于實(shí)際生產(chǎn)環(huán)境中的分布式集群配置有以下幾條建議:
(1)不同類型接口的SSD盤對集群性能影響很大,如果預(yù)算允許,建議配置NVMe接口的SSD 盤。同時(shí)不同的SSD 盤有其不同的適用場景,如讀密集型場景或讀寫均衡型,可根據(jù)具體使用場景進(jìn)行選擇。
(2)建議配置大容量SSD磁盤或多塊SSD 磁盤:因?yàn)镾SD 作為緩存使用,容量較小會(huì)導(dǎo)致系統(tǒng)頻繁的從SSD 向底層數(shù)據(jù)盤刷數(shù)據(jù),影響整個(gè)集群的IOPS。
(3)對于集群性能,既要關(guān)注IOPS 和帶寬,還要關(guān)注延遲。要根據(jù)業(yè)務(wù)的實(shí)際負(fù)載情況及性能要求對分布式集群的配置進(jìn)行合理規(guī)劃。
(4)從安全性角度考慮,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)盤數(shù)量不宜過多,避免單節(jié)點(diǎn)故障影響面過大,而且故障恢復(fù)后數(shù)據(jù)恢復(fù)時(shí)間會(huì)比較長。
根據(jù)分布式存儲的架構(gòu)特點(diǎn)及測試的情況,對于分布式存儲的應(yīng)用場景主要在以下幾個(gè)方面:
(1)基于應(yīng)用服務(wù)的虛擬化平臺。
對于承載業(yè)務(wù)應(yīng)用層的虛擬化平臺,對存儲帶寬和IOPS 要求相對較低,而且對延遲的容忍度較高,可以使用分布式存儲來滿足。
(2)下沉數(shù)據(jù)的保存。
使用分布式存儲,通過對數(shù)據(jù)的分級管理實(shí)現(xiàn)數(shù)據(jù)生命周期管理,即滿足了業(yè)務(wù)對歷史數(shù)據(jù)隨時(shí)在線可查的要求,也實(shí)現(xiàn)了數(shù)據(jù)低成本存儲。此外,因?yàn)榭蛻魧?shù)據(jù)安全性要求不斷地提高,有些客戶要求歷史數(shù)據(jù)要離線保存5 年甚至7 年時(shí)間,而且數(shù)據(jù)量也非常龐大。對于這樣的存儲需求,也可以采用分布式存儲來滿足。
具體可以采用兩種方式,一種是通過分布式存儲中的文件存儲,為業(yè)務(wù)系統(tǒng)劃分一個(gè)大容量的文件存儲空間。另一種是通過備份軟件將歷史數(shù)據(jù)備份到分布式存儲中,將分布式存儲作為備份空間使用。
(3)文件存儲及對象存儲。
使用分布式存儲的文件存儲,可以很好的滿足業(yè)務(wù)的NAS 空間需求,在實(shí)現(xiàn)成本降低的同時(shí),采用多副本方式實(shí)現(xiàn)數(shù)據(jù)的保護(hù)。
隨著業(yè)務(wù)功能的不多豐富,業(yè)務(wù)的數(shù)據(jù)類型也開始多樣化,出現(xiàn)了圖片、音頻、視頻等非結(jié)構(gòu)化數(shù)據(jù),對于這些非結(jié)構(gòu)化數(shù)據(jù),對象存儲因其扁平化的獨(dú)特結(jié)構(gòu)有著天然的優(yōu)勢。而且,由于云計(jì)算的推廣,對象存儲也對企業(yè)云平臺提供了很好的支持,這些場景都非常適合使用分布式存儲的對象存儲方式來滿足。
企業(yè)業(yè)務(wù)場景是多樣的,了解業(yè)務(wù)的實(shí)際工作負(fù)載情況、性能要求、高可用要求以及存儲容量等要求,對于存儲規(guī)劃工作至關(guān)重要。針對不同類型的需求設(shè)計(jì)不同的存儲解決方案有助于實(shí)現(xiàn)性能和成本的平衡。