讀古今文學網 > OpenStack系統架構設計實戰 > 12.2 共享文件系統服務(Manila) >

12.2 共享文件系統服務(Manila)

12.2.1 概述

根據IDC 2012數據,65%的數據都是以文件的形態進行存儲的。隨著雲計算的發展,大量企業應用向雲平台遷移,這意味著雲計算對於NAS服務有強烈的需求。然而共享文件系統的管理和配置技術難度很大,大部分客戶試圖通過腳本、自動化工具改善。

Manila為OpenStack提供對共享文件系統的支持,作為對OpenStack現有存儲特性非常必要的補充,擴展和改進了OpenStack訪問外界共享存儲的能力。

Manila項目將共享文件系統引入OpenStack中。到目前為止,OpenStack有兩個主要存儲項目:Cinder和Swift。對於支持光纖通信和iSCSI協議的塊存儲設備,Cinder提供塊存儲服務接口。

Cinder塊存儲服務允許將單個卷掛載到虛擬機上,在塊設備層提供高性能訪問能力。但是由於在塊級別協議層沒有內置鎖和數據同步機制,所以一個卷/LUN只能由一個虛擬機(Nova guest)讀寫,而不支持並發訪問。另一方面,塊設備的容量往往也存在限制,使得它們很難實現在線擴容和減容。

Swift針對大量二進制大對像提供對像存儲。因為對像一般是不可變的,所以Swift並不適用於存儲事務數據或者虛擬機。由於糾刪碼等數據保護手段的開銷,對像存儲也不適用於小對象,並且由於對像存儲採用多副本等數據保護方法,也使得它非常低效。

Manila的主要功能是為Nova Compute實例提供共享文件存儲訪問,外部存儲資源可以是NetApp、EMC等提供的商用硬件,也可以是Ceph、GlusterFS等純軟件系統。Manila將基於文件通信協議的外部存儲系統映射給Nova主機和虛擬機,彌補了OpenStack塊存儲和對像存儲能力的不足。由於NAS協議管理鎖和保證並發訪問需要的數據完整性,Manila文件系統可以被多個主機和虛擬機並發訪問。

Manila有效管理文件系統實例的創建及與Nova Compute實例的映射關係,而不涉及數據路徑。Manila通過API接口、命令行和OpenStack Horizon顯示界面集成對外提供特性。

Manila項目於2012年啟動,因為文件和卷之間的很多概念和API調用都是相似的,所以起初Manila只是Cinder項目的一個分支。隨著項目的發展,2014年8月,Manila進入OpenStack孵化器。Manila在Kilo版本已經發佈,雖然目前還沒有成為核心項目,但在2016年有望最終孵化成為核心項目。

Manila為硬件提供商將其產品部署到OpenStack提供了機會,因此,我們看到NetApp(Clustered ONTAP)、EMC(VNX)、IBM(Spectrum Scale)和OpenStack社區會員Mirantis都投入了大量相關研發工作。事實上,Manila是由NetApp員工牽頭的。同時,NetApp和Mirantis分別提供了25%和33%的源碼,如圖12-4所示。

圖12-4 Manila項目社區貢獻情況