天天看點

雲硬碟存儲系統容量管理實踐

如果說雲計算拼的就是運維的話,那麼公有雲的運維拼的就是容量管理。公有雲上容量管理(以下容量管理特指公有雲上容量管理)就是要保障有充足的資源可對外售賣,即“有貨可賣”。當資源供應不足,使用者無法購買需要的雲計算資源時,就産生了所謂的“售罄”事件。售罄問題對公有雲口碑影響很大,影響使用者體驗的同時甚至會造成使用者的流失。本文主要對容量管理相關問題進行總結和分析,同時介紹雲硬碟存儲系統容量管理實踐方案。

雲硬碟(Cloud Block Service,CBS)作為騰訊雲基礎元件之一,在容量管理方面之前遇到了很多問題,總結起來有以下幾點。

通常我們的資源主要有三部分組成:線上可對外售賣資源,線下儲備裝置以及報備在途裝置。這三部分資源分别在三個不同的系統中維護,缺乏統一的視圖,導緻運維人員對資源整體儲備情況無法準确預估。另外一方面,目前騰訊雲有衆多可用區,同時有多種雲硬碟産品,不同産品使用不同的機型;如果隻考慮整體資源,而不考慮不同可用區不同雲盤産品的售賣情況的話,很容易出現資源不均衡的情況,即部分可用區/雲盤産品售罄的同時其他可用區/雲盤産品卻資源過剩。是以,我們需要統一、多元度的資源規劃,打通線上、線下資源系統,從全局進行不同地區不同産品類型的資源規劃和排程。

一台實體裝置的生命周期會經曆采購、到貨、初始化、上架、維修、下架。傳遞過程中的大量環節需要人工介入和操作,資源傳遞自動化程度較低會導緻單Set傳遞時間可能超過幾十分鐘,并且傳遞并發度基本為串行。如此低的傳遞效率一方面會導緻售罄頻發(傳遞趕不上售賣),另一方面會增加運維在傳遞方面的人力投入(60%以上)。

通過對售罄問題的分析,我們發現大部分售罄問題往往是因為短時間的突發購買擊穿庫存導緻。現有的容量系統無法做到實時感覺和預警短時間内的突發購買行為,等到觸發資源不足告警再去追查和分析,使得後端運維響應非常被動。另外,現有的資源監控政策基于靜态門檻值,隻能做到Zone級别的資源總體情況預警,缺乏細粒度監控(例如TOP20 VIP使用者購買情況、不同大小的盤資源情況等)。

除了突發購買,碎片化問題也會導緻售罄。很多時候線上整體可售賣的資源還有很多,但是這些資源都分布在很多個Set,就會導緻無法提供大規格的整塊資源。造成碎片化最直接的原因是前端售賣裝箱政策不合理,但容量管理系統本身也需要具備定期整理碎片、均衡資源的能力。

雲硬碟存儲系統容量管理實踐

圖1 容量管理整體解決方案

如圖1所示,為了有效解決售罄問題,可以從線下、後端、前端、監控和資料分析等方面入手,總結起來有以下五點。

前面分析問題時指出各種資源資料分布在多個系統,缺少統一、多元度的規劃。是以我們需要建立全局資源看闆,來對資源進行統一規劃和全局調配。具體來說,我們的全局資源看闆包括以下内容:

ž歸一化地展示線上可售賣、線下儲備和報備在途裝置,這樣一來就可以很清楚的知道現在有多少貨可賣buffer有多少,最近能夠到貨多少。

ž清晰地展示各個可用區、各種類型産品的資源情況(包括可售賣、線下儲備和報備在途),便于進行各可用區之間的資源排程和騰挪。

ž其他次元的資源展示,例如不同規格區間的資源情況等。

雲硬碟存儲系統容量管理實踐

圖2 全局資源看闆示例

雲硬碟存儲系統容量管理實踐

圖3 裝置生命周期

裝置一旦到貨以及需要緊急擴容的情況下,我們需要具備快速自動傳遞能力,降低售罄風險的同時也能優化運維人力。一方面需要打通整個裝置生命周期,實作全自動化傳遞。另一方面需要和監控以及資料分析關聯起來,當收到資源不足預警時自動觸發上架操作,及時擴容。

雲硬碟存儲系統容量管理實踐

圖4 容量監控分析體系

容量監控分析體系如圖4所示,主要由三部分組成:

ž靜态門檻值監控。除了監控各個地區和各種類型雲盤線上容量之外,我們還增加了兩種預警,即上架預警和報備預警。上架預警和上面的自動化傳遞系統關聯,當線上容量觸發上架預警值之後會回調自動化上架接口進行擴容操作。報備預警會綜合線上容量和線下buffer,當資源整體消耗較快無法保障未來一個月的售賣時,會及時告知運維人員發起報備。

ž動态異常分析。通過對使用者的購買行為進行動态異常分析和監控,可以及時感覺突發購買和刷單等異常情況,以便及時采取措施,防止庫存被擊穿。

ž精細化分析。除了關注大盤整體容量情況和短期的異常外,我們還對TOP20使用者進行了定制化監控分析,重點關注VIP的使用者行為和使用情況,主動發現問題來提升服務專業度和口碑。

典型的部署模型提供的最小容量機關為Set,使用者可購買的雲盤的規格為2G-16T,這是一個很典型的裝箱問題。我們還在不斷探索和優化裝箱政策和算法,我們已經采取的主要優化措施包括:

žSet容量實時上報,指定Set售賣裝箱。各Set将可售賣容量實時上報,控制系統綜合全局容量情況指定Set售賣和裝箱,避免随機裝箱造成的碎片問題。

ž定期碎片整理和均衡。後端會定期對Set的裝箱和使用情況進行分析,将大規格的雲盤打散分布;同時會綜合各個Set的底層存儲使用率,自動發起盤遷移和均衡操作。

容量管理問題沒辦法做到一招制勝,而是需要一套“組合拳”來應對不同情況。表1為容量分級預案,不同的觸發條件對應了不同的預案,每種預案的時效性也不盡相同。隻有多管齊下,做好充足的預案和準備,才能夠從容的應對各種突發情況。

雲硬碟存儲系統容量管理實踐

表1 容量問題分級預案