Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
CephFS Back End Guide for the Shared File System Service
Deploying a CephFS Back End for the Shared File System Service in a Red Hat OpenStack Platform Overcloud
OpenStack Documentation Team
rhos-docs@redhat.com
Abstract
manila.share.drivers.cephfs.cephfs_native
driver.
Making open source more inclusive
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
Chapter 1. Introduction
Using the Red Hat Ceph file system (CephFS) via the native CephFS protocol is available only as a Technology Preview, and therefore is not fully supported by Red Hat. The deployment scenario described in this document should only be used for testing and should not be deployed in a production environment.
For more information about Technology Preview features, see Scope of Coverage Details.
Red Hat supports using CephFS via NFS. For more information, see CephFS via NFS Back End Guide for the Shared File System Service.
The OpenStack Shared File Systems service (manila) enables users to provision shared file systems that can be consumed by multiple compute instances.
This release includes a technology preview of the necessary driver for Red Hat CephFS (namely, manila.share.drivers.cephfs.cephfs_native.CephFSNativeDriver
). This driver allows the Shared File System service to use CephFS as a back end.
The recommended method for configuring a Shared File System back end is through the director. Doing so involves writing a custom environment file.
With this release, the director can now deploy the Shared File System with a CephFS back end on the overcloud. This document explains how to do so.
Chapter 2. Requirements
Prerequisites
- An existing Red Hat OpenStack Platform environment with an integrated Ceph back end. For more information, see the Deploying an Overcloud with Containerized Red Hat Ceph guide.
- The Shared File System service installed on the Controller nodes, as is the default behavior.
- You intend to use only a single instance of the Ceph File System as the only back end for your Shared File SystemsService.
2.1. Limitations and Restrictions
Given the current state of the involved components, the test scenario in this document has the following limitations and restrictions:
- Untrusted instance users pose a security risk to the Ceph Storage cluster, as they have direct access to the public network of the Ceph Storage cluster. Ensure that the cluster you are using is quarantined from the production environment, and that only trusted users have access to the test environment.
- This release only allows read-write access to shares.
Chapter 3. Edit the Environment File
The environment file contains the back end settings you want to define. It also contains other settings relevant to the deployment of the Shared File System service. For more information about environment files, see Environment Files in the Advanced Overcloud Customization guide.
This release includes an integrated environment file for defining a CephFS back end. This file is located in the following path of the undercloud node:
/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
This file provides default settings for deploying a Shared File System service.
Create an environment file which will contain the settings necessary for your environment — namely, ~/templates/manila-cephfsnative-config.yaml
. The following snippet shows the default values used by the director when deploying the Shared File System service:
/home/stack/templates/manila-cephfsnative-config.yaml
parameter_defaults: # 1 ManilaCephFSNativeBackendName: cephfsnative ManilaCephFSNativeDriverHandlesShareServers: false # 2 ManilaCephFSNativeCephFSConfPath: '/etc/ceph/ceph.conf' # 3 ManilaCephFSNativeCephFSAuthId: 'manila' # 4 ManilaCephFSNativeCephFSClusterName: 'ceph' ManilaCephFSNativeCephFSEnableSnapshots: true
- 1
- The
parameter_defaults
header signifies the start of your configuration. Specifically, it allows you to override default values set inresource_registry
. This includes values set byOS::Tripleo::Services::ManilaBackendCephFs
, which sets defaults for a CephFS back end. - 2
- With
ManilaCephFSNativeDriverHandlesShareServers
set tofalse
, the driver will not handle the lifecycle of the share server. - 3
ManilaCephFSNativeCephFSConfPath:
sets the path to the configuration file of the Ceph cluster.- 4
ManilaCephFSNativeCephFSAuthId:
is the Ceph auth ID that the director will create for share access.
Chapter 4. Deploy the Shared File System Service with a CephFS Back End
Once you create /home/stack/templates/manila-cephfsnative-config.yaml
, log in as the stack
user on the undercloud. Then, deploy the Shared File System service with a CephFS back end by including the following environment files:
-
/usr/share/openstack-tripleo-heat-templates/environments/services/ceph-mds.yaml
- enables the Ceph MDS, which is required by Shared File System service when using a CephFS back end. -
/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
- deploys the Ceph cluster. -
/home/stack/templates/manila-cephfsnative-config.yaml
- created earlier in Chapter 3, Edit the Environment File, and contains any settings to override defaults set in/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
.
For example, if your OpenStack and Ceph settings are defined in /home/stack/templates/storage-environment.yaml
, run:
$ openstack overcloud deploy --templates \ -e /home/stack/templates/storage-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/ceph-mds.yaml \ -e /home/stack/templates/manila-cephfsnative-config.yaml \
If you passed any extra environment files when you created the overcloud, pass them again here by using the -e
option to avoid making undesired changes to the overcloud. For more information, see Modifying the Overcloud Environment in the Director Installation and Usage guide.