QingStor?NeonSAN?是一款面向核心業(yè)務(wù)設(shè)計(jì)的全閃分布式塊存儲(chǔ),打破了傳統(tǒng)存儲(chǔ)的容量與水平擴(kuò)展的瓶頸,性能可以媲美全閃中高端存儲(chǔ)陣列,能夠很好支持?Oracle?RAC?等關(guān)鍵應(yīng)用,在金融、電力、廣電、制造、測(cè)繪等行業(yè)廣泛落地。
我們將在本文中揭開(kāi)?NeonSAN?架構(gòu)的神秘面紗,介紹她是如何做到高性能和高可靠的產(chǎn)品體驗(yàn),并在最后詳細(xì)分享一個(gè)典型案例:NeonSAN?替換?Oracle?一體機(jī),承載某大型保險(xiǎn)集團(tuán)?OLTP?和?OLAP?系統(tǒng),滿足數(shù)據(jù)不斷增長(zhǎng)的互聯(lián)網(wǎng)金融業(yè)務(wù)需求。
如下圖所示,目前業(yè)界基于全閃的存儲(chǔ)方案主要有以下三種:
因?yàn)閭鹘y(tǒng)的存儲(chǔ)誕生在機(jī)械盤(pán)的時(shí)代,是面向機(jī)械盤(pán)設(shè)計(jì)的,IOPS?通常在一百左右。而當(dāng)前主流?NVMe?SSD?的性能已經(jīng)達(dá)到百萬(wàn)?IOPS?級(jí)別。這兩類(lèi)存儲(chǔ)介質(zhì)的機(jī)制迥異。
受限于底層架構(gòu)的設(shè)計(jì),傳統(tǒng)存儲(chǔ)并沒(méi)有針對(duì)全閃進(jìn)行有效的軟件改造或者優(yōu)化,無(wú)法全部發(fā)揮?NVMe?SSD?的性能,此類(lèi)方案已經(jīng)不再適合承載高速閃存介質(zhì)。
全閃陣列的性能相比傳統(tǒng)方式有了很大提升。
但是,全閃陣列通常采用專(zhuān)有的硬件,成本高昂。另外,傳統(tǒng)陣列一般采用雙控制器互為備份,縱向擴(kuò)展無(wú)法提升性能,橫向擴(kuò)展受限于控制器的數(shù)量。這使得全閃陣列無(wú)法靈活適應(yīng)數(shù)據(jù)爆發(fā)增長(zhǎng)的業(yè)務(wù)場(chǎng)景。
分布式存儲(chǔ)是通過(guò)網(wǎng)絡(luò)將存儲(chǔ)節(jié)點(diǎn)聯(lián)系在一起,以集群的形式提供服務(wù)。
通常采用通用的?X86?硬件,使硬件標(biāo)準(zhǔn)化,可以降低?TCO。集群中每一個(gè)節(jié)點(diǎn)都具備存儲(chǔ)和計(jì)算能力,隨著節(jié)點(diǎn)的增加集群的容量和性能得到線性擴(kuò)展。無(wú)中心設(shè)計(jì)使集群不易形成瓶頸節(jié)點(diǎn),理論上可以無(wú)限擴(kuò)展。針對(duì)?NVMe?SSD?進(jìn)行特殊的設(shè)計(jì)和優(yōu)化,性能強(qiáng)勁。
另外,隨著?25G、100G?網(wǎng)絡(luò)的普及和?RDMA?網(wǎng)絡(luò)低延遲的特性,使得分布式全閃的跨節(jié)點(diǎn)擴(kuò)展不再是瓶頸。在全閃存和高速?RDMA?網(wǎng)絡(luò)的加持下,分布式全閃架構(gòu)已經(jīng)成為企業(yè)核心業(yè)務(wù)的理想之選。
關(guān)于?NeonSAN?名字的由來(lái):后半部分是?SAN?代表了產(chǎn)品的形態(tài);Neon?是元素周期表里面氖的代號(hào),是一種惰性氣體,具有極高的穩(wěn)定性。所以?NeonSAN?的名字寓意著這是一款穩(wěn)定的企業(yè)級(jí)存儲(chǔ)產(chǎn)品。
NeonSAN?核心模塊由數(shù)據(jù)層和控制層組成,此外包括前端接口與運(yùn)維管理工具層。
NeonSAN?核心模塊采用并行流水線技術(shù),設(shè)計(jì)了全閃存儲(chǔ)系統(tǒng)的資源調(diào)度系統(tǒng)、內(nèi)存管理系統(tǒng)、元數(shù)據(jù)管理系統(tǒng)、RDMA?網(wǎng)絡(luò)收發(fā)系統(tǒng)等,打造高可用、高可靠、高性能、擴(kuò)展靈活的全閃分布式存儲(chǔ)。
NeonSAN?提供?9?個(gè)?9?可靠性,單卷性能達(dá)到?10?萬(wàn)?IOPS,最小延遲小于?90?微秒。
在擴(kuò)展方面,NeonSAN?可以擴(kuò)至?4096?節(jié)點(diǎn),容量和性能隨節(jié)點(diǎn)的增加而線性增長(zhǎng)。?
NeonSAN?的基本架構(gòu)是由?Zookeeper?服務(wù)、元數(shù)據(jù)服務(wù)、管理服務(wù)、存儲(chǔ)服務(wù)和接入服務(wù)五部分構(gòu)成。
Zookeeper?提供集群的發(fā)現(xiàn)服務(wù);元數(shù)據(jù)服務(wù)用來(lái)記錄集群中的元數(shù)據(jù),如節(jié)點(diǎn)信息、SSD?的信息、卷信息等;
管理服務(wù)提供集群的管理功能,如節(jié)點(diǎn)的上線、創(chuàng)建卷等。
數(shù)據(jù)存儲(chǔ)服務(wù)用來(lái)給客戶提供具體的?I/O,承載業(yè)務(wù)發(fā)來(lái)的?I/O?請(qǐng)求。其采用對(duì)等的設(shè)計(jì),每個(gè)存儲(chǔ)節(jié)點(diǎn)的地位是相等的,都可以提供?I/O?服務(wù)。
對(duì)等設(shè)計(jì)可以保證集群的某一個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),其他節(jié)點(diǎn)能夠接替故障節(jié)點(diǎn)繼續(xù)服務(wù),保證業(yè)務(wù)的連續(xù)性,同時(shí)為集群的容量和性能線性擴(kuò)展提供基礎(chǔ)。
接入服務(wù),第一個(gè)模塊是?QBD?內(nèi)核驅(qū)動(dòng),在?Windows?Server?和?Linux?Server?上都有對(duì)應(yīng)的版本,它可以讓服務(wù)器以使用本地盤(pán)的方式使用?NeonSAN,上層業(yè)務(wù)不需要做任何改造就可以對(duì)接?NeonSAN,非常方便。
第二個(gè)模塊是?QEMU,可以為虛機(jī)提供云硬盤(pán)。
第三個(gè)模塊是通用的?iSCSI?接口,可以為?VMware?等虛擬化平臺(tái)提供存儲(chǔ)服務(wù)。
第四個(gè)模塊是?NVMe-oF?接口,提供端到端的高速數(shù)據(jù)傳輸服務(wù),具備非凡的性能。
此外,還提供?CSI?接口,為容器提供持久化的存儲(chǔ)服務(wù)。其支持提供克隆、快照、QoS、在線擴(kuò)容等高級(jí)功能。
NeonSAN?的網(wǎng)絡(luò)分為兩部分:前端業(yè)務(wù)網(wǎng)絡(luò)和后端互聯(lián)網(wǎng)絡(luò),采用兩個(gè)前端交換機(jī)和兩個(gè)后端交換機(jī),組建高可用網(wǎng)絡(luò)。
每個(gè)?NenonSAN?節(jié)點(diǎn)配備雙網(wǎng)卡,每張網(wǎng)卡有兩個(gè)網(wǎng)口,分別連接到后端交換機(jī)和前端交換機(jī)。
假如交換機(jī)?A?發(fā)生故障就會(huì)影響到?NeonSAN?1、2、3?節(jié)點(diǎn)的網(wǎng)卡?A,凡是通過(guò)這些網(wǎng)卡進(jìn)行交互的業(yè)務(wù)也會(huì)受到影響。此時(shí)?NeonSAN?節(jié)點(diǎn)就會(huì)自動(dòng)把網(wǎng)絡(luò)流量切換到網(wǎng)卡?B?上,走交換機(jī)?B,保證整個(gè)集群網(wǎng)絡(luò)的可用性。
NeonSAN?的數(shù)據(jù)可靠性及可用性是通過(guò)副本機(jī)制來(lái)實(shí)現(xiàn)的。
在?Linux?服務(wù)下看到塊設(shè)備,或者在?Windows?Server?下我們看到一張盤(pán),對(duì)應(yīng)到?NeonSAN?集群里,就會(huì)把這個(gè)盤(pán)切成一片片的?Shard。?
如上圖所示,有紅、黃、綠、紫這四個(gè)片,每一片都會(huì)有三副本,分別存放在不同的節(jié)點(diǎn)。任何一個(gè)節(jié)點(diǎn)上的數(shù)據(jù)損壞,都不會(huì)導(dǎo)致數(shù)據(jù)的丟失。
如果節(jié)點(diǎn)?1?不能提供服務(wù),節(jié)點(diǎn)?2?或?3?可以繼續(xù)提供服務(wù),保證整個(gè)集群的可用性。
NeonSAN?的數(shù)據(jù)寫(xiě)入是三個(gè)副本同時(shí)寫(xiě)入,保證數(shù)據(jù)間的強(qiáng)一致性。數(shù)據(jù)的讀取是從主副本讀的。數(shù)據(jù)的副本可以按卷進(jìn)行靈活的配置,在一個(gè)集群中既可以有單副本的卷,也可以有兩副本的卷,還可以有三副本的卷。
NeonSAN?支持精簡(jiǎn)置備和全置備,一個(gè)集群可以同時(shí)存在精簡(jiǎn)置備的卷和全置備的卷。
我們通過(guò)一個(gè)例子來(lái)介紹?NeonSAN?強(qiáng)一致性寫(xiě)過(guò)程中的?I/O?路徑。
首先,客戶端發(fā)?I/O?給三副本的主副本節(jié)點(diǎn),當(dāng)主副本節(jié)點(diǎn)收到?I/O?請(qǐng)求后會(huì)同時(shí)做兩件事:將?I/O?請(qǐng)求發(fā)給它本地的?SSD,同時(shí)也會(huì)把這個(gè)請(qǐng)求發(fā)給兩個(gè)從副本。當(dāng)兩個(gè)從副本?I/O?完成以及本地的?I/O?同時(shí)完成后才會(huì)返回給客戶端寫(xiě)成功,實(shí)現(xiàn)強(qiáng)一致三副本的寫(xiě)入。
NeonSAN?是一個(gè)面向全閃的分布式存儲(chǔ)系統(tǒng),針對(duì)全閃有哪些特殊的設(shè)計(jì)??
首先,?NeonSAN?采用了極短?I/O?路徑,這是可以提供卓越性能的根本。
NeonSAN?只要?3?步就可以完成一個(gè)?I/O,當(dāng)客戶端的?I/O?發(fā)到存儲(chǔ)節(jié)點(diǎn)后,存儲(chǔ)軟件做完處理后直接發(fā)給本地的?SSD。
業(yè)界某些分布式存儲(chǔ),比如?Ceph,卻要經(jīng)歷很多步驟:先經(jīng)過(guò)存儲(chǔ)軟件的處理,再發(fā)給本地文件系統(tǒng),還要寫(xiě)日志,某些系統(tǒng)還需要再經(jīng)過(guò)緩存,最后才能落到?SSD,這個(gè)?I/O?路徑是非常長(zhǎng)的。簡(jiǎn)單來(lái)說(shuō)就是很慢。
NeonSAN?采用自研?SSD?管理模塊直接管理本地裸設(shè)備,不依賴(lài)本地的文件系統(tǒng),不需要日志,也不需要?Cache,極大精簡(jiǎn)了?I/O?路徑,從而讓延遲減少到最低,接近于?SSD?延遲的量級(jí)。
傳統(tǒng)機(jī)械盤(pán)只有?1?個(gè)隊(duì)列,深度是?32,NVMe?SSD?一般盤(pán)有?128?個(gè)隊(duì)列,每個(gè)隊(duì)列的深度是?128,還采用傳統(tǒng)的軟件設(shè)計(jì),顯然?NVMe?是處于饑餓的狀態(tài),無(wú)法發(fā)揮隊(duì)列和深度優(yōu)勢(shì)。
NeonSAN?采用并行流水線,將?I/O?進(jìn)行拆分,拆分成接收、調(diào)度和落盤(pán)。
舉個(gè)例子,在機(jī)械盤(pán)的年代就像超市只有?1?個(gè)收銀臺(tái),只能排?1?隊(duì)。但是到了?NVMe?SSD?時(shí)代,超市有?128?個(gè)收銀臺(tái)。如果我們還排?1?隊(duì)就對(duì)資源造成極大的浪費(fèi),所以需要采用多個(gè)隊(duì)列并行?I/O,充分發(fā)揮?NVMe?SSD?本身的性能,提升?SSD?的使用率。
在微秒的?SSD?時(shí)代,操作系統(tǒng)逐漸暴露出一些問(wèn)題。比如低效?CPU?核心調(diào)度和內(nèi)存資源的競(jìng)爭(zhēng),以及調(diào)度時(shí)的切換等帶來(lái)了巨大的延遲。
在高并發(fā)的壓力下,多核心?CPU?的競(jìng)爭(zhēng)與不合理的調(diào)度成為性能的瓶頸。NeonSAN?專(zhuān)門(mén)設(shè)計(jì)了資源調(diào)度引擎,避免由于調(diào)度問(wèn)題和內(nèi)存爭(zhēng)搶問(wèn)題帶來(lái)的延遲開(kāi)銷(xiāo)。
首先,在網(wǎng)卡上我們分配專(zhuān)門(mén)的接收與解析?I/O?流水線,針對(duì)?I/O?調(diào)度流水線我們給它分配了獨(dú)享的?CPU,避免調(diào)度流水線來(lái)回切換產(chǎn)生不必要的上下文開(kāi)銷(xiāo),做到特定的?CPU?服務(wù)專(zhuān)門(mén)的流水線。
在內(nèi)存方面,在系統(tǒng)軟件啟動(dòng)時(shí)一次申請(qǐng)所需內(nèi)存,根據(jù)不同流水線需求的多少按需分配給接收與解析?I/O?調(diào)度、數(shù)據(jù)落盤(pán)等流水線,避免在?I/O?過(guò)程中頻繁申請(qǐng)與釋放,帶來(lái)的訪問(wèn)頁(yè)表、內(nèi)存鎖等額外開(kāi)銷(xiāo)及內(nèi)存碎片問(wèn)題。
資源調(diào)度引擎保障了?NeonSAN?在獲得高效?I/O?的同時(shí)將延遲控制在很低的水平。?
分布式存儲(chǔ)是依賴(lài)于網(wǎng)絡(luò)的。NeonSAN?將業(yè)務(wù)與數(shù)據(jù)網(wǎng)絡(luò)分離,存儲(chǔ)網(wǎng)絡(luò)中的?I/O?不會(huì)對(duì)業(yè)務(wù)網(wǎng)絡(luò)造成壓力,避免資源的競(jìng)爭(zhēng)。
NeonSAN?采用端到端的?RDMA?網(wǎng)絡(luò)設(shè)計(jì),無(wú)論是存儲(chǔ)內(nèi)部節(jié)點(diǎn)之間還是存儲(chǔ)服務(wù)和客戶端之間都采用了?RDMA?網(wǎng)絡(luò)。
RDMA?網(wǎng)絡(luò)的內(nèi)核旁路(kernel?bypass)與零拷貝的特點(diǎn)讓網(wǎng)絡(luò)中的單個(gè)?I/O?延遲變得非常低,基于異步的消息機(jī)制能讓多個(gè)?I/O?的并發(fā)顯得效率更高。
上面介紹了?NeonSAN?的基本架構(gòu)與面向全閃的特殊設(shè)計(jì),接下來(lái)看看?NeonSAN?的真實(shí)性能表現(xiàn)。
從?E?企研究院的測(cè)試結(jié)果可以看到:在兩個(gè)客戶端壓力下,隨著卷數(shù)量的增加,NeonSAN?集群提供的性能線性增長(zhǎng),延遲幾乎不變。
以?4K?寫(xiě)為例,單個(gè)卷的?IOPS?是?13?萬(wàn)多,4?個(gè)卷的?IOPS?增加到?47?萬(wàn),接近線性增長(zhǎng);單個(gè)卷的延遲是?0.943?毫秒,4?個(gè)卷的延遲基本沒(méi)什么變化。
在采用分布式架構(gòu)之前,用戶采用?Oracle?SuperCluster?Solaris?平臺(tái),采購(gòu)與維保費(fèi)用昂貴,且擴(kuò)容復(fù)雜,無(wú)法快速適應(yīng)業(yè)務(wù)發(fā)展的需求。
于是客戶把視角轉(zhuǎn)到了基于?X86?計(jì)算與存儲(chǔ)分離的分布式架構(gòu),采用三節(jié)點(diǎn)全閃配置的?NeonSAN?作為存儲(chǔ)節(jié)點(diǎn),配置三副本用于?Oracle?數(shù)據(jù)庫(kù)存儲(chǔ)卷。
截止2020年底,用戶已經(jīng)完成了數(shù)次擴(kuò)容,NeonSAN?整體規(guī)模已經(jīng)達(dá)到了幾十個(gè)節(jié)點(diǎn),承載?OLTP?和?OLAP?業(yè)務(wù),滿足數(shù)據(jù)不斷增長(zhǎng)的互聯(lián)網(wǎng)金融業(yè)務(wù)需求。
NeonSAN?分布式存儲(chǔ)方案的優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面:
首先,采用計(jì)算與存儲(chǔ)分離的全分布式架構(gòu)后,海量的數(shù)據(jù)壓力分散到了多個(gè)并發(fā)存儲(chǔ)節(jié)點(diǎn),系統(tǒng)性能、吞吐量按照線性擴(kuò)展。
其次,全閃的存儲(chǔ)節(jié)點(diǎn)之間采用?RDMA?互聯(lián),性能提升?100%?以上,存儲(chǔ)系統(tǒng)提供負(fù)載均衡機(jī)制,有效避免單點(diǎn)性能瓶頸。
通過(guò)開(kāi)放的?X86?平臺(tái)取代了傳統(tǒng)數(shù)據(jù)庫(kù)一體機(jī)與集中式存儲(chǔ)設(shè)備,大幅縮短了存儲(chǔ)系統(tǒng)的建設(shè)與擴(kuò)容周期,有效滿足業(yè)務(wù)數(shù)據(jù)量激增的擴(kuò)容需求,同時(shí)大幅度節(jié)省采購(gòu)、維護(hù)與運(yùn)營(yíng)成本。
NeonSAN?針對(duì)全閃等新型存儲(chǔ)介質(zhì)進(jìn)行的架構(gòu)設(shè)計(jì),能夠提供高可靠、高可用,性能卓越的存儲(chǔ)服務(wù),其豐富的接口,可以承載數(shù)據(jù)庫(kù)等傳統(tǒng)應(yīng)用,原生適配虛擬化、大數(shù)據(jù)、容器等多種應(yīng)用生態(tài),服務(wù)云時(shí)代高效的數(shù)據(jù)存儲(chǔ)和管理,
NeonSAN?具備豐富的企業(yè)級(jí)特性,基于同步及異步的數(shù)據(jù)復(fù)制可以靈活構(gòu)建各類(lèi)災(zāi)備和雙活解決方案。經(jīng)過(guò)大量企業(yè)客戶核心業(yè)務(wù)的長(zhǎng)期驗(yàn)證,NeonSAN?是一款真正可以承載企業(yè)核心業(yè)務(wù)的全閃分布式存儲(chǔ)產(chǎn)品。
您的電子郵件地址不會(huì)被公開(kāi),必填項(xiàng)已用 * 標(biāo)注。
提交評(píng)論
Δ
? ? ? ? ? ? ? ?Copyright 2020-2026 同袍存儲(chǔ) 粵ICP備2021121885號(hào)網(wǎng)站地圖