阿里雲深度學習存儲解決方案

介紹

現如今在談論數據的價值的時候,經常提到的概念之一就是深度學習,或者更廣泛的說是人工智能。深度學習系統通常通過大規模的數據集和神經網絡算法來訓練和完善應用模型,這就需要強大的計算集群,高性能可擴展的存儲系統來實現。

深度學習的基本概念

人工智能(AI,Artificial Intelligence)指由人製造出來的機器所表現出來的智能,通常AI嘗試創造類人的用於通用目的的智能設備。

機器學習(ML,Machine Learning)是AI的一個分支,通常通過訓練的方式來解決特定的問題,例如圖片識別,語音識別等。

深度學習(DL,Deep Learning)是機器學習的一個分支,通常指機器學習中使用的神經網絡算法超過一層,就稱為深度學習。其中最經常使用的是卷積神經網絡(CNN,Convolutional Neural Networks),通常包括輸入層,隱層(多層),輸出層組成的多層網絡,並且只有響鈴的層之間有連接,同一層及跨層之間無連接,是一種接近人類大腦的層次結構的分層結構。

三者的關係如下圖所示:

阿里雲深度學習存儲解決方案

深度學習在最近幾年得到了飛速的發展,許多深度學習的框架湧現了出來。這些框架都依賴於計算圖的概念,計算圖定義了需要執行的計算順序,並且計算圖可以並行地在GPU中優化和運行。目前比較流行的深度學習框架有TensorFlow,Caffee,Torch等,同時一些新的框架也不斷湧現出來。

深度學習數據處理流程

深度學習通常包括以下數據處理流程:

阿里雲深度學習存儲解決方案
  • 數據採集:

    根據業務需要,采業務需要的的數據。同時,也有專門的數據公司,提供數據,可以直接購買。

  • 清洗標註:
    採集後的原始數據可能會存在有缺失值、重複值、無效數據等問題,在使用之前需要進行處理。處理的過程,通常針對不同的任務和數據集屬性的不同而不同。例如,汽車駕駛中等待紅綠燈的時間採集的數據是要刪除的。

  • 模型訓練:
    構建適當的算法和模型,用準備好的訓練集訓練和修正模型。這通常需要GPU的訓練集群來進行訓練。

以上步驟完成後,會將訓練完的模型部署到實際的應用環境中,實際使用模型來進行驗證。部署完成後,我們可以在實際的應用場景中檢驗模型的好壞,同時用實際環境中的場景來驗證和完善模型。

以上各個步驟的工作負載特徵如下:

阿里雲深度學習存儲解決方案

從上面的表里,可以看出,AI各個流程中,工作負載表現出了很大的差別,這對存儲系統提出了很高的要求。不僅要支撐順序讀寫的大塊工作負載,也要支撐隨機讀寫的小塊IO的工作負載。

深度學習對計算力的需求

深度學習近年來取得突破性的進展,離不開三個方面:大數據,深度學習模型,計算能力的提升(尤其是GPU在訓練場景中的大量應用)。隨着問題規模的不斷增大,數據量的不斷增加,以及訓練用的神經網絡深度的深度的不斷增加,對計算能力的需求也越來越大。

阿里雲深度學習存儲解決方案

例如,Nvidia新發布的NVIDIA DGX-2服務器,包含了16個GPU單元,單個機器已經可以提供2Peta flops的計算能力。


谷歌的高級研究員、Google Brain 項目的負責人 Jeff Dean 曾說道,事實證明,我們真正需要的是超過現在 100 萬倍的計算能力,而不只是區區幾十倍的增長。

深度學習對存儲系統的需求

共享需求

現在的深度學習通常是由規模龐大的高性能計算集群來完成的,多個節點並行的讀取數據,協同的來處理一個任務。因此,在深度學習的場景中,需要一個共享的存儲空間來收集和存儲數據。將數據共享的好處包括,深度學習模型準備好後,立馬可以開始運行,另外也省去了來回拷貝搬運數據的麻煩。

高性能需求

另外,深度學習需要大量的數據來訓練模型,因此存儲系統要提供高帶寬來保證數據的流動足夠快,以滿足需求。另外,在訓練的過程中,算法通常需要隨機讀取訓練集中的訓練樣本進行訓練,因此在訓練過程中,隨機讀的負載占大多數,並且多數圖片的訓練場景中,圖片文件的大小多數在1MB以下,這就對存儲系統的IOPS提出了很高的要求。

生命周期管理需求

深度學習的場景中,還要有完善的數據生命周期的管理功能。數據從採集到清洗,標註,到訓練,然後到歸檔,一直處於一個流動的狀態,存儲系統要提供完善的數據流動機制和管理機制,管理起數據的全生命周期。
傳統的NFS存儲,雖然提供了共享的命名空間,但是存在以下問題,單服務器節點是冥想的瓶頸,NFS協議本身帶來的overhead,無法提供足夠的帶寬,無法滿足數據訪問低延遲的需求。另外,也無法提供一個生命周期管理的功能。

因此,深度學習的存儲系統,一方面需要提供一個統一的命名空間來共享數據給前端的高性能計算集群,另一方面為了保證訓練業務的流暢性,要提供高帶寬高IOPS以滿足需求,最後還需要提供完善的生命周期管理功能。

阿里雲文件存儲NAS

阿里雲文件存儲NAS是一個彈性擴展,高可靠,高可用,高性能的分布式文件系統。它基於 POSIX 文件接口,天然適配原生操作系統,共享訪問,同時保證一致性和鎖互斥,並且性能隨容量線性擴展。

阿里雲文件存儲NAS架構:

阿里雲深度學習存儲解決方案


第一層是計算層,使用標準文件協議NFS/SMB或兼容posix的定製化客戶端來訪問文件存儲。第二層是阿里雲網絡負載均衡ALB,把客戶端請求輪轉發送到前端機。第三層是負責協議處理的前端機,協議儘量做到無狀態,涉及狀態部分下沉到元數據管理層。第四層是元數據管理,把目錄樹結構轉變成key-value對,通過基於log structure merge tree的分布式key-value來實現。第五層是元數據和數據持久化在盤古,使用盤古的分布式存儲量提供高達10PB,和99.999999999%的數據可靠性,容量可彈性擴展,按需使用。

元數據和數據分離,NAS Protocol前端機IO直連盤古,把數據位置信息和元數據一起更新,前端機通過元數據更新盤古文件的信息。盤古文件是會散在整個集群的,所以前端機讀寫可充分利用整個集群的IO能力。

安全隔離,基於VPC安全組提供網絡隔離和ACL訪問控制,保證海量容器使用共享存儲時的數據安全隔離。同時提供容器到文件存儲的傳輸加密,保障數據傳輸過程在不被竊取和篡改。

數據備份,阿里雲文件存儲提供文件系統級的數據備份功能,可以基於靈活的備份策略提供多副本的數據保護,在發生數據誤刪除,錯誤修改的情景時,可以使用歷史副本恢複數據。

關於文件存儲NAS的詳情,請參考:https://www.aliyun.com/product/nas

阿里雲CPFS並行文件系統

隨着高性能並行計算大規模商業化時代的到來,傳統並行文件系統面臨諸多挑戰,存儲資源的急劇增長、成本高、運維管理複雜度大、大規模存儲系統的穩定性、性能隨規模無法完全線性擴展等一系列問題困擾廣大客戶,CPFS應運而生。


CPFS(Cloud Parallel File System)是基於定製版Lustre的並行文件系統,,提供大型並行數據處理能力,數據存儲到群集中的多個數據節點,多個客戶端可以同時訪問這些數據,為大型高性能計算機集群提供高IOPS、高吞吐、低時延的數據存儲服務。

CPFS架構:

阿里雲深度學習存儲解決方案

CPFS架構在盤古之上,利用Pangu的block接口為Lustre提供塊設備。網絡支持Infiniband和以太網。CPFS有以下特點:

  • 超高的數據可靠性
    基於飛天盤古分布式存儲系統構架的Lustre持久化存儲,多份數據拷貝,99.99999999%數據可靠性,遠高於傳統存儲廠商提供的磁盤陣列raid的可靠性。

  • 深度優化可用性
    基於paxos ring的仲裁調度,自動檢測異常服務節點,並在分鐘級別重新提供服務,遠高於傳統存儲廠商提供的手動配置HA的可用性。

  • 符合標準的POSIX/MPI接口,無需對應用做任何修改

  • 高性能,高並發,容量、性能水平擴展

關於並行文件存儲CPFS的詳情,請參考:https://help.aliyun.com/document_detail/66278.html

CPFS目前處於公測階段,要申請CPFS的測試請到如下鏈接:

阿里雲深度學習解決方案

解決方案架構

阿里雲深度學習存儲解決方案

阿里雲提供兩種數據上傳的方式:

  • 閃電立方
    閃電立方Lightning Cube是阿里云為TB乃至PB級數據遷移提供的服務。它使用定製設備,安全,高效,低成本的幫助您把海量數據從本地機房遷移到雲端或者是從雲端遷移會本地機房。
    關於閃電立方的詳情,請參考:https://www.aliyun.com/product/mgw

  • 高速通道

    阿里雲高速通道(Express Connect)服務,幫助您在VPC間、VPC與本地數據中心間搭建私網通信通道,提高網絡拓撲的靈活性和跨網絡通信的質量和安全性。使用高速通道可以使您避免繞行公網帶來的網絡質量不穩定問題,同時可以免去數據在傳輸過程中被竊取的風險。
    關於高速通道的詳情,請參考:https://www.aliyun.com/product/expressconnect

計算集群:

計算集群方面,阿里雲提供GPU雲服務器,為AI深度學習優化,提供強大高效的計算能力;還提供了一站式的彈性高性能計算(E-HPC)的公共雲服務,便於管理和使用集群;在應用層,還提供了阿里雲容器服務,一鍵生成AI容器集群。

GPU雲服務器/彈性裸金屬服務器(神龍):

GPU雲服務器是基於GPU應用的計算服務,多適用於AI深度學習,視頻處理,科學計算,圖形可視化,等應用場景,型號有AMD S7150, Nvidia M40, Nvidia P100,Nvidia P4,Nvidia V100阿里雲成為中國首家與NGC GPU加速容器合作的雲廠商。
關於GPU雲服務器的詳情,請參考:https://www.aliyun.com/product/ecs/gpu

彈性裸金屬服務器(ECS Bare Metal Instance)是一種彈性可水平伸縮的高性能計算服務,計算性能與傳統物理機無差別,具有安全物理隔離的特點,分鐘級的交付周期助你的企業獲得實時的業務響應能力,助力核心業務飛速成長。
關於GPU雲服務器的詳情,請參考:https://www.aliyun.com/product/ebm

調度方式可以選擇E-HPC或者容器服務:

  • 彈性高性能計算(E-hpc):

    彈性高性能計算(E-HPC)基於阿里雲基礎設施,為用戶提供一站式公共雲HPC服務,面向教育科研,企事業單位和個人,提供快捷,彈性,安全和與阿里雲產品互通的技術計算雲平台。
    關於容器服務的詳情,請參考:https://www.aliyun.com/product/ehpc

  • 容器服務:

    容器服務提供高性能可伸縮的容器應用管理服務,支持用Docker和Kubernetes進行容器化應用的生命周期管理,提供多種應用發布方式和持續交付能力並支持微服務架構。容器服務簡化了容器管理集群的搭建工作,整合了阿里雲虛擬化、存儲、網絡和安全能力,打造雲端最佳容器運行環境。
    關於容器服務的詳情,請參考:https://www.aliyun.com/product/containerservice

存儲系統

文件存儲NAS容量彈性擴展,按需使用,對於集群規模小於20台的集群,滿足其深度學習工作負載對文件系統的帶寬和IOPS需求。對於大規模的並發極高的集群,推薦使用並行文件系統CPFS。
同時,對於冷數據,阿里雲提供了OSS對象存儲系統,並且提供了Filesync的遷移服務,可以方便的將冷數據歸檔。

阿里雲深度學習解決方案設計關注點

  • 提供強大計算能力的同時,還保證了彈性和易用性:
    神龍服務器,既具有裸服務器的性能,又有虛擬機的彈性,並且使用E-HPC提供了簡單高效的集群管理和調度系統。
    一鍵部署容器集群,快速建立訓練環境。
    文件共享方面,文件存儲NAS和CPFS並行文件系統按需使用,靈活擴展。

  • 保證穩定性的同時,提供了全生命周期的數據管理和靈活高效的數據流動機制:
    文件存儲NAS和CPFS高可靠,高穩定,保證業務的連續性。
    數據從採集到訓練,歸檔,使用高效的數據傳輸工具,壓縮數據流動時間。
    從採集到歸檔,完全的數據生命周期管理。

  • 保證高可靠性的同時,提供了高性能:
    高效可靠的容器管理,支持海量容器秒級啟動,並經過阿里超大規模驗證。
    文件存儲NAS和CPFS並行文件系統基於盤古架構,提供了11個9個高可靠性的同時,提供了高帶寬和高IOPS。

阿里雲深度學習解決方案部署配置

利用E-HPC部署計算集群

建立集群

登錄管理控制台,定位到 彈性高性能計算 > 集群,選擇地域(如華東1),單擊 創建集群。

阿里雲深度學習存儲解決方案


選擇硬件配置,網絡配置等參數,配置共享存儲(文件存儲NAS)!

阿里雲深度學習存儲解決方案


共享存儲在這裡配置過後,計算集群節點系統起來後,會自動掛載文件系統NAS。

注意:目前CPFS處於公測階段,如果要使用CPFS並行文件系統,需要手動在服務器節點的終端里執行掛載命令。

選擇軟件配置,基礎配置等參數,最後點擊確認創建集群。確認配置清單,配置拓撲圖,大約經過20分鐘,您可以回到E-HPC集群列表頁面,查看新集群狀態。若新集群所有節點皆處於正常狀態,則集群已創建完畢。

詳細步驟及參數,請參考:https://help.aliyun.com/document_detail/57937.html?spm=a2c4g.11186623.2.11.32767c13pITowJ

使用集群:

登錄集群,並使用作業調度系統提交作業。目前E-HPC支持兩種作業調度軟件PBS pro和
SLURM。詳細步驟請參考:

利用Kubernetes構建集群

Kubernetes集群部署

1.創建Kubernets集群

阿里雲深度學習存儲解決方案

2.確認集群配置

阿里雲深度學習存儲解決方案

3.集群創建成功

阿里雲NAS文件存儲部署

1.創建NAS文件系統

阿里雲深度學習存儲解決方案


2.添加掛載點

阿里雲深度學習存儲解決方案 阿里雲深度學習存儲解決方案


3.成功添加掛載點,掛載地址用於後續對接容器使用

阿里雲深度學習存儲解決方案

Kubernetes集群對接NAS存儲

  1. 為集群創建存儲卷

阿里雲深度學習存儲解決方案


2.成功創建NAS存儲卷

阿里雲深度學習存儲解決方案

end