Rose-Coded

View on GitHub

OpenStack Manila Structure and Commands

What is Manila?

OpenStack Manila is the Shared File System Service for OpenStack. It provides a standardized, cloud-based way for users to provision and manage file-based storage resources (like NFS or CIFS shares) on demand, just like they can provision virtual machines or block storage.

Core Function: Storage Orchestration

Manila’s primary job is to abstract and manage the complexity of various back-end storage systems.

Key Operations

The Manila Architecture Components

Manila itself is a set of services that handle the requests:

Manila Commands

Here, I will list some of the commands that are relevant to my internship project which has two major tasks which are adding new capabilities to the UI plugin to: allow creating or manipulating metadata of a share, snapshot, access rule or share network subnet and allow creating or manipulating a resource lock on a share or access rule.

For a comprehensive list of all the commnds, view them in Manila’s documentation

manila access-allow myshare ip 10.0.0.0/24 --metadata key1=value1    
or  
openstack share access create
manila access-metadata 2950cc07-79c5-484c-b034-34fa6acc19a0 set key2=value2
or
openstack share access set --property

manila access-show 2950cc07-79c5-484c-b034-34fa6acc19a0
manila access-metadata 2950cc07-79c5-484c-b034-34fa6acc19a0 unset key1
or
share access unset --property

manila access-show 2950cc07-79c5-484c-b034-34fa6acc19a0
or
openstack share access show 2950cc07-79c5-484c-b034-34fa6acc19a0
manila metadata myshare set purpose='storing financial data for analysis' year_started=2020
or
openstack share set --property or share unset --property
openstack share snapshot create myshare --name mysnapshot \
    --property key1=value1 --property key2=value2

openstack share snapshot set mysnapshot --property key1=value

openstack share snapshot unset mysnapshot --property key1

What is Manila UI?

Manila UI is the management dashboard component of Manila. It is the plugin that integrates into the main OpenStack user interface, Horizon

It provides the GUI/front-end presentation layer that allows cloud users and administrators to interact with the Manila service without needing to use the command line or API directly.

It is implemented as a Django plugin for OpenStack and the code contains Python for the Django logic and HTML for the front-end templates.

Through the Manila UI, users can perform operations like:

In short, the Manila UI renders the “Shares” tab (or similar panels) within the OpenStack dashboard, translating the Manila API calls into a friendly, web-based control panel.