Learn OpenStack · core/storage/shared-filesystem

Shared Filesystems — Manila

Manila is the OpenStack Shared Filesystem service. It provisions and manages shared filesystems (NFS, CIFS/SMB, CephFS, GlusterFS, and others) that multiple compute instances can mount simultaneously. Unlike Cinder, which provides block storage attached to a single instance, Manila exports filesystems accessible to many clients at once.

Manila has been a core OpenStack service since the Kilo release (2015). It is analogous in design to Nova+Cinder but oriented around shared network-accessible filesystems rather than block devices.

When to Read This Skill

  • Deploying Manila for the first time
  • Creating and managing NFS or CIFS shares for instances
  • Configuring share types, share networks, and access rules
  • Understanding DHSS=true vs DHSS=false driver modes
  • Setting up CephFS, NetApp, or generic (NFS-Ganesha/Samba) backends
  • Troubleshooting "share stuck in creating" or access denied errors
  • Configuring share replication across availability zones
  • Migrating shares between backends or availability zones
  • Using share groups and consistent group snapshots
  • Understanding the manila-data service and how share migration works internally

Sub-Files

File What It Covers
architecture.md Manila services (api, scheduler, share, data), share types, share networks, share groups, DHSS modes, replication, migration
operations.md CLI and API: create/manage shares, types, networks, access rules, snapshots, groups, migration, replication; full config reference
internals.md Driver interface, share server lifecycle, manila-data copy engine, scheduler filters, DB models

Quick Reference

# Create a 10 GiB NFS share
openstack share create --share-type default --name my-share NFS 10

# List shares
openstack share list

# Show share details (including export locations)
openstack share show my-share

# Grant read-write access to a CIDR
openstack share access create my-share ip 10.0.0.0/24 --access-level rw

# List access rules
openstack share access list my-share

# Extend a share to 20 GiB
openstack share extend my-share 20

# Create a snapshot
openstack share snapshot create my-share --name my-snap

# Delete a share
openstack share delete my-share

Dependencies

Dependency Purpose Notes
Keystone Authentication and service catalog Every Manila API call is token-validated
Neutron Tenant network connectivity for share servers Required for DHSS=true drivers; used to allocate ports for share server NICs
Nova Share server VMs (generic driver) Only for the generic (reference) driver; not needed for hardware/CephFS backends
Cinder Share server root volumes (generic driver) Only for the generic driver
RabbitMQ (or oslo.messaging backend) Async RPC between Manila services Required; api→scheduler→share communication uses the message bus
MariaDB 10.6+ or PostgreSQL 14+ Manila database Stores all share, type, network, and access metadata
Memcached oslo.cache backend Recommended; reduces DB load for repeated lookups
NFS server / Samba / CephFS Actual filesystem backend Provided by the driver; not managed by Manila core

Releases Covered

This skill covers OpenStack 2025.1 (Epoxy), 2025.2, and 2026.1.

Manila release notes: https://docs.openstack.org/releasenotes/manila/