Coraid AoE driver configuration Coraid storage appliances can provide block-level storage to OpenStack instances. Coraid storage appliances use the low-latency ATA-over-Ethernet (ATA) protocol to provide high-bandwidth data transfer between hosts and data on the network. Once configured for OpenStack, you can: Create, delete, attach, and detach block storage volumes. Create, list, and delete volume snapshots. Create a volume from a snapshot, copy an image to a volume, copy a volume to an image, clone a volume, and get volume statistics. This document describes how to configure the OpenStack Block Storage service for use with Coraid storage appliances.
Terminology These terms are used in this section: Term Definition AoE ATA-over-Ethernet protocol EtherCloud Storage Manager (ESM) ESM provides live monitoring and management of EtherDrive appliances that use the AoE protocol, such as the SRX and VSX. Fully-Qualified Repository Name (FQRN) The FQRN is the full identifier of a storage profile. FQRN syntax is: performance_class-availability_class:profile_name:repository_name SAN Storage Area Network SRX Coraid EtherDrive SRX block storage appliance VSX Coraid EtherDrive VSX storage virtualization appliance
Requirements To support the OpenStack Block Storage service, your SAN must include an SRX for physical storage, a VSX running at least CorOS v2.0.6 for snapshot support, and an ESM running at least v2.1.1 for storage repository orchestration. Ensure that all storage appliances are installed and connected to your network before you configure OpenStack volumes. In order for the node to communicate with the SAN, you must install the Coraid AoE Linux driver on each Compute node on the network that runs an OpenStack instance.
Overview To configure the OpenStack Block Storage for use with Coraid storage appliances, perform the following procedures: Download and install the Coraid Linux AoE driver. Create a storage profile by using the Coraid ESM GUI. Create a storage repository by using the ESM GUI and record the FQRN. Configure the cinder.conf file. Create and associate a block storage volume type.
Install the Coraid AoE driver Install the Coraid AoE driver on every compute node that will require access to block storage. The latest AoE drivers will always be located at http://support.coraid.com/support/linux/. To download and install the AoE driver, follow the instructions below, replacing “aoeXXX” with the AoE driver file name: Download the latest Coraid AoE driver. $ wget http://support.coraid.com/support/linux/aoeXXX.tar.gz Unpack the AoE driver. Install the AoE driver. $ cd aoeXXX $ make # make install Initialize the AoE driver. # modprobe aoe Optionally, specify the Ethernet interfaces that the node can use to communicate with the SAN. The AoE driver may use every Ethernet interface available to the node unless limited with the aoe_iflist parameter. For more information about the aoe_iflist parameter, see the aoe readme file included with the AoE driver. # modprobe aoe_iflist="eth1 eth2 ..."
Create a storage profile To create a storage profile using the ESM GUI: Log in to the ESM. Click Storage Profiles in the SAN Domain pane. Choose Menu > Create Storage Profile. If the option is unavailable, you might not have appropriate permissions. Make sure you are logged in to the ESM as the SAN administrator. Use the storage class selector to select a storage class. Each storage class includes performance and availability criteria (see the Storage Classes topic in the ESM Online Help for information on the different options). Select a RAID type (if more than one is available) for the selected profile type. Type a Storage Profile name. The name is restricted to alphanumeric characters, underscore (_), and hyphen (-), and cannot exceed 32 characters. Select the drive size from the drop-down menu. Select the number of drives to be initialized for each RAID (LUN) from the drop-down menu (if the selected RAID type requires multiple drives). Type the number of RAID sets (LUNs) you want to create in the repository by using this profile. Click Next.
Create a storage repository and get the FQRN Create a storage repository and get its fully qualified repository name (FQRN): Access the Create Storage Repository dialog box. Type a Storage Repository name. The name is restricted to alphanumeric characters, underscore (_), hyphen (-), and cannot exceed 32 characters. Click Limited or Unlimited to indicate the maximum repository size. Limited sets the amount of space that can be allocated to the repository. Specify the size in TB, GB, or MB. When the difference between the reserved space and the space already allocated to LUNs is less than is required by a LUN allocation request, the reserved space is increased until the repository limit is reached. The reserved space does not include space used for parity or space used for mirrors. If parity and/or mirrors are required, the actual space allocated to the repository from the SAN is greater than that specified in reserved space. Unlimited—Unlimited means that the amount of space allocated to the repository is unlimited and additional space is allocated to the repository automatically when space is required and available. Drives specified in the associated Storage Profile must be available on the SAN in order to allocate additional resources. Check the Resizeable LUN box. This is required for OpenStack volumes. If the Storage Profile associated with the repository has platinum availability, the Resizeable LUN box is automatically checked. Check the Show Allocation Plan API calls box. Click Next. Record the FQRN and click Finish. The FQRN is located in the first line of output following the Plan keyword in the Repository Creation Plan window. The FQRN syntax is performance_class-availability_class:profile_name:repository_name. In this example, the FQRN is Bronze-Platinum:BP1000:OSTest, and is highlighted.
Repository Creation Plan screen
Record the FQRN; it is a required parameter later in the configuration procedure.
Configure options in the cinder.conf file Edit or add the following lines to the file /etc/cinder/cinder.conf: volume_driver = cinder.volume.drivers.coraid.CoraidDriver coraid_esm_address = ESM_IP_address coraid_user = username coraid_group = Access_Control_Group_name coraid_password = password coraid_repository_key = coraid_repository_key Access to storage devices and storage repositories can be controlled using Access Control Groups configured in ESM. Configuring cinder.conf to log on to ESM as the SAN administrator (user name admin), will grant full access to the devices and repositories configured in ESM. Optionally, you can configure an ESM Access Control Group and user. Then, use the cinder.conf file to configure access to the ESM through that group, and user limits access from the OpenStack instance to devices and storage repositories that are defined in the group. To manage access to the SAN by using Access Control Groups, you must enable the Use Access Control setting in the ESM System Setup > Security screen. For more information, see the ESM Online Help.
Create and associate a volume type Create and associate a volume with the ESM storage repository. Restart Cinder. # service openstack-cinder-api restart # service openstack-cinder-scheduler restart # service openstack-cinder-volume restart Create a volume. $ cinder type-create ‘volume_type_name where volume_type_name is the name you assign the volume. You will see output similar to the following: +--------------------------------------+-------------+ | ID | Name | +--------------------------------------+-------------+ | 7fa6b5ab-3e20-40f0-b773-dd9e16778722 | JBOD-SAS600 | +--------------------------------------+-------------+ Record the value in the ID field; you use this value in the next step. Associate the volume type with the Storage Repository. #cinder type-key UUID set coraid_repository_key=’FQRN Variable Description UUID The ID returned from the cinder type-create command. You can use the cinder type-list command to recover the ID. coraid_repository_key The key name used to associate the Cinder volume type with the ESM in the cinder.conf file. If no key name was defined, this is default value for coraid_repository. FQRN The FQRN recorded during the Create Storage Repository process.