賀強 宗萍
(北京兆芯電子科技有限公司 北京市 100000)
隨著信息技術(shù)的迅猛發(fā)展,存儲系統(tǒng)已成為IC 研發(fā)企業(yè)保存重要數(shù)據(jù)的關(guān)鍵一環(huán)。選擇存儲系統(tǒng)需要參考幾個重要的指標(biāo):可靠性、容錯性及可擴展性。
本文分析了集成電路(IC)芯片設(shè)計企業(yè)對存儲系統(tǒng)的需求,基于分布式文件系統(tǒng)Ceph 和Ganesha 設(shè)計了適合IC 芯片研發(fā)企業(yè)使用的分布式存儲系統(tǒng)。后端存儲基于分布式架構(gòu),利用Ganesha 雙活負(fù)載集群將CephFS 導(dǎo)出為NFS 為高性能運算集群(HPC)提供存儲空間及Snapshot 數(shù)據(jù)快照保護及訪問權(quán)限和目錄使用量Quota 等功能設(shè)置。
實現(xiàn)了IC 芯片設(shè)計企業(yè)對海量存儲、小文件高IO 需求的主要功能,通過Prometheus 和Grafana 為用戶提供存儲的實時性能和歷史記錄監(jiān)控,為IC 芯片設(shè)計企業(yè)提供高性能、高可靠性的分布式存儲系統(tǒng)。
CephFS(Ceph File System)功能特性是基于RADOS 來實現(xiàn)分布式的文件系統(tǒng),引入了MDS(Metadata Server),主要為兼容POSIX 文件系統(tǒng)提供元數(shù)據(jù),一般都是當(dāng)作文件系統(tǒng)來掛載為客戶端提供數(shù)據(jù)訪問服務(wù)。
主要組成部分:
(1)OSDs 主要功能包括存儲數(shù)據(jù),處理數(shù)據(jù)的復(fù)制、恢復(fù)、回補、平衡數(shù)據(jù)分布,并將一些相關(guān)數(shù)據(jù)提供給Ceph Monitor;
(2)Monitors 主要功能是維護整個集群健康狀態(tài),提供一致性的決策,包含了Monitor map、OSD map、PGmap 和CRUSH map;
(3)Managers 負(fù)責(zé)跟蹤運行時指標(biāo)和Ceph 集群的當(dāng)前狀態(tài),包括存儲利用率,當(dāng)前性能指標(biāo)和系統(tǒng)負(fù)載;
(4)MDS 主要保存的是Ceph 文件系統(tǒng)的元數(shù)據(jù);
對一家IC 設(shè)計公司而言,所設(shè)計研發(fā)的數(shù)據(jù)是企業(yè)最重要的資產(chǎn),而且數(shù)據(jù)量巨大,往往會達(dá)到PB 級以上。為確保這些數(shù)據(jù)的最高可用性,一套穩(wěn)定、可靠的存儲系統(tǒng)必然不可或缺。NAS存儲的特點在于數(shù)據(jù)集中管理、訪問數(shù)據(jù)及時方便。但隨著公司員工人數(shù)的增長以及運營規(guī)模的擴大,對存儲的需求也逐步擴大,以確保企業(yè)研發(fā)數(shù)據(jù)的最高可用性,存儲系統(tǒng)的穩(wěn)定性和靈活的可擴展性也成了存儲解決方案的主要考慮因素。
根據(jù)在IC 設(shè)計公司多年IT 經(jīng)驗,IC 設(shè)計企業(yè)存儲需求大致可參考表1。
(1)操作系統(tǒng)建議選擇最新的,本文選擇CentOS 7.8 操作系統(tǒng)。
(2)Ceph 選擇Nautilus 最新穩(wěn)定版14.2.11。
(3)文件系統(tǒng)采用Ceph 最新提供的BlueStore。
表1:企業(yè)存儲需求參考表
表2:全局公共調(diào)優(yōu)參數(shù)
表3:Monitor 調(diào)優(yōu)參數(shù)
表4:OSD 調(diào)優(yōu)參數(shù)
表5:MDS 調(diào)優(yōu)參數(shù)
表6:Client 調(diào)優(yōu)參數(shù)
硬件選型原則:PB 級生產(chǎn)集群盡量選擇品質(zhì)有保障并經(jīng)過嚴(yán)格測試的平臺及硬件,由于數(shù)據(jù)量較大應(yīng)該配備更多內(nèi)存、CPU 和數(shù)據(jù)存儲空間及萬兆網(wǎng)絡(luò)來解決存儲高IO、高流量壓力。
3.2.1 服務(wù)器選型
考慮綜合性價比,盡量選槽位較多的型號,本案例選DELL R740XD 作為Ceph 主機平臺。
3.2.2 CPU 選型
元數(shù)據(jù)服務(wù)器對CPU 相對敏感,它會動態(tài)地重分布它們的負(fù)載,所以元數(shù)據(jù)服務(wù)器應(yīng)該有足夠的處理能力。
3.2.3 內(nèi)存選型
元數(shù)據(jù)服務(wù)器和監(jiān)視器必須可以盡快地提供它們的數(shù)據(jù),它們應(yīng)該有足夠的內(nèi)存,至少1GB 每個進程,運行每個OSD 默認(rèn)會分配4GB 內(nèi)存;然而在恢復(fù)期間它們占用內(nèi)存比較大,通常內(nèi)存越多性能越好。
3.2.4 硬盤選型
OSD 應(yīng)該有足夠的空間用于存儲數(shù)據(jù),考慮到大硬盤的每GB成本,建議用容量大于1TB 的硬盤,用GB 數(shù)除以硬盤價格來計算每GB 成本,因為較大的硬盤通常會對每GB 成本有較大影響,每臺服務(wù)器的硬盤槽位有限,安裝大容量硬盤意味著每臺服務(wù)器可提供更大容量的空間來平攤服務(wù)器硬件、機柜、維護等成本,更加經(jīng)濟。
3.2.5 網(wǎng)絡(luò)設(shè)備選型
建議每node 最少兩個,甚至四個萬兆網(wǎng)卡,兩兩做bonding,增加帶寬、提升容災(zāi)效果?,F(xiàn)在大多數(shù)SSD 硬盤都能達(dá)到大概12Gbps 的吞吐量,網(wǎng)卡應(yīng)該能及時處理所有OSD 硬盤總吞吐量,所以推薦四個萬兆網(wǎng)卡,分別用于Public Network(前端)和Cluster Network(后端),兩個網(wǎng)絡(luò)最好用VLAN 或物理隔離,減少額外負(fù)載。
集群網(wǎng)絡(luò)(最好不要與互聯(lián)網(wǎng)連接)用于處理由數(shù)據(jù)復(fù)制產(chǎn)生的額外開銷,而且可防止拒絕服務(wù)攻擊,拒絕服務(wù)攻擊會干擾數(shù)據(jù)歸置組,使之在OSD 數(shù)據(jù)復(fù)制時不能回到active+clean 狀態(tài)。
(1)服務(wù)器的BIOS 設(shè)置中開啟CPU 的HT 特性;
(2)關(guān)閉CPU 的節(jié)能模式;
(3)關(guān)閉NUMA 特性。
4.2.1 Kernel PID Max
echo 4194303 >/proc/sys/kernel/pid_max
永久生效請修改/etc/sysctl.conf 文件read_ahead。
4.2.2 Read_ahead_kb
通過數(shù)據(jù)預(yù)讀并且記載到隨機訪問內(nèi)存方式提高磁盤讀操作。
echo "8192" >/sys/block/sd[x]/queue/read_ahead_kb
4.2.3 swappiness
主要控制系統(tǒng)對swap 的使用,這個參數(shù)的調(diào)整的原因主要是使用到swap 后會影響系統(tǒng)的性能。
echo "vm.swappiness=10" | tee -a/etc/sysctl.conf
4.2.4 I/O Scheduler
I/O Scheduler 的調(diào)整方法:SSD 用noop,SATA/SAS 使用deadline。
noop I/O 調(diào)度器實現(xiàn)了一個簡單的FIFO(First-In/First-Out)調(diào)度器。通過使用Last-Hit(最后命中)緩存,請求在通用塊層中被合并。對于使用快速存儲的計算密集型系統(tǒng)來說,這是最好的調(diào)度器。
deadline I/O 調(diào)度器替換了CFQ,后者原先是默認(rèn)I/O 調(diào)度器。deadline 調(diào)度器的好處是每個調(diào)度器通過使用單獨的IO 隊列,因此與寫相比,更利于讀。
Ceph 軟件的參數(shù)都記錄在ceph.conf 配置文件中,每次Ceph的服務(wù)進程,比如MON、OSD、MDS 啟動,都會首先讀取這個配置文件。這個文件分global、MON、OSD、MDS、Client 五部分。
(1)global。global為全局公共部分,參數(shù)定義全局有效。見表2。
(2)MON。見表3。
(3)OSD。OSD scrubbing(清理)設(shè)置:OSD scrubbing 對維護數(shù)據(jù)完整性來說是非常重要的,但是也會降低其性能??梢圆捎帽?配置來增加或減少scrubbing 操作。
(4)MDS。見表5。
(5)Client。定義的參數(shù)對所有連接Ceph 存儲系統(tǒng)的客戶端都生效。見表6。
(6)PG Number 計算。PG 和PGP 數(shù)量一定要根據(jù)OSD 的數(shù)量及副本數(shù)進行調(diào)整,計算公式如下,但是最后算出的結(jié)果一定要接近或者等于一個2 的指數(shù)。
Total PGs=(OSD * 100)/副本數(shù)
Ceph 的監(jiān)控可視化界面方案很多,如grafana、Kraken、cephdash 等。從Ceph Luminous 開始,Ceph 提供了原生的Dashboard 功能,通過Dashboard 可以獲取Ceph 集群的各種基本狀態(tài)信息,也可以用命令行方式進行查看。
命令行查看集群實時狀態(tài):
(1)查看Ceph 集群狀態(tài):
#ceph -s
(2)查看所有OSD 大小、使用量及狀態(tài)等信息:
#cephosddf
Dashboard:Dashboard 可以查看到整個集群的主機數(shù)、OSD 數(shù)量及各服務(wù)實時狀態(tài);性能指標(biāo)主要有IOPS 及Throughput 等提供集群實時的數(shù)據(jù)訪問情況;最后還有集群容量使用狀況,如容量緊張的話,需要及時增加Node 和OSD 來保證可用性。
Ceph 是一個分布式存儲、可擴展、高性能、不存在單節(jié)點故障的統(tǒng)一存儲解決方案,可以幫助企業(yè)擺脫昂貴的專屬硬件。作為全球最火熱的開源分布式存儲項目,當(dāng)前中國Ceph 應(yīng)用的形勢對比前幾年已經(jīng)發(fā)生了決定性的變化。隨著國內(nèi)越來越多各行業(yè)用戶的參與和使用,足以見證它的穩(wěn)定性和可靠性,盡早大規(guī)模應(yīng)用到各企業(yè)中去,從而減少對國外昂貴專用存儲的依賴,降低IC 研發(fā)企業(yè)投入成本。