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