2018天貓雙11全球狂歡節(jié),全天成交額再次刷新紀錄達到2135億元,其中總成交額在開場后僅僅用了2分05秒即突破100億元,峰值的交易量達到驚人的高度,背后離不開阿里云大數據計算和存儲能力的支撐。在整個交易的鏈路上,賬單業(yè)務是一個重要的環(huán)節(jié),尤其對商家系統(tǒng)來說,需要定期對賬,賬單子系統(tǒng)出現一點點問題都會影響商家的運營,2018的雙十一,承載賬單的消息系統(tǒng)把全網賣家賬單系統(tǒng)60%的流量托付給了阿里云文件存儲。在11日0點的峰值交易時刻,賬單消息系統(tǒng)的寫入流量瞬間達到日常流量的60倍以上,阿里云文件存儲表現穩(wěn)定,順利扛下這一波洪峰,幫助業(yè)務系統(tǒng)完美度過0點的考驗。本文將介紹阿里云文件存儲的背景,以及文件存儲是如何來保障業(yè)務系統(tǒng)應對高壓力的。
什么是云上的NAS文件存儲
在阿里云的發(fā)展早期,在云服務器ECS上運行的應用需要進行數據存儲時,有兩個選擇:
云盤:兼容應用的IO接口,但是和物理機使用硬盤一樣,云盤和ECS綁定,單塊云盤只能特定ECS訪問;
OSS:多ECS可以共享訪問,但需要應用調整IO接口,使用OSS的REST接口;
但如果應用既想保留原有的IO接口(一般是POSIX接口),又需要實現多ECS共享存儲,就沒有很好的解決辦法。NAS文件存儲在這樣的背景下應運而生,針對傳統(tǒng)企業(yè)級應用的存儲需求,通過標準NAS系統(tǒng)協(xié)議(NFS/SMB),為ECS提供共享存儲,支持隨機讀寫以及PB級別容量,并且支持容量動態(tài)擴展,方便業(yè)務從小規(guī)模逐漸擴大過程中,不需要再擔心存儲容量的擴容以及運維問題。
阿里云NAS文件系統(tǒng)從2016年推出至今,已經應用在豐富的業(yè)務場景中,包括高HPC性能計算、Web服務和內容管理、媒體和娛樂處理工作流、容器存儲、基因和生命科學數據存儲處理,深度學習大數據處理等等,很好地服務了云上的客戶。
NAS文件存儲架構設計
阿里云文件存儲是一個可共享訪問,彈性擴展,高可靠,高性能的分布式文件系統(tǒng),其架構設計如圖1所示。
圖1: 阿里云文件存儲架構
整個技術棧分五層,第一層是各類計算節(jié)點(比如ECS、Docker、GPU等)不同操作系統(tǒng)使用標準文件協(xié)議NFS/SMB訪問文件存儲。第二層是阿里云網絡負載均衡,把客戶端請求輪轉發(fā)送到前端機。第三層是負責協(xié)議處理的前端機,具備scale-out的能力。第四層是文件系統(tǒng)元數據管理,實現高效的數據結構保證元數據的快速操作。第五層是元數據和數據的持久化存儲,使用阿里云盤古存儲系統(tǒng)。
整個架構通過盤古保證高可靠,另外通過文件存儲高效的數據和元數據管理技術實現scale-out、高可用,超高的數據訪問性能以及一系列企業(yè)級存儲的特性,如圖2所示。
圖2?阿里云文件存儲特性
賬單業(yè)務消息系統(tǒng)適配文件存儲
隨著云上文件存儲的知名度越來越廣,阿里集團的很多內部業(yè)務也開始接入文件存儲,其中就包括支撐賬單業(yè)務的消息系統(tǒng)。
架構設計
消息系統(tǒng)的存儲本來使用的是本地盤,這樣最主要的問題就是當單機故障時,存儲在磁盤上的數據沒法及時被其他主機訪問,其他主機不能快速接管原來主機的業(yè)務,缺乏容災的能力,對應用的影響非常大。而使用文件存儲天然具有多機共享訪問的能力,可以很好的解決這個問題。
但是,如果只是簡簡單單地做一個替換,把本地存儲換成文件存儲,如圖3那樣,
圖3 本地存儲替換成文件存儲(共享訪問)
多臺ECS通過NFSv4掛載同一個文件系統(tǒng),每個ECS會使用到一個文件系統(tǒng)里的多個子目錄作為消息文件的存儲空間,雖然解決了前述的容災問題,但這個架構的問題是過于依賴單點的存儲,萬一單文件系統(tǒng)發(fā)生故障,所有消息隊列的訪問都會受到影響,因此需要對架構進行進一步調整。調整的基本思路就是將流量盡量打散到多個文件系統(tǒng)上,同時又避免對業(yè)務方軟件的改造。
調整后的架構入圖4所示,為業(yè)務創(chuàng)建多個虛擬云機房,每個虛擬云機房的消息系統(tǒng)存儲由4個NAS文件系統(tǒng)來承載,消息系統(tǒng)計算節(jié)點ECS會同時掛載4個文件系統(tǒng),并且通過軟鏈接的方式在‘nasroot’目錄下看到多個隊列,對業(yè)務使用上來說,這些隊列對應的目錄是在同一個文件系統(tǒng)(原來的架構)還是多個文件系統(tǒng)(新的架構)是不感知的,這樣就將業(yè)務需要改造的量最小化,只需要在部署時候進行相應的自動化(掛載和創(chuàng)建軟鏈接)即可,但帶來的好處是巨大的,萬一發(fā)生單文件系統(tǒng)的故障,業(yè)務可以自動分流到存活的文件系統(tǒng),可以有效應對各種故障場景。
圖4?架構優(yōu)化
細節(jié)優(yōu)化
相對于使用本地盤,計算存儲分離架構下,如果應對存儲測的異常和故障呢?標準的NFS掛載下,如果服務端出現故障或者網絡發(fā)生故障,客戶端訪問文件存儲將會是完全hang住,直到服務或者網絡恢復為止。針對這個問題,消息系統(tǒng)進行了相應改造,業(yè)務系統(tǒng)對消息的一致性保障進行了優(yōu)化,可以支持寫消息失敗。這樣就可以使用NFS的soft掛載模式,當服務端出現故障或者網絡發(fā)生故障時,應用程序將不會再是完全hang住,而是能迅速監(jiān)測到IOError,并立即采取對應的行動。結合前述的架構設計,應用程序能進行快速響應,把流量分流到其他存活的文件系統(tǒng)上,快速恢復。
雙十一的考驗
經過架構設計和細節(jié)優(yōu)化,文件存儲的scale-out能力在雙十一尖峰發(fā)揮出了應有的能力,即使在0點時刻流量是平時的60倍以上,表現依然穩(wěn)定,在文件存儲的給力表現下,業(yè)務系統(tǒng)的響應依然如日常一樣順滑,完全感覺不出超大流量對系統(tǒng)的沖擊。
總結
阿里云文件存儲為云上業(yè)務提供支持標準接口(POSIX)以及標準文件訪問協(xié)議(NFS,SMB)的存儲服務,并且具有簡單易用、安全可靠、性能和容量scale-out等特性。經過雙十一的錘煉,文件存儲的服務能力必將繼續(xù)上升一個臺階,將提升后的能力以普惠技術的形式向云上各行各業(yè)輸出,推動社會生產力的發(fā)展。
電子發(fā)燒友App






















































評論