前言
作為 IaaS 最重要的核心元件之一,阿裡雲 ESSD 為雲伺服器 ECS 提供低延遲時間、持久性和高可靠的塊存儲服務,成為雲廠商全閃塊存儲的業界标杆。随着越來越多的企業上雲和核心應用上雲,以及容器和 Serverless 架構的蓬勃發展,對塊存儲 IO 性能的彈性能力提出了新的挑戰和需求。阿裡雲存儲團隊在這種背景下推出了 ESSD Auto PL 新的雲盤規格,把性能與容量解耦,提供 IO 性能按需供給兩大關鍵特性。本文結合塊存儲典型業務場景,介紹 Auto PL 新産品特性、揭秘背後的技術原理。
雲存儲的IO彈性需求和業務痛點
随着雲原生技術的發展,越來越多的企業基于雲計算的虛拟化、彈性擴充及蓬勃發展的雲原生技術的分布式架構,容器技術、編排系統、持續傳遞及快速疊代,建構起大規模、彈性擴充強、豐富的雲上分布式業務場景;新的計算形态逐漸往短周期、輕量化等方向發展,對塊存儲 IO 性能彈性提出了更多需求(性能通常用 IOPS :Input/Output Operations per Second 和吞吐 BPS :Bytes per Second 來描述),以下是比較常見的業務痛點:
- VM/容器批量啟動:計算執行個體啟動時,系統盤短時間内消耗大量 IOPS 和吞吐 BPS
- 業務高峰:客戶業務面臨不可預期的突發場景,需要雲盤以及 VM 具備短時的突發性能需求的彈性擴充能力
- 周期性任務處理:OLAP/批處理在可預見的時間内周期性的送出海量任務,需要雲盤具備突發的彈性擴充能力
傳統的塊存儲産品采用性能/容量耦合的産品設計,使用者通過購買雲盤容量擷取相應的 IOPS/BPS 性能上限,通過雲盤擴容同時獲得磁盤容量和 IO 性能。ESSD 支援 PL0/1/2/3 多種性能的檔位(PL:performance level),不同 PL 等級有不同 IO 性能上限,客戶可通過雲盤變配功能提升 PL 等級,進而得到更高的 IOPS/BPS 性能上限。雲原生業務充分利用雲的彈性能力,業務需求上量有個較長的時間周期,通常會預留部分存儲性能餘量。此外,相當部分雲上業務流量存在明顯的波峰波谷行為,大部分時間處于業務低負載期,且業務高峰期和峰值難以準确預估。典型的 IO 流量突發型業務可能在一定時間内出現一個或多個突發 IO 流量,突發時間短、突發性能峰值高,常見于網際網路秒殺等突發業務場景,對性能規劃提出了新的挑戰:如果性能配置預留過高,會造成日常資源的大量閑置浪費;而如果性能預留不足,業務突發洪峰會造成業務受損。總而言之,通過雲盤擴容/變配進行較為精準的性能規劃變得非常困難。
ESSD Auto PL
針對以上業務痛點,阿裡雲推出了 ESSD Auto PL 産品規格,支援性能按需配置和按需突發兩個模式,支援 1000 IOPS/GB 的超高機關容量性能上限。性能按需配置主要面向可預期的周期性 IO 流量場景,使用者在建立 ESSD Auto PL 時除了選擇存儲容量,還可單獨配置額外的 IO 性能上限,實作了 IO 性能與容量解耦。針對可預期的 IO 洪峰,使用者可根據業務需求靈活調整 IO 性能,提供可預期的應對能力。
對于難以預期的突發業務洪峰,Auto PL 支援性能按需突發模式,提供最大單盤 100W IOPS,4GB/s 的極限 IO 性能,雲盤根據實際性能需求自動調整,無需進行 IO 性能預測和規劃,充分利用了 ESSD 分布式存儲的彈性能力,徹底解決了突發流量下的性能規劃問題。該功能采用後付費模式,使用者隻需按實際發生超出預先配置性能的讀寫次數付費, 保障業務穩定運作的同時,最大化節省使用者的資源配置開銷。以某大型網際網路電商某突發流量場景為例,該業務原來使用 ESSD PL1,性能上限為 50000 IOPS,350MB/s,在業務突發流量場景,有 2.3% 的雲盤打滿 PL1 性能上限影響業務,且業務峰值時間較短,流量峰值無法準确預估。傳統的需要采用 ESSD PL2 來滿足業務突發流量,采用 ESSD Auto PL 并開啟按需突發模式,業務存儲 TCO 下降 49%。
Auto PL 仍然相容了 ESSD PL1 的基準性能,标準的 Auto PL 雲盤性能表現與 ESSD PL1 完全一緻,實作存量客戶 & 業務場景無縫切換。另外 ESSD Auto PL 在業界首次同時支援性能按需配置和性能按需突發兩種功能,并且可疊加使用,使用者可根據實際 IO 流量模型靈活配置。
Auto PL技術解析
作為第一個支援性能容量解耦同時支援性能按負載彈性伸縮的雲盤, ESSD Auto PL 需要解決很多技術上的挑戰:比如如何快速感覺業務的負載變化,如何動态按需申請釋放資源支援性能伸縮,如何快速平衡負載排程等等。經過反複打磨,ESSD Auto PL 雲盤設計了細粒度的雲盤切分機制,能夠讓它均衡使用整個後端存儲叢集的資源并快速動态調整;通過叢集容量/性能水位實時監測和排程、多級 QoS 隔離等保障 IO 性能突發引入的流量沖擊和多租戶 IO 幹擾等問題。
雲盤細粒度切分
ESSD Auto PL 支援最大 1000 IOPS/GB,遠超 Nand SSD 機關容量的 IOPS 性能。每一塊 ESSD 雲盤的 LBA 位址空間會被劃分為多個條帶組,條帶組的 IO 被分布式算法打散,分别被不同的存儲節點處理,以充分利用 RDMA 網絡和高性能存儲能力。ESSD Auto PL 設計了細粒度的位址空間管理機制,讓小容量雲盤也可以充分打散到多個存儲節點,實作更大範圍的 IO 排程能力,同時大範圍的 IO 排程能力也可以降低存儲叢集單機熱點和部分 IO 長尾延遲。
多租戶隔離和IO優先級管理
EBS 作為典型的多租戶服務,突發高吞吐/高 IOPS 流量潛在會影響低負載租戶的 IO 延遲,100W IOPS IO Burst 極緻性能對隔離能力提出了更高的要求。ESSD 支援執行個體和雲盤兩層 QoS,執行個體 QoS 提供多虛拟機之間的 IO 隔離能力,上限與使用者購買執行個體的 vCPU 核數強相關,部分小規格執行個體支援存儲 credit burst 能力,可累積閑時 IO quota 提供最大 30 分鐘的性能突發能力;雲盤 QoS 提供執行個體内各雲盤的性能上限,與雲盤規格相關。從 VM 發出的 IO 從鍊路上依次通過雲盤、執行個體兩級 QoS,并進行 Burst IO 流量打标,確定在流量擁塞場景下全鍊路能準确識别 Burst 流量,保證非 Burst 流量得到優先處理。針對 Burst IO 流量引起的系統局部熱點和 IO 阻塞,實作了IO 流量 10 毫秒級别的業務負載感覺和預測,再秒級别完成動态隊列排程和并發度調整,結合硬體解除安裝的隊列動态分發機制、避免在多租戶場景下因為彈性提升帶來多租戶間的性能幹擾。
多叢集性能水位負載均衡
極緻的 IO 性能彈性對性能 SLA 引入了新的挑戰,特别是 IO 突發性能極限 100W IOPS 引入了更大的流量擁塞風險,為此 ESSD 設計了新的多叢集性能水位負載均衡機制。新的智能均衡排程機制由叢集/存儲節點/IO 線程多級排程組成,根據雲盤性能配置,實時監控元件 IO 負載,實作叢集内秒級 IO 負載均衡、分鐘級别叢集間流量排程,當叢集/存儲節點間流量出現顯著性能水位差異時,實時觸發雲盤熱遷移,解決使用者大批量雲盤負載同時升高的性能争搶問題。
總結
ESSD AutoPL 作為未來 ESSD 的主售産品,覆寫面積為目前所有彈性計算面對的行業和客戶。AutoPL 具備的靈活性和彈性能力降低了 IT 規模規劃難度和因規劃不當帶來的風險,将會受運維人員或IT資源采購人員青睐。無論是阿裡雲新增客戶,還是存量客戶,ESSD AutoPL 都可以作為 ESSD PL1 的替代産品進行購買。AutoPL 為客戶的業務突發增長提供了既經濟實惠、又簡單便利的使用體驗,期待大家廣泛使用 AutoPL 産品,并且給我們提寶貴的回報,幫助我們做得更好。我們将繼續通過技術創新來提高 ESSD 的性能和服務品質保障能力,提高使用者使用體驗,為客戶提供永不停機的計算服務。
原創作品:阿裡雲存儲 郗鑒