1. 程式人生 > >阿裏雲文件存儲(NAS)助力業務系統承載雙十一尖峰流量

阿裏雲文件存儲(NAS)助力業務系統承載雙十一尖峰流量

單點 需要 帶來 失敗 不出 雙11 多臺 掛載 同時

2018天貓雙11全球狂歡節,全天成交額再次刷新紀錄達到2135億元,其中總成交額在開場後僅僅用了2分05秒即突破100億元,峰值的交易量達到驚人的高度,背後離不開阿裏雲大數據計算和存儲能力的支撐。在整個交易的鏈路上,賬單業務是一個重要的環節,尤其對商家系統來說,需要定期對賬,賬單子系統出現一點點問題都會影響商家的運營,2018的雙十一,承載賬單的消息系統把全網賣家賬單系統60%的流量托付給了阿裏雲文件存儲。在11日0點的峰值交易時刻,賬單消息系統的寫入流量瞬間達到日常流量的60倍以上,阿裏雲文件存儲表現穩定,順利扛下這一波洪峰,幫助業務系統完美度過0點的考驗。本文將介紹阿裏雲文件存儲的背景,以及文件存儲是如何來保障業務系統應對高壓力的。

什麽是雲上的NAS文件存儲
在阿裏雲的發展早期,在雲服務器ECS上運行的應用需要進行數據存儲時,有兩個選擇:

雲盤:兼容應用的IO接口,但是和物理機使用硬盤一樣,雲盤和ECS綁定,單塊雲盤只能特定ECS訪問;
OSS:多ECS可以共享訪問,但需要應用調整IO接口,使用OSS的REST接口;
但如果應用既想保留原有的IO接口(一般是POSIX接口),又需要實現多ECS共享存儲,就沒有很好的解決辦法。NAS文件存儲在這樣的背景下應運而生,針對傳統企業級應用的存儲需求,通過標準NAS系統協議(NFS/SMB),為ECS提供共享存儲,支持隨機讀寫以及PB級別容量,並且支持容量動態擴展,方便業務從小規模逐漸擴大過程中,不需要再擔心存儲容量的擴容以及運維問題。

阿裏雲NAS文件系統從2016年推出至今,已經應用在豐富的業務場景中,包括高HPC性能計算、Web服務和內容管理、媒體和娛樂處理工作流、容器存儲、基因和生命科學數據存儲處理,深度學習大數據處理等等,很好地服務了雲上的客戶。

NAS文件存儲架構設計
阿裏雲文件存儲是一個可共享訪問,彈性擴展,高可靠,高性能的分布式文件系統,其架構設計如圖1所示。

技術分享圖片
圖1: 阿裏雲文件存儲架構

整個技術棧分五層,第一層是各類計算節點(比如ECS、Docker、GPU等)不同操作系統使用標準文件協議NFS/SMB訪問文件存儲。第二層是阿裏雲網絡負載均衡,把客戶端請求輪轉發送到前端機。第三層是負責協議處理的前端機,具備scale-out的能力。第四層是文件系統元數據管理,實現高效的數據結構保證元數據的快速操作。第五層是元數據和數據的持久化存儲,使用阿裏雲盤古存儲系統。

整個架構通過盤古保證高可靠,另外通過文件存儲高效的數據和元數據管理技術實現scale-out、高可用,超高的數據訪問性能以及一系列企業級存儲的特性,如圖2所示。

技術分享圖片
圖2 阿裏雲文件存儲特性

賬單業務消息系統適配文件存儲
隨著雲上文件存儲的知名度越來越廣,阿裏集團的很多內部業務也開始接入文件存儲,其中就包括支撐賬單業務的消息系統。

架構設計
消息系統的存儲本來使用的是本地盤,這樣最主要的問題就是當單機故障時,存儲在磁盤上的數據沒法及時被其他主機訪問,其他主機不能快速接管原來主機的業務,缺乏容災的能力,對應用的影響非常大。而使用文件存儲天然具有多機共享訪問的能力,可以很好的解決這個問題。

但是,如果只是簡簡單單地做一個替換,把本地存儲換成文件存儲,如圖3那樣,

技術分享圖片
圖3 本地存儲替換成文件存儲(共享訪問)

多臺ECS通過NFSv4掛載同一個文件系統,每個ECS會使用到一個文件系統裏的多個子目錄作為消息文件的存儲空間,雖然解決了前述的容災問題,但這個架構的問題是過於依賴單點的存儲,萬一單文件系統發生故障,所有消息隊列的訪問都會受到影響,因此需要對架構進行進一步調整。調整的基本思路就是將流量盡量打散到多個文件系統上,同時又避免對業務方軟件的改造。

調整後的架構入圖4所示,為業務創建多個虛擬雲機房,每個虛擬雲機房的消息系統存儲由4個NAS文件系統來承載,消息系統計算節點ECS會同時掛載4個文件系統,並且通過軟鏈接的方式在‘nasroot’目錄下看到多個隊列,對業務使用上來說,這些隊列對應的目錄是在同一個文件系統(原來的架構)還是多個文件系統(新的架構)是不感知的,這樣就將業務需要改造的量最小化,只需要在部署時候進行相應的自動化(掛載和創建軟鏈接)即可,但帶來的好處是巨大的,萬一發生單文件系統的故障,業務可以自動分流到存活的文件系統,可以有效應對各種故障場景。

技術分享圖片
圖4 架構優化

細節優化
相對於使用本地盤,計算存儲分離架構下,如果應對存儲測的異常和故障呢?標準的NFS掛載下,如果服務端出現故障或者網絡發生故障,客戶端訪問文件存儲將會是完全hang住,直到服務或者網絡恢復為止。針對這個問題,消息系統進行了相應改造,業務系統對消息的一致性保障進行了優化,可以支持寫消息失敗。這樣就可以使用NFS的soft掛載模式,當服務端出現故障或者網絡發生故障時,應用程序將不會再是完全hang住,而是能迅速監測到IOError,並立即采取對應的行動。結合前述的架構設計,應用程序能進行快速響應,把流量分流到其他存活的文件系統上,快速恢復。

雙十一的考驗
經過架構設計和細節優化,文件存儲的scale-out能力在雙十一尖峰發揮出了應有的能力,即使在0點時刻流量是平時的60倍以上,表現依然穩定,在文件存儲的給力表現下,業務系統的響應依然如日常一樣順滑,完全感覺不出超大流量對系統的沖擊。

總結
阿裏雲文件存儲為雲上業務提供支持標準接口(POSIX)以及標準文件訪問協議(NFS,SMB)的存儲服務,並且具有簡單易用、安全可靠、性能和容量scale-out等特性。經過雙十一的錘煉,文件存儲的服務能力必將繼續上升一個臺階,將提升後的能力以普惠技術的形式向雲上各行各業輸出,推動社會生產力的發展。

阿裏雲文件存儲(NAS)助力業務系統承載雙十一尖峰流量