企業(yè)云存儲日常運行維護(hù)實踐經(jīng)驗分享
1 現(xiàn)狀及需求
隨著業(yè)務(wù)規(guī)模的不斷發(fā)展,監(jiān)管力度的不斷加強(qiáng),保護(hù)消費者法的不斷完善,應(yīng)用系統(tǒng)每時每刻產(chǎn)生日志數(shù)據(jù)、業(yè)務(wù)影像數(shù)據(jù)、歷史數(shù)據(jù)都在海量增長,都有可能夠成為爭議交易的佐證證據(jù),且這些日志種類繁雜,格式多樣,散落在生產(chǎn)系統(tǒng)的各個角落,往往只有在出現(xiàn)問題時才會到海量日志中去查找和分析,這些信息可以對系統(tǒng)的優(yōu)化、運維以及運營帶來重要的決策參考,所以建設(shè)一套可供上述數(shù)據(jù)永久存放的存儲,并在相當(dāng)長的一段時間內(nèi)維護(hù)得當(dāng),隨時能夠滿足查詢需求,已經(jīng)變得尤為重要。
銀行的上述非結(jié)構(gòu)化數(shù)據(jù)種類繁多,用途各有不同,雖然制定了大部分?jǐn)?shù)據(jù)的清理策略,但是在歸檔后,因為各種原因查詢緩慢,人力投入過大,更加不能得到充分的分析及應(yīng)用。究其原因有兩點,一是日志格式多樣且繁雜散亂,日志的分析存在一些難點和問題;二是日志數(shù)據(jù)量巨大,傳統(tǒng)存儲架構(gòu)無法支撐海量數(shù)據(jù)。
尤其對于數(shù)百TB的日志類數(shù)據(jù),龐大的數(shù)據(jù)量不僅增大了運維人員的監(jiān)管和分析的難度,使得日志類數(shù)據(jù)的價值更加難以挖掘,而且傳統(tǒng)的數(shù)據(jù)存儲方式已經(jīng)不能滿足海量交易類日志數(shù)據(jù)對于安全性、可靠性和擴(kuò)展性的要求,急需一個合適的統(tǒng)一歷史數(shù)據(jù)管理與存儲方案,用作數(shù)據(jù)的集中管理、輔助監(jiān)控和分析以及交易類歷史日志數(shù)據(jù)長期歸檔存放。
存儲不僅要滿足現(xiàn)在應(yīng)用的需求,同時也要為未來數(shù)據(jù)增長提供良好的可擴(kuò)展性,隨著銀行業(yè)務(wù)的數(shù)據(jù)量爆發(fā)式的增長,如票據(jù)影像、日志數(shù)據(jù)、數(shù)據(jù)庫歸檔數(shù)據(jù)等,同時生成部分應(yīng)用對數(shù)據(jù)的要求全天候訪問,現(xiàn)有的存儲基礎(chǔ)架構(gòu)顯得有些力不從心,系統(tǒng)管理復(fù)雜、運營成本不斷上升,存儲設(shè)施面臨著多重挑戰(zhàn)。
私有云的存儲方案在為未來業(yè)務(wù)發(fā)展提高強(qiáng)大的可擴(kuò)展能力和服務(wù)能力,同時能夠有效提升海量數(shù)據(jù)的可管理性、可靠性以及可用性。通過增加集群規(guī)模,容量和性能能夠同步提升,能夠很好地滿足銀行業(yè)務(wù)發(fā)展的需求。
2 在上述場景中傳統(tǒng)存儲的缺陷
1) 擴(kuò)展能力不足:不能進(jìn)行靈活的擴(kuò)展以滿足快速變化的業(yè)務(wù)需求,缺乏可擴(kuò)展性或大規(guī)模文件處理能力,且容易在管理不善的情況下造成數(shù)據(jù)孤島,查詢起來非常繁雜。
2) 數(shù)據(jù)可靠性:存儲數(shù)據(jù)的來源越來越多樣化,對數(shù)據(jù)可靠性提出更高的要求,在滿足數(shù)據(jù)可靠性的同時,還需要平衡硬盤利用率,避免犧牲大量的存儲空間(原始數(shù)據(jù)幾倍的存儲空間)來滿足數(shù)據(jù)可靠性要求,傳統(tǒng)存儲一直使用一個資源池,不利于長期保存。
3) 系統(tǒng)性能瓶頸:傳統(tǒng)集中式存儲Scale-up架構(gòu)的性能無法線性增長,面臨海量數(shù)據(jù)的高帶寬要求時,往往無法快速響應(yīng)應(yīng)用的讀寫請求,尤其是大文件和海量小碎文件讀寫。
4) 管理維護(hù)難度大:隨著應(yīng)用不斷發(fā)展,現(xiàn)有的數(shù)據(jù)規(guī)模已經(jīng)超出原有平臺管理的峰值,存儲設(shè)備的增多帶來維護(hù)成本居高不下,多套存儲系統(tǒng)空間不能共用,管理復(fù)雜,需要多個IT管理人員維護(hù)多套不同的存儲設(shè)備和網(wǎng)絡(luò),總體成本急劇上升。
3 云上存儲具備的能力
1) 線性擴(kuò)展能力:系統(tǒng)應(yīng)具有良好的拓展能力,最大可擴(kuò)展容量應(yīng)能達(dá)到數(shù)十PB以上,同時性能隨容量的提升線性增加,確保整套系統(tǒng)隨容量增長不出現(xiàn)性能瓶頸,整套系統(tǒng)的擴(kuò)展能力應(yīng)能滿足未來3-5年數(shù)據(jù)增長和長期歸檔的需求。
2) 高可靠性:系統(tǒng)應(yīng)保證有充分的冗余,在部分硬盤或節(jié)點損壞時系統(tǒng)能夠自動恢復(fù)而不影響業(yè)務(wù)運行,同時應(yīng)保證系統(tǒng)在7*24的高負(fù)荷環(huán)境中依然有良好的安全可靠性。
3) 易維護(hù)性:系統(tǒng)的運維管理應(yīng)盡量簡單,采用可視化圖形界面對整套系統(tǒng)進(jìn)行監(jiān)控維護(hù),一旦發(fā)生故障應(yīng)能主動告警,并迅速定位故障點,硬件部署安裝也應(yīng)簡便,方便以后進(jìn)行系統(tǒng)擴(kuò)容和節(jié)點替換。
4) 提供的存儲服務(wù):從日志檢索這個出發(fā)點,經(jīng)過時間的積累,必然會走向分析、告警、預(yù)測,而從需求反推支撐功能的實現(xiàn),平臺必須在如下方面進(jìn)行考慮:能夠準(zhǔn)確查詢?nèi)罩?,支持便捷使用,可以真正用起來,除滿足日常歸檔存儲的功能外,應(yīng)該具備對象存儲功能,對外提供對象存儲接口,一般對象存儲服務(wù)提供了2套標(biāo)準(zhǔn)接口,分別符合Amazon S3和Openstack Swift規(guī)范;從影像數(shù)據(jù)存儲需求出發(fā),也可以通過對象存儲完成存儲與查詢,但是因為要變更應(yīng)用接口,不適用于所有應(yīng)用,所以仍然需要提供NAS存儲服務(wù),在訪問安全方面可通過設(shè)置NFS、CIFS、FTP及私有客戶端四種共享的權(quán)限來限制訪問的用戶;從歷史結(jié)構(gòu)化數(shù)據(jù)存儲以及備份介質(zhì)的需求出發(fā),塊數(shù)據(jù)功能可以滿足此種服務(wù)需求。從存儲系統(tǒng)的業(yè)務(wù)供給能力角度看,不同存儲系統(tǒng)可以提供塊存儲、對象存儲、文件存儲等不同類型的存儲服務(wù)。假如用戶有多種需求,就需要購買不同類型的存儲系統(tǒng)。分布式融合存儲系統(tǒng)可提供塊、對象、文件與大數(shù)據(jù)等多種不同的存儲接口,提供多種不同的存儲服務(wù),從而達(dá)到統(tǒng)一存儲的特性,降低多種存儲系統(tǒng)帶來的運維復(fù)雜度,提高存儲資源利用率,節(jié)省機(jī)房空間。
4 日常維護(hù)
云存儲的日常維護(hù),必須考慮建設(shè)階段的策略選擇,例如可靠性、性能、擴(kuò)展能力等,只有在建設(shè)階段選擇了適當(dāng)?shù)牟呗?,日常運維中才能做到從容不迫。
1) 高可靠?
對于大容量的私有云存儲,糾刪碼技術(shù)和多副本相比更加適用,糾刪碼技術(shù)以同樣的初始容量存儲更多的數(shù)據(jù),磁盤利用率更高,從而大大降低了成本。舉例來說,3副本的利用率是1/3;而k+m糾刪碼的利用率是k/(k+m),如8+2的利用率是8/10。
2) 高性能?
面對歷史數(shù)據(jù)歸檔場景的云上存儲,對使用者來說,存儲系統(tǒng)的性能體現(xiàn)在兩個方面:一個是從客戶端角度看,客戶端可以從系統(tǒng)獲得的性能;一個是從存儲集群的角度看,存儲集群的供給能力。
從客戶端角度看,集群中的文件或LUN會根據(jù)特有算法偽隨機(jī)地分散在集群的所有磁盤。這個分布是通過集群自動完成,無需手動配置。由于每個文件或LUN可以使用整個集群的磁盤性能,因此整個集群能夠提供更高的性能。在云上存儲集群中,通過分析將要存放的文件類型,調(diào)整存儲塊的大小,也是非常有必要的,默認(rèn)存儲對象的大小是4M(可配置),比如一個1GB大小的文件或LUN,會被劃分成256個對象,這些對象分散在不同的OSD上。這樣在讀寫文件時,就會充分利用集群的整體性能,提升IOPS和吞吐率。
存儲集群的性能取決于兩方面:一方面是單節(jié)點的能力,另一方面是系統(tǒng)的擴(kuò)展能力。如前所述,云上存儲系統(tǒng)的性能可以隨節(jié)點的規(guī)模而線性擴(kuò)展。對于單節(jié)點的能力,云上存儲在系統(tǒng)設(shè)計和硬件配置方便實現(xiàn)了足夠的靈活性,從而可以表現(xiàn)出良好的性能。
對于歷史數(shù)據(jù)查閱的頻繁度,可以簡單區(qū)分一下所使用的硬盤資源池。對傳統(tǒng)HDD來說,受尋道能力的限制,單盤的隨機(jī)讀寫能力一般不超過200個IOPS。SSD的出現(xiàn),使得在IOPS上的能力相比于HDD有了成倍的提升,甚至是數(shù)量級的提升。在SSD+HDD混合組網(wǎng)模式下,云上存儲系統(tǒng)既可以將SSD作為緩存使用,也可以將SSD和HDD放到不同的存儲池做分層存儲使用。在此情況下可以發(fā)揮SSD 的IOPS和帶寬的優(yōu)勢,又可以發(fā)揮HDD的容量和價格優(yōu)勢。
3) 高擴(kuò)展?
集群的線性擴(kuò)展能力,主要體現(xiàn)在兩個方面:一個是集群部署規(guī)??梢跃€性擴(kuò)展,另一個方面,隨集群規(guī)模的擴(kuò)展,其性能要能夠線性或近似線性擴(kuò)展,隨著服務(wù)器使用年限的增長,不斷將重要歷史數(shù)據(jù)遷移到新的資源池也是一個較為重要的需求。
在規(guī)模上,傳統(tǒng)存儲之所以在擴(kuò)展能力上受限,一個很重要的原因就是一般其采用集中式控制,并且在控制節(jié)點存儲大量的元數(shù)據(jù)信息,從而使控制節(jié)點容易成為系統(tǒng)的瓶頸。對于云上系統(tǒng), 客戶端節(jié)點通過特有算法可以直接計算出數(shù)據(jù)的存儲位置,從而對OSD進(jìn)行直接讀寫,完全是分布式并行的;而其元數(shù)據(jù),也就是集群視圖,是輕量級數(shù)據(jù),而且其更新的頻率較低。這種架構(gòu)就在理論上保證了云上存儲具備線性擴(kuò)展能力。
在性能上,根據(jù)集群的分布式架構(gòu),客戶端的讀寫數(shù)據(jù)最終會被打散,均勻分布到各OSD上,從而集群整體的吞吐率是各節(jié)點能力的總和,即集群的性能隨節(jié)點數(shù)量的增加而線性增加。
5 通過云上存儲提供的功能簡化運維操作
云上存儲為了簡化管理運維應(yīng)該具備大量自動化運維工具:
1) 集群快速部署及增減節(jié)點
包括批量部署、單節(jié)點增減、單磁盤增減等。從部署上來說云上存儲系統(tǒng)可以根據(jù)用戶需求靈活地部署Monitor節(jié)點和Client節(jié)點。一方面,這些節(jié)點既可以部署在單獨的物理服務(wù)器上,也可以部署在和OSD相同的物理節(jié)點上。另一方面,Monitor和Client的節(jié)點可以根據(jù)用戶的需求靈活地調(diào)整。比如為了可靠性保證,至少需要部署3個Monitor節(jié)點;在增刪存儲介質(zhì),或存儲介質(zhì)發(fā)生故障時,系統(tǒng)會及時進(jìn)行檢測。比如,在磁盤發(fā)生故障時,分布式融合存儲會利用損壞數(shù)據(jù)在其他存儲體上的副本進(jìn)行復(fù)制,并將復(fù)制的數(shù)據(jù)保存在健康的存儲體上;在增加磁盤時,同樣會把其他存儲體的數(shù)據(jù)安排容量比例重新分布到新磁盤,使集群的數(shù)據(jù)達(dá)到均衡。在上述過程中,雖然完全不需要人工干預(yù),但是仍然需要依靠人工巡檢保證系統(tǒng)運轉(zhuǎn)狀態(tài)正常。
2) 系統(tǒng)監(jiān)控報警
發(fā)生故障時能快速界定問題、排查故障,除系統(tǒng)本身的監(jiān)控外,因為存儲分布式架構(gòu),最好額外增加針對硬件級別的監(jiān)控。
3) 自定義分布策略
允許定制數(shù)據(jù)分布策略,方便地進(jìn)行冷熱數(shù)據(jù)分離、故障域隔離,以及對數(shù)據(jù)存儲位置進(jìn)行靈活選擇。比如在選用副本策略時,用戶可能希望不同數(shù)據(jù)副本存儲在不同機(jī)架上面的主機(jī)上;或者主副本存儲在某個機(jī)架的主機(jī)上,其它副本存儲在另外機(jī)架的主機(jī)上;此類需求可以靈活調(diào)整故障域和保護(hù)域策略,已滿足需求。
4) 重構(gòu)自動Qos
在系統(tǒng)平衡數(shù)據(jù)(例如系統(tǒng)擴(kuò)容或者存儲節(jié)點、磁盤發(fā)生故障)的過程中,為保證用戶IO,云上存儲系統(tǒng)支持IO優(yōu)先級控制和Qos保證能力。我們知道,在系統(tǒng)擴(kuò)容或者存儲節(jié)點、磁盤故障過程中,為保證數(shù)據(jù)的可靠性,系統(tǒng)會自動進(jìn)行數(shù)據(jù)平衡。為了盡快完成數(shù)據(jù)平衡,往往會占滿每個存儲節(jié)點的帶寬和IO能力,這樣做的好處是會使平衡時間最短,壞處是此時前端用戶的IO請求會得不到滿足。在日常業(yè)務(wù)系統(tǒng)正常運行的場景下,我們是無法接受這種狀況的。為此,云上存儲系統(tǒng)實現(xiàn)了IO優(yōu)先級和Qos控制機(jī)制,可以根據(jù)我們?nèi)粘5木W(wǎng)絡(luò)流量和后端存儲網(wǎng)絡(luò)流量進(jìn)行控制,保證一定比例IO得到滿足。?