【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

簡介: 當前 NVMe 雲盤結合了業界最先進的軟硬件技術,在雲存儲市場,首創性同時實現了 NVMe 協議 + 共享拜訪 + IO Fencing 技術。它在 ESSD 之上獲得了高可靠、高可用、高性能,同時基於 NVMe 協議實現了豐富的企業特性,如多重掛載、IO Fencing、加密、離線擴容、原生快照、異步復制等功能。本文詳細介紹了雲上SAN和NVMe的發展歷程,並做出了對未來的構想

7×24 高可用是怎樣煉成的?

現實世界中單點故障是常態,確保故障下業務延續性是高可用系統的核心能力,那麼在金融、保險、政務等關鍵應用中,如何保證業務 7*24 高可用?通常來講,業務系統由計算、網路、存儲組成,在雲上,網路多路徑和存儲分布式確保了穩定高可用,但要實現業務全鏈路高可用,還要解決計算和業務側單點故障。以常見的資料庫為例,單點故障導致業務停止對於用戶難以接受,那麼,當斷電、宕機、硬件故障等導致實例不可服務時,如何快速恢復業務?

不同場景的解決方案有所不同,MySQL 通常搭建主從/主備架構實現業務高可用,主庫故障時切換到備庫持續對外提供服務。但實例切換後,如何保證主從庫數據的一致性?根據業務對數據丟失的容忍度,MySQL 通常採用同步或異步方式進行數據復制,由此引入額外的問題:部分場景下導致數據缺失、同步數據影響系統性能、業務擴容要新增整套設備並進行全量數據復制、主備切換時間較長影響業務延續性等。可以看到,為了搭建高可用系統,架構將變得龐雜,且很難兼顧可用性、可靠性、擴展性、成本、性能等,那麼是否有更加先進的方案,兼得魚和熊掌?答案必須是:Yes!

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第1張圖1:資料庫的高可用架構

通過共享存儲,不同資料庫實例間可共享同一份數據,從而通過計算實例的快速切換獲得高可用(圖1),Oracle RAC、AWS Aurora、阿裡雲 PolarDB 資料庫就是其中的代表。這裡的關鍵在於共享存儲,傳統 SAN 價格高昂,擴縮容麻煩,機頭也容易成為瓶頸,其使用門檻較高對用戶並不友好,有沒有更好、更快、更省的共享存儲,來解決用戶的痛點呢?阿裡雲最近推出的 NVMe 雲盤和共享特性,將充分滿足用戶的訴求,接下來我們將重點介紹。這裡給大家拋出一個問題,在實例切換過後,如果原庫仍在寫入數據,如何保證數據正確性?賣個關子,讀者可以先思考下。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第2張圖2:主從切換場景的數據正確性問題

歷史前進的車輪:雲上 SAN 和NVMe

我們已步入「數據石油」的數字經濟時代,雲計算、人工智慧、物聯網、5G 等技術的快速發展,促使數據的爆炸式增長。從 IDC 2020 年報告可以看出,全球數據規模逐年增長,2025 年將達到 175 ZB,數據將主要集中在公共雲和企業數據中心。數據的快速增長,為存儲的發展提供了新的動力和要求,讓我們回憶下塊存儲形態是如何一步步演進的。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第3張圖3:塊存儲形態演進

DAS:存儲設備採用直連方式(SCSI、SAS、FC 等協議)與主機連接,系統簡單、易於配置管理、費用較低,由於存儲資源無法被充分利用和共享,難以做到集中統⼀的管理和維護。

SAN:通過專用網路連接存儲陣列和業務主機,解決了統一管理和數據共享等問題,並實現高性能低延遲的數據拜訪,不過 SAN 存儲價格昂貴、運維龐雜、可擴展性差,提高了用戶的使用門檻。

全閃:底層存儲介質的革命和成本的下降,標誌著全閃存時代的到來,從此存儲性能轉移到軟體棧,迫使軟體進行大規模的變革,促進了用戶態協議、軟硬一體化、RDMA 等技術的高速發展,帶來了存儲性能的飛越。

雲盤:雲計算的高速發展歷程中,存儲轉移到雲上,雲盤具有天生的優點:靈活、彈性、易用、易擴展、高可靠、大容量、低成本、免運維等,在數字化轉型歷程中成為存儲堅實的底座。

雲上 SAN:為全方面支持存儲業務,取代傳統的 SAN 存儲,雲上 SAN 應時代而生,它繼承了雲盤的諸多優勢,也具備了傳統 SAN 存儲能力,包括共享存儲、數據保護、同步/異步復制、極速快照等特性,必將在企業存儲市場持續發光發熱。

另一端,在存儲協議的演進上,NVMe 正在成為新時代的寵兒。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第4張圖4:存儲協議的演進

SCSI/SATA:存儲遠古時代,硬碟多為低速設備,數據經過 SCSI 層和 SATA 總線傳輸數據,性能受限於存儲慢速介質,如機械硬碟,掩蓋了 SATA 單通道和 SCSI 軟體層的性能劣勢。

VirtIO-BLK/VirtIO-SCSI:伴隨著虛擬化技術和雲計算的快速發展,VirtIO-BLK/VirtIO-SCSI 逐漸成為雲計算的主流存儲協議,使得存儲資源的使用更加彈性、敏捷、安全、可擴展。

NVMe/NVMe-oF:閃存技術的發展和普及推進了新一代存儲技術革命,當存儲介質不再成為性能的攔路虎,軟體棧成為了最大的瓶頸,由此催生了 NVMe/NVMe-oF、DPDK/SPDK、用戶態網路等各種高性能輕量級協議,NVMe 協議族兼具高性能、高級特性和高擴展性,必將引領雲計算新時代。

在可遇見的未來,雲上 SAN 和 NVMe 必將成為未來的潮流,這是大勢所趨。

雲盤新時代之 NVMe

閃存技術的迅速發展和普及,將性能瓶頸轉移到軟體側,對於存儲性能和功能的更多需求,將 NVMe 推上了歷史舞臺。NVMe 專門針對高性能設備設計了數據拜訪協議,相比傳統的 SCSI 協議,更加簡捷輕量,配合多隊列技術,能大幅度提升存儲性能。同時 NVMe 還提供了豐富的存儲特性,NVMe 標準自 2011 年誕生以來,通過不斷完善協議,規范了多 Namespace、Multi-Path、全鏈路數據保護 T10-DIF、Persistent Revervation 權限控制協議、原子寫等眾多高級功能,其定義的存儲新特性將持續幫助用戶創造價值。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第5張圖5:阿裡雲 NVMe 雲盤

NVMe 的高性能和豐富特性,為企業存儲提供了堅實的基礎,加上協議本身具備的擴展性和成長性,成為演進 NVMe 雲盤的核心動力。NVMe 雲盤以 ESSD 為基礎,它繼承了 ESSD 的高可靠、高可用、高性能、原子寫等能力,以及 ESSD 原生快照數據保護、跨域容災、加密、秒級性能變配等企業特性,ESSD 和 NVMe 特性的融合,能有效的滿足企業級應用需求,使大部分基於 NVMe 和 SCSI 的業務無縫上雲。本文講述的共享存儲技術就是基於NVMe Persistent Reservation 標準實現,作為 NVMe 雲盤的附加功能之一,其多重掛載和 IO Fencing 技術,可以幫助用戶大幅降低存儲成本,並有效提升業務靈活性和數據可靠性,在分布式業務場景具有廣泛的應用,特別對於 Oracle RAC、SAP Hana 等高可用資料庫系統具有重要價值。

企業存儲利器:共享存儲

前面講到,共享存儲可以有效地解決資料庫高可用問題,其主要依賴的能力包括多重掛載和 IO Fencing,以資料庫為例,我們將講述它們是如何發揮作用的。

業務高可用關鍵 — 多重掛載

多重掛載允許雲盤被同時掛載到多臺 ECS 實例上(當前最大支持 16),所有實例均可讀寫拜訪該雲盤(圖6)。通過多重掛載,多個節點間共享同一份數據,能有效地降低存儲成本。當單節點發生故障時,業務可以迅速切換到健康節點,該過程無需進行數據復制,為故障快速恢復提供了原子能力,如 Oracle RAC、SAP HANA 等高可用資料庫均依賴該特性實現。需要留意的是,共享存儲提供了數據層的一致性和恢復能力,若要達到最終業務一致性,業務可能需要進行額外處理,如資料庫的日志 replay 等。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第6張圖6:多實例掛載

通常,單機文件系統不適合作為多重掛載的文件系統,為了加速文件拜訪,ext4 等文件系統會對數據和元數據進行緩存,對於文件的修改資訊無法及時同步到其他節點,從而導致多節點間數據的不一致。元數據的不同步,也會導致節點間對硬碟空間拜訪的沖突,從而引入數據錯。所以,多重掛載通常要配合集群文件系統使用,常見的有 OCFS2、GFS2、GPFS、Veritas CFS、Oracle ACFS 等,阿裡雲 DBFS、PolarFS 也具備該能力。

有了多重掛載,是否就可以高枕無憂了?多重掛載並非萬能,它有自身無法解決的盲點:權限管理。通常基於多重掛載的應用需要依賴集群管理系統來管理權限,如 Linux Pacemaker 等,但在某些場景下,權限管理會失效從而導致嚴重問題。回憶下文章最開始拋出的問題,在高可用架構下,主實例發生異常後會切換到備實例,如果主實例處於假死狀態(如網路分區、硬件故障等場景),它會錯誤地認為自己擁有寫入權限,從而和備實例一起寫臟數據,如何規避該風險? 此時該輪到 IO Fencing 出場了。

數據正確性保證 — IO Fencing

解決臟數據寫入的可選方案之一是:終止原實例的在途請求,並拒絕新請求繼續下發,確保舊數據不再寫入後切換實例。基於該思路,傳統的解決方案是 STONITH(shoot the other node in the head),即通過遠程重啟該故障機器來防止舊數據落盤。不過該方案存在兩個問題,首先,重啟流程過長,業務切換較慢,通常會導致幾十秒到分鐘級的業務停止。更嚴重的是,由於雲上 IO 路徑較長,涉及組件較多,計算實例的組件故障(如硬件、網路故障等)都有幾率導致 IO 在短時間內無法恢復,所以無法 100% 保證數據的正確性。

為了從根本性解決該問題, NVMe 規范了 Persistent Reservation(PR)能力,它定義了 NVMe 雲盤的權限配置規則,可以靈活地修改雲盤和掛載節點權限。具體到該場景,在主庫發生故障後,從庫首先發送 PR 命令禁止主庫的寫入權限,拒絕主庫的所有在途請求,此時從庫可以無風險的進行數據更新(圖7)。IO Fencing 通常可以在毫秒級別協助應用完成故障切換,大幅縮短了故障恢復時間,業務的平滑遷移使上層應用基本無感知,相比於 STONITH 有了質的飛越。接下來我們進一步介紹 IO Fencing 的權限管理技術。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第7張圖7:IO Fencing 在故障切換下的應用

權限管理的瑞士軍刀 — Persistent Reservation

NVMe Persistent Reservation (PR) 協議定義了雲盤和客戶端權限,搭配多重掛載能力,可以高效、安全、平穩地進行業務切換。在 PR 協議中,掛載節點有 3 種身份,分別是 Holder(所有者)、Registerant(註冊者)、Non-Registrant(訪客),從名字可以看出,所有者擁有雲盤全部權限,註冊者擁有部分權限,訪客隻擁有讀權限。同時,雲盤擁有 6 種共享模式,可實現獨占、一寫多讀、多寫能力,通過配置共享模式和角色身份,可以靈活地管理各節點權限(表1),從而滿足豐富的業務場景需求。NVMe PR 繼承了 SCSI PR 的全部能力,所有基於 SCSI PR 的應用可以通過少量的改動即可運行在 NVMe 共享雲盤之上。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第8張表1:NVMe Persistent Reservation權限表

多重掛載配合 IO Fencing 能力,可以完美搭建高可用系統,除此之外,NVMe 共享盤還能提供一寫多讀能力,並廣泛應用於讀寫分離的資料庫、機器學習模型訓練、流式處理等場景。另外,鏡像共享、心跳探活、仲裁選主、鎖機制等技術可以通過共享雲盤輕松實現。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第9張圖8:NVMe 共享盤一寫多讀應用場景

NVMe 雲盤技術揭秘

NVMe 雲盤基於計算存儲分離架構實現,依托於神龍硬件平臺實現了高效的 NVMe 虛擬化和極速 IO 路徑,以盤古2.0 存儲為底座實現了高可靠、高可用、高性能,計算存儲通過用戶態網路協議和 RDMA 互連,NVMe 雲盤是全棧高性能和高可用技術的結晶(圖9)。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第10張圖9:NVMe 共享盤技術架構

NVMe 硬件虛擬化:以神龍 MOC 平臺打造了 NVMe 硬件虛擬化技術,通過 Send Queue(SQ) 和 Completion Queue(CQ) 進行數據流和控制流的高效交互,簡潔的 NVMe 協議加上高效的設計,配合硬件移除技術,使 NVMe 虛擬化延遲降低 30%。

極速 IO 通道:基於神龍 MoC 軟硬一體化技術實現了極速 IO 通道,有效縮短了 IO 通路,進而獲得極致的性能。

用戶態協議:NVMe 使用了全新一代 Solar-RDMA 用戶態網路通訊協議,結合 Leap-CC 自研擁塞控制實現了數據可靠傳輸並降低了網路長尾延遲,基於 25G 網路的 JamboFrame 實現了高效的大包傳輸,通過數據面和控制面全面分離精簡了網路軟體棧並提升了性能,網路多路徑技術支撐了鏈路故障毫秒級恢復。

管控高可用:以盤古 2.0 分布式高可用存儲實現了 NVMe 控制中心,NVMe 控制命令不再經過管控節點,從而獲得接近 IO 的可靠性和可用性,可協助用戶實現毫秒級別的業務切換;基於 NVMe 控制中心實現了多客戶端和多服務器間的精確流控,在亞秒級內實現對於 IO 的精確分布式流控;在分布式系統上實現了對於多節點的 IO Fencing 一致性,通過兩階段更新使雲盤分區之間權限狀態保持一致,有效解決了分區權限的腦裂問題。

大 IO 原子性:基於分布式系統從計算、網路、存儲端到端實現了大 IO 的原子寫能力,在 IO 不跨越相鄰 128K 邊界的條件下,確保同一數據不會部分落盤,這對於資料庫等依賴原子寫的應用場景具有重要作用,它能有效優化資料庫 double write 流程,從而大幅提升資料庫的寫入性能。

當前現狀和未來展望

可以看出,當前 NVMe 雲盤結合了業界最先進的軟硬件技術,在雲存儲市場,首創性同時實現了 NVMe 協議 + 共享拜訪 + IO Fencing 技術。它在 ESSD 之上獲得了高可靠、高可用、高性能,同時基於 NVMe 協議實現了豐富的企業特性,如多重掛載、IO Fencing、加密、離線擴容、原生快照、異步復制等功能。

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第11張圖10:全球首次 NVMe + 共享拜訪 + IO Fencing 技術融合

目前 NVMe 雲盤和 NVMe 共享盤已在邀測中,並得到了 Oracle RAC、SAP HANA 和內部資料庫團隊的初步認證,接下來它將進一步擴大公測範圍並商業化。在可預見的未來,我們會逐步圍繞 NVMe 雲盤持續演進,以更好地支持在線擴容、全鏈路數據保護 T10-DIF、雲盤多 namespace 等高級特性,從而進化出全面的雲上 SAN 能力,敬請期待!

【ESSD技術解讀-02】企業級利器,阿裡雲 NVMe 盤和共享存儲 科技 第12張表2:主流雲計算廠商的塊存儲概覽

作者:阿裡雲存儲 阿綸

本文為阿裡雲原創內容,未經允許不得轉載。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!