Chapter One – What is Manila
Manila is the OpenStack Shared Filesystems service for providing Shared Filesystems as a service. Some of the goals of Manila are to be/have:
- Component based architecture: Quickly add new behaviors
- Highly available: Scale to very serious workloads
- Fault-Tolerant: Isolated processes avoid cascading failures
- Recoverable: Failures should be easy to diagnose, debug, and rectify
- Open Standards: Be a reference implementation for a community-driven api
Chapter Two – For End Users
FOR END USERS
As an end user of Manila, youll use Manila to create a remote file system with either tools or the API directly: python-manilaclient, or by directly using the REST API.
2.1 Tools for using Manila
2.1.1 User Create and manage shares
- General Concepts
- Usage and Limits
- Share types
- Share networks
- Create a share
- Allow read-write access
- Allow read-only access
- Update access rules metadata
- Deny access
- Create snapshot
- Create share from snapshot
- Delete share
- Delete snapshot
- Extend share
- Shrink share
- Share metadata
- Share revert to snapshot
General Concepts
A share is filesystem storage that you can create with manila. You can pick a network protocol for the underlying storage, manage access and perform lifecycle operations on the share via the manila command line tool. Before we review the operations possible, lets take a look at certain important terms:
- share network: This is a network that your shares can be exported to. Exporting shares to your own self-service isolated networks allows manila to provide hard network path data isolation guarantees in a multi-tenant cloud. To do so, under the hood, manila creates isolated share servers, and plugs them into your network. These share servers manage exports of your shares, and can connect to authentication domains that you determine. Manila performs all the lifecycle operations necessary on share servers, and you neednt worry about them. The important thing to note is that your cloud administrator must have made a share type with extra-spec driver_handles_share_servers=True for you to be able to use share networks and create shares on them. See Create and manage share networks and Create and manage share network subnets for more details.
- share type: A share type is a template made available by your administrator. You must always specify a share type when creating a share, unless you would like to use the default share type. Its possible that your cloud administrator has not made a default share type accessible to you. Share types specify some capabilities for your use (Table in p.4)
- Note:
- When replication_type extra specification is not present in the share type, you cannot create share replicas
- When the availability_zones extra specification is not present in the share type, the share type can be used in all availability zones of the cloud.
- Note:
- status of resources: Resources that you create or modify with manila may not be available immediately. The API service is designed to respond immediately and the resource being created or modified is worked upon by the rest of the service stack. To indicate the readiness of resources, there are several attributes on the resources themselves and the user can watch these fields to know the state of the resource. For example, the status attribute in shares can convey some busy states such as creating, extending, shrinking, migrating. These -ing states end in a available state if everything goes well. They may end up in an error state in case there is an issue. See Troubleshooting asynchronous failures to determine if you can rectify these errors by yourself. If you cannot, consulting a more privileged user, usually a cloud administrator, might be useful.
- snapshot: This is a point-in-time copy of a share. In manila, snapshots are meant to be crash consistent, however, you may need to quiesce any applications using the share to ensure that the snapshots are application consistent. Cloud administrators can enable or disable snapshots via share type extra specifications.
- security service: This is an authentication domain that you define and associate with your share networks. It could be an Active Directory server, a Lightweight Directory Access Proto- col server, or Kerberos. When used, access to shares can be controlled via these authentication domains. You may even combine multiple authentication domains.