manila 文件共享存儲服務

共享文件系統服務簡介

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 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 提供完整的共享文件系統實例生命週期管理,包括:

  1. 創建、刪除實例;
  2. 列出所有實例;
  3. 獲得實例細節信息;
  4. 生成實例快照;
  5. 修改實例訪問信息;
  6. 掛載和卸載文件系統實例。

使用場景

以下是 Manila 的部分關鍵使用場景:

  1. 替代自主開發(home-grown)的 NAS 部署工具。
  2. 支持傳統企業應用。
  3. 按需的開發和構建環境。
  4. 通過 REST API 或命令與現有自動化框架集成。
  5. 支持雲原生工作負載,如 DBaaS。
  6. 支持大數據,例如通過 Manila 的 HDFS 原生驅動插件。

  7. 提供安全的跨租戶文件共享。

  8. 混合雲間共享文件系統。