共享文件系統服務簡介
manila 共享文件系統服務提供計算實例可以使用的共享文件系統。
OpenStack 共享文件系統服務( Manila )為虛擬機提供文件存儲。共享文件系統服務提供了用於管理和配置文件共享的抽象。該服務還支持共享類型的管理以及共享快照(如果驅動程序支持)。
邏輯架構
Manila 的邏輯架構如下圖所示:
共享文件系統的總體服務是通過以下具體服務實現的:
manila-api
一個 WSGI 應用程序,用於對整個共享文件系統服務進行身份驗證和路由請求。它支持 OpenStack API。
manila-data
一個獨立的服務,其目的是接收請求,處理具有潛在長時間運行時間的數據操作,例如復制、共享遷移或備份。
manila-scheduler
安排並將請求路由到適當的共享服務。調度程序使用可配置的過濾器和權重來路由請求。過濾器調度器是默認的,可以對諸如容量,可用性區,共享類型和功能以及自定義過濾器進行過濾。
mania-share
管理提供共享文件系統的后端設備。Manila 共享服務通過使用共享后端驅動程序作為接口與后端設備進行通信。共享驅動程序可以以兩種模式之一操作,無論是否處理共享服務器。共享服務器通過共享網絡導出文件共享。如果共享文件系統服務中的共享服務器沒有由驅動程序管理時,應該在共享文件系統服務的帶之外處理網絡需求。
可運行於有共享服務器和無共享服務器兩種模式。前者需要 Manila 關注組網,使用 nova、neutron 和 cinder 服務管理共享服務器;后者則不處理任何組網問題,使用 LVM 驅動和 NFS 共享,由用戶保證雲主機和 NFS 服務器之間的網絡連接。
- Shared File Systems Option 1: No driver support for share servers management
選項1部署服務不包含對共享管理的驅動支持。這種模式下,服務不需要任何和網絡有關的部署。操作者必須確保實例和NFS服務器之間的連接。本選項使用需要包含LVM和NFS包以及一個額外的命名為``manila-share``的LVM卷組的LVM驅動器。
- Shared File Systems Option 2: Driver support for share servers management
選項2部署服務包含對共享管理的驅動支持。這種模式下,服務需要計算(nova),網絡(neutron),塊存儲(cinder)服務來管理共享服務器。這部分信息用於創建共享服務器,就像創建共享網絡一樣。本選項使用支持共享服務處理的generic驅動器,並且需要一個連接到路由的私網``selfservice`。
messaging Queue
在共享文件系統進程之間路由信息。
Backend Storage devices
共享文件服務需要某種形式的后端共享文件系統提供程序,引用實現使用塊存儲服務( Cinder ) 和服務虛擬機( VM ) 來提供共享。 其他驅動程序用於從各種供應商解決方案中訪問共享文件系統。
后端對應着一個共享文件系統實例的提供者。后端在 manila.conf 中進行定義。一個實例必然對應一個后端,而一個后端有且只有一個驅動。通過采用多個后端的方式,可以提供數據服務以保障高可用。
UserS and Tenants(Projects)
共享文件系統服務可以被許多不同的雲計算消費者或客戶(共享系統上的租戶) 使用基於角色的訪問任務。 角色控制了允許用戶執行的操作。 在默認配置中,大多數操作不需要特定的角色,除非他們只限於管理員,但是這可以由維護規則的適當的 policy.json 文件中的系統管理員來配置。 用戶管理特定權限受到租戶的限制。 通過 IP 或用戶訪問規則,可以保證訪客登錄和使用的權限。 用於控制可用硬件資源的資源消耗的配額是每個租戶。
對租戶而言,配額管制可以限制:
- 可以創建的共享數量
- 可供分享的千兆字節數
- 可以創建的共享快照數量
- 可以為共享快照提供的千兆字節數
- 可以創建的共享網絡的數量
- 可以創建的共享組的數量
- 可以創建的共享組快照的數量
您可以使用共享文件系統 CLI 修改默認配額值,因此配額設置的限制是由管理員用戶編輯的。
Shares, snapshots, and share networks
Shares
共享實例是一個指定了協議、大小和可訪問列表的存儲單元,是 Manila 提供的基礎原語單元。 所有的共享實例都存在於后端, 一些共享實例與共享網絡和共享服務器相關聯。 文件系統實例可被多個虛擬機並發訪問,支持的主要協議是 NFS 和 CIFS,但也支持其他協議。
Snapshots
快照是一個共享實例在某一時刻的只讀鏡像。快照只能用於創建新的共享實例(包含快照數據)。只有在所有相關快照被刪除時,共享實例才能被刪除。
Share networks
共享網絡描述與文件系統實例相關的網絡實現,告知 Manila 一組共享文件系統實例使用的安全和網絡配置。一個共享網絡包括安全服務( Security Service )和涉及的網絡及子網( Network/Subnet )。共享網絡是一個面向多租戶定義的對象,Manila 通過共享網絡支持多租戶,網絡多租戶通過標准特性如 VLAN 和 VXLAN 實現。一個共享文件系統實例只能屬於一個共享網絡。
Share type
共享類型是一個由管理員定義的“服務類型”,它包括一個租戶可見的描述和一組租戶不可見的鍵值對列表。Manila 調度器利用此鍵值對信息進行調度決策。
Extra Spec
額外規格即共享類型中的一組鍵值對。額外規格由 Manila 和后端驅動定義。
安全服務
安全服務指 LDAP、Active Directory、Kerberos 等用戶安全服務。安全服務包含 Manila 創建一個服務器加入指定安全域必需的所有信息。一個共享文件系統實例可以被關聯到多個安全服務。
Share Drivers
共享驅動的概念很明確。共享驅動是后端文件共享服務的具體實現,如 Clustered ONTAP、EMC VNX、GlusterFS 等。
- Generic approach for share provisioning
- CephFS Native driver
- Dell EMC VMAX driver
- Dell EMC Unity driver
- Dell EMC VNX driver
- GlusterFS driver
- GlusterFS Native driver
- HDFS native driver
- LVM share driver
- ZFS (on Linux) driver
- Oracle ZFS Storage Appliance driver
- EMC Isilon driver
- Hitachi NAS (HNAS) driver
- Hitachi Hyper Scale-Out Platform File Services Driver for OpenStack
- HPE 3PAR driver
- Huawei driver
- IBM Spectrum Scale share driver
- INFINIDAT InfiniBox Share driver
- MapRFS native driver
- NetApp Clustered Data ONTAP driver
- Quobyte Driver
Generic Share Driver
- Manila 為每個共享網絡創建一個 Nova 計算實例
- Nova 計算實例通過 Cinder 的 Volume 來提供 NFS/CIFS 共享服務
- 通過 Neturon 連接到現有網絡及子網
- 創建 Nova 實例所必需的 Nova 的 Flavor 、Glance 的鏡像、SSH Keypair 均通過 Manila 進行配置
- Manila 則通過 SSH 對 Nova 實例進行配置
Share Access Rule
Manila 通過共享訪問規則定義哪些客戶端可以訪問共享文件系統實例。目前 Manila 支持的訪問控制類型包括 IP 地址、用戶名和 SSL 認證。
實例生命周期管理
Manila 提供完整的共享文件系統實例生命周期管理,包括:
- 創建、刪除實例;
- 列出所有實例;
- 獲得實例細節信息;
- 生成實例快照;
- 修改實例訪問信息;
- 掛載和卸載文件系統實例。
使用場景
以下是 Manila 的部分關鍵使用場景:
- 替代自主開發(home-grown)的 NAS 部署工具。
- 支持傳統企業應用。
- 按需的開發和構建環境。
- 通過 REST API 或命令與現有自動化框架集成。
- 支持雲原生工作負載,如 DBaaS。
-
支持大數據,例如通過 Manila 的 HDFS 原生驅動插件。
-
提供安全的跨租戶文件共享。
-
混合雲間共享文件系統。
參考文檔:
https://blog.csdn.net/chinagissoft/article/details/51274884
https://blog.51cto.com/devingeng/1745955
https://blog.51cto.com/yuweibing/1981185
歡迎關注微信公眾號:啟航學城,干貨滿滿,掃碼關注:
也歡迎加入OpenStack技術交流群,進行技術交流。