張智龍
(中國電信系統(tǒng)集成福建分公司/福建富士通信息軟件有限公司,福建福州350013)
分布式存儲(chǔ)構(gòu)建規(guī)劃
張智龍
(中國電信系統(tǒng)集成福建分公司/福建富士通信息軟件有限公司,福建福州350013)
該文從傳統(tǒng)存儲(chǔ)與軟件定義存儲(chǔ)的對(duì)比展開,得出分布式存儲(chǔ)在項(xiàng)目中更具優(yōu)勢(shì),繼而在節(jié)點(diǎn)類型及數(shù)量、存儲(chǔ)平面和業(yè)務(wù)平面組網(wǎng)、數(shù)據(jù)盤數(shù)量及有效存儲(chǔ)容量等方面做出了規(guī)劃,最終確定了軟硬件配置、整體拓?fù)溥B接等分布式存儲(chǔ)整體構(gòu)建方案。
軟件定義存儲(chǔ);分布式存儲(chǔ);FusionStorage;存儲(chǔ)節(jié)點(diǎn);計(jì)算節(jié)點(diǎn);SAS;SSD;IB
A公司因B項(xiàng)目業(yè)務(wù)發(fā)展需要,計(jì)劃新建3套Oracle數(shù)據(jù)庫,共需60TB可用存儲(chǔ)空間。為減少復(fù)雜預(yù)測(cè)以及初始大量投資,考慮如果后期該業(yè)務(wù)發(fā)展良好,存儲(chǔ)空間需要能夠便捷的擴(kuò)容,并且性能還要能夠有所提升;同時(shí)還考慮整體設(shè)備投資成本及后期管理和維護(hù)成本不宜過高。
1.1 存儲(chǔ)選型
傳統(tǒng)FC SAN存儲(chǔ)在以往應(yīng)用實(shí)踐中得到了廣泛認(rèn)可,以可靠性高、穩(wěn)定性好、功能豐富而著稱;但與此同時(shí),F(xiàn)C SAN存儲(chǔ)也暴露出了橫向擴(kuò)展性差、價(jià)格昂貴、彈性缺乏、數(shù)據(jù)連通困難等不足,容易形成數(shù)據(jù)孤島,導(dǎo)致管理和維護(hù)的成本居高不下。
軟件定義存儲(chǔ)是將標(biāo)準(zhǔn)服務(wù)器的存儲(chǔ)提供出來并通過軟件控制層面實(shí)現(xiàn)存儲(chǔ)的自動(dòng)化和池化,它將存儲(chǔ)的置備和管理的方法簡(jiǎn)化,同時(shí)也大大降低了成本。分布式存儲(chǔ)作為軟件定義存儲(chǔ)的一個(gè)典型實(shí)現(xiàn)方式,通過軟件定義各種存儲(chǔ)功能,由多個(gè)獨(dú)立X86服務(wù)器存儲(chǔ)組成存儲(chǔ)資源池,成本低廉、擴(kuò)展性好、維護(hù)簡(jiǎn)單、并發(fā)能力強(qiáng)。隨著10Gb/40Gb以太網(wǎng)、In?finiband RDMA網(wǎng)絡(luò)技術(shù)以及高I/O性能、低延時(shí)和高帶寬閃存SSD技術(shù)的引入,經(jīng)過業(yè)界技術(shù)論證和嚴(yán)謹(jǐn)測(cè)試,分布式存儲(chǔ)可滿足業(yè)務(wù)平臺(tái)日益增長(zhǎng)的存儲(chǔ)需求,并且能為業(yè)務(wù)平臺(tái)提供高安全性、高可靠性、高可用性和開放的存儲(chǔ)服務(wù)。
因此,本項(xiàng)目規(guī)劃選用軟件定義-分布式存儲(chǔ)。
1.2 軟件定義存儲(chǔ)選型
VMware公司的vSAN和華為公司的FusionStorage是業(yè)界公認(rèn)的在可擴(kuò)展性和性能方面都有較好表現(xiàn)的軟件定義-分布式存儲(chǔ)。vSAN只能在VMware虛擬化環(huán)境下使用,不能為外界的物理環(huán)境提供存儲(chǔ);而FusionStorage可以為外界物理服務(wù)器提供存儲(chǔ),滿足本項(xiàng)目所構(gòu)建的存儲(chǔ)直接為物理服務(wù)器Oracle數(shù)據(jù)庫提供存儲(chǔ))。
所以,本項(xiàng)目規(guī)劃選用華為公司的FusionStorage分布式存儲(chǔ)。
2.1 分布式存儲(chǔ)節(jié)點(diǎn)規(guī)劃
FusionStorage分布式存儲(chǔ)包含管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)等三個(gè)部分服務(wù)器,軟件架構(gòu)如下圖所示:
圖1
1)存儲(chǔ)管理模塊FusionStorage Manager,部署于管理節(jié)點(diǎn)上,主要功能為提供告警、監(jiān)控、日志、配置等操作維護(hù)功能,一般要求主備節(jié)點(diǎn)部署,但所需性能要求不高,所以規(guī)劃選用2臺(tái)虛擬機(jī)。
2)存儲(chǔ)管理代理模塊FusionStorage Agent,部署在各計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)上,實(shí)現(xiàn)各計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)與管理節(jié)點(diǎn)通信。
3)存儲(chǔ)客戶進(jìn)程VBS,部署于計(jì)算節(jié)點(diǎn)上,每臺(tái)計(jì)算節(jié)點(diǎn)部署一個(gè)或者多個(gè)VBS進(jìn)程,形成VBS集群,負(fù)責(zé)卷元數(shù)據(jù)的管理。本項(xiàng)目部署3套Oracle數(shù)據(jù)庫,每套Oracle數(shù)據(jù)庫采用2節(jié)點(diǎn)的RAC架構(gòu),所以規(guī)劃配置6臺(tái)x86服務(wù)器作為計(jì)算節(jié)點(diǎn)。
4)存儲(chǔ)服務(wù)進(jìn)程OSD,部署于存儲(chǔ)節(jié)點(diǎn)上,每臺(tái)存儲(chǔ)節(jié)點(diǎn)上的一塊磁盤對(duì)應(yīng)部署一個(gè)OSD進(jìn)程。存儲(chǔ)服務(wù)端接收到存儲(chǔ)客戶端的請(qǐng)求會(huì)根據(jù)策略將IO分發(fā)到相應(yīng)的存儲(chǔ)節(jié)點(diǎn)上。本項(xiàng)目規(guī)劃配置6臺(tái)x86服務(wù)器作為存儲(chǔ)節(jié)點(diǎn)。
5)業(yè)務(wù)控制進(jìn)程MDC,實(shí)現(xiàn)對(duì)分布式集群的狀態(tài)控制,以及控制數(shù)據(jù)分布式規(guī)則、數(shù)據(jù)重建規(guī)則等。MDC管理集群部署在3個(gè)存儲(chǔ)節(jié)點(diǎn)上,每個(gè)存儲(chǔ)節(jié)點(diǎn)一個(gè)進(jìn)程。
6)在高性能的數(shù)據(jù)庫集群場(chǎng)景,一般考慮采用計(jì)算、存儲(chǔ)分離部署的模式(計(jì)算節(jié)點(diǎn)上部署數(shù)據(jù)庫等linux應(yīng)用,存儲(chǔ)節(jié)點(diǎn)上部署FusionStorage軟件),所以本項(xiàng)目規(guī)劃6臺(tái)計(jì)算節(jié)點(diǎn)和6臺(tái)存儲(chǔ)節(jié)點(diǎn)分離部署。
2.2 分布式存儲(chǔ)資源規(guī)劃
數(shù)據(jù)庫集群場(chǎng)景,計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)的CPU和內(nèi)存資源一般需求為:
2.2.1 CPU
(1)存儲(chǔ)節(jié)點(diǎn):每個(gè)服務(wù)器占用CPU容量=操作系統(tǒng)所需占用CPU+運(yùn)行FusionStorage所需占用CPU(≥6個(gè)超線程Hyper Thread);
(2)計(jì)算節(jié)點(diǎn):每個(gè)服務(wù)器占用CPU容量=操作系統(tǒng)所需占用CPU+運(yùn)行FusionStorage所需占用CPU(≥4個(gè)超線程Hyper Thread)+業(yè)務(wù)運(yùn)行所需CPU容量。
2.2.2 內(nèi)存
每個(gè)服務(wù)器占用內(nèi)存容量=操作系統(tǒng)占用內(nèi)存容量+運(yùn)行FusionStorage所占用內(nèi)存容量(MDC進(jìn)程占用內(nèi)存容量+VBS進(jìn)程占用內(nèi)存容量+OSD進(jìn)程占用內(nèi)存容量+緩存占用內(nèi)存容量)+業(yè)務(wù)占用內(nèi)存容量。
2.2.3 存儲(chǔ)節(jié)點(diǎn)
·MDC進(jìn)程占用內(nèi)存容量:5GB,所有存儲(chǔ)節(jié)點(diǎn)均需要為MDC進(jìn)程預(yù)留5GB內(nèi)存空間。
·緩存占用內(nèi)存容量:緩存采用SSD卡或者SSD盤時(shí),內(nèi)存占用=(該服務(wù)器SSD緩存總大小GB×8)/1024,其中SSD緩存總大小的單位為GB。
·OSD進(jìn)程占用內(nèi)存容量:
當(dāng)使用SSD盤做主存時(shí),占用內(nèi)存=3.5GB*主存SSD卡個(gè)數(shù)*(SSD盤容量GB/600GB);當(dāng)使用磁盤做主存時(shí),占用內(nèi)存= N*該服務(wù)器磁盤個(gè)數(shù)(N根據(jù)網(wǎng)絡(luò)和磁盤的不同,取值為2~4.4GB)。
一般來說,存儲(chǔ)節(jié)點(diǎn)配置64GB內(nèi)存即可滿足需求。
2.2.4 計(jì)算節(jié)點(diǎn)
VBS進(jìn)程占用內(nèi)存容量:當(dāng)使用普通網(wǎng)卡時(shí),VBS進(jìn)程占用8GB內(nèi)存;當(dāng)使用IB網(wǎng)卡時(shí),VBS進(jìn)程占用10.5GB內(nèi)存。
本項(xiàng)目計(jì)算節(jié)點(diǎn)上運(yùn)行Oracle數(shù)據(jù)庫,所以規(guī)劃配置內(nèi)存256GB。
2.3 分布式存儲(chǔ)組網(wǎng)規(guī)劃
在分布式存儲(chǔ)組網(wǎng)中,主要所需的網(wǎng)絡(luò)平面為存儲(chǔ)服務(wù)管理平面、存儲(chǔ)平面、業(yè)務(wù)平面,另外本項(xiàng)目中還有Oracle RAC的心跳平面。其中業(yè)務(wù)平面、存儲(chǔ)平面和心跳平面網(wǎng)絡(luò)流量較大,存儲(chǔ)服務(wù)管理平面流量較小。為保障業(yè)務(wù)正常運(yùn)行,避免各流量之間的沖擊,他們都需要使用獨(dú)立網(wǎng)卡并通過不同的VLAN來隔離。
不同的應(yīng)用對(duì)數(shù)據(jù)類型、IO和帶寬都會(huì)有不同的需求,具體規(guī)劃如下:
1)存儲(chǔ)服務(wù)管理平面、業(yè)務(wù)平面和心跳平面,都采用千兆(TCP/IP協(xié)議)網(wǎng)絡(luò)。每個(gè)網(wǎng)絡(luò)都規(guī)劃配置兩個(gè)千兆網(wǎng)口并做聚合(bond),主備模式(Mode=1),分別連接到兩臺(tái)交換機(jī)(兩臺(tái)交換機(jī)通過兩個(gè)千兆端口聚合后堆疊而無需配置主備關(guān)系)。
2)存儲(chǔ)平面根據(jù)業(yè)務(wù)IO大小,一般在虛擬化和桌面云的應(yīng)用場(chǎng)景使用10GE網(wǎng)絡(luò),數(shù)據(jù)庫環(huán)境采用40Gb/56Gb InfiniBand (以下簡(jiǎn)稱IB,RDMA協(xié)議)網(wǎng)絡(luò)。本項(xiàng)目為Oracle數(shù)據(jù)庫環(huán)境,對(duì)IO吞吐要求較高,所以規(guī)劃選用40Gb IB交換機(jī)組網(wǎng),每臺(tái)服務(wù)器配置兩個(gè)IB網(wǎng)口并做聚合(bond),主備模式(Mode=1),分別連接到兩臺(tái)IB交換機(jī)(兩臺(tái)IB交換機(jī)之間通過6根IB線纜互連而無需配置trunk),存儲(chǔ)網(wǎng)絡(luò)內(nèi)部運(yùn)行,對(duì)外部網(wǎng)絡(luò)不可見。
2.4 存儲(chǔ)磁盤及其數(shù)量規(guī)劃
存儲(chǔ)服務(wù)器根據(jù)存儲(chǔ)容量需求配置主存用于提供存儲(chǔ)容量和一定量緩存用于提高存儲(chǔ)的性能,每個(gè)存儲(chǔ)節(jié)點(diǎn)的Fusion?Storage硬盤或者SSD卡的型號(hào)和數(shù)目保持相同。
FusionStorage支持的主存類型包括:SATA/NLSASA盤、SAS盤、SSD盤以及SSD卡,從IO性能上看,SSD卡>SSD盤>SAS盤> SATA/NLSASA盤;從每GB成本上看,SSD卡>SSD盤>SAS盤> SATA/NLSASA盤。
FusionStorage的緩存可選擇SSD盤或SSD卡,SSD卡cache時(shí)延優(yōu)于SSD盤。
FusionStorage存儲(chǔ)系統(tǒng)中沒有使用傳統(tǒng)的RAID模式來保證數(shù)據(jù)的可靠性,而是采用了多副本備份機(jī)制,即同一份數(shù)據(jù)可以復(fù)制保存多個(gè)副本,可以設(shè)置跨服務(wù)器、跨機(jī)架、跨機(jī)房等不同維度。在數(shù)據(jù)存儲(chǔ)前,對(duì)數(shù)據(jù)進(jìn)行分片,分片后的數(shù)據(jù)按照一定的規(guī)則保存集群節(jié)點(diǎn)上。從可靠性的角度出發(fā),業(yè)界常規(guī)采用三副本方式運(yùn)行。
三副本時(shí),每臺(tái)服務(wù)器上提供給每個(gè)存儲(chǔ)池使用的硬盤數(shù)量為2個(gè)~36個(gè),本項(xiàng)目為數(shù)據(jù)庫場(chǎng)景,規(guī)劃選用SAS盤;每臺(tái)服務(wù)器上提供給每個(gè)存儲(chǔ)池使用的緩存數(shù)量為0個(gè)~4個(gè)(當(dāng)存儲(chǔ)池主存類型為SATA盤或者SAS盤時(shí),存儲(chǔ)池必須有緩存,即不能為0,且cache容量越大加速性能越好),考慮成本及實(shí)際需求,本項(xiàng)目規(guī)劃選用SSD盤。
表1
圖2
分布式存儲(chǔ)的總有效容量公式為:
總有效容量=(z/(1.024^3)-r)*q*m/k
其中,磁盤標(biāo)稱容量=z、FusionStorage OSD開銷=r(通常為20.7G)、FusionStorage硬盤數(shù)目=m、磁盤空間利用率=q、副本數(shù)=k。
本項(xiàng)目所需60TB可用空間,磁盤標(biāo)稱容量為2TB,即
60*1024=(2*1024/(1.024^3)-20.7)*0.9*m/3
計(jì)算得出m=108,也就是6臺(tái)服務(wù)器,每臺(tái)服務(wù)器配置18塊2TB SAS硬盤。
根據(jù)上述選型和規(guī)劃,本項(xiàng)目分布式存儲(chǔ)總體軟硬件配置如表1。
總體構(gòu)建拓?fù)溥B接如圖2所示,可以滿足本項(xiàng)目當(dāng)前業(yè)務(wù)需求以及后期業(yè)務(wù)發(fā)展擴(kuò)容需求。
[1]楊傳輝.大規(guī)模分布式存儲(chǔ)系統(tǒng)原理解析與架構(gòu)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2013.
[2]查偉.數(shù)據(jù)存儲(chǔ)技術(shù)與實(shí)踐[M].北京:清華大學(xué)出版社, 2016.
[3]卡倫·辛格.Ceph分布式存儲(chǔ)學(xué)習(xí)指南[M].北京:機(jī)械工業(yè)出版社,2017.
TP393
A
1009-3044(2017)21-0230-03
2017-06-12
張智龍(1978—),男,福建龍巖人,通信專業(yè)中級(jí)工程師,主要從事云計(jì)算規(guī)劃和建設(shè)工作。