Using the IBM XIV Storage System in OpenStack Cloud Environments
Upcoming SlideShare
Loading in...5
×
 

Using the IBM XIV Storage System in OpenStack Cloud Environments

on

  • 883 views

This IBM Redpaper provides a brief overview of OpenStack and a basic familiarity of its usage with the IBM XIV Storage System Gen3. The illustration scenario that is presented uses the OpenStack ...

This IBM Redpaper provides a brief overview of OpenStack and a basic familiarity of its usage with the IBM XIV Storage System Gen3. The illustration scenario that is presented uses the OpenStack Folsom release implementation IaaS with Ubuntu Linux servers and the IBM Storage Driver for OpenStack. For more information on IBM Storage Systems, visit http://ibm.co/LIg7gk.

Visit http://bit.ly/KWh5Dx to 'Follow' the official Twitter handle of IBM India Smarter Computing.

Statistics

Views

Total Views
883
Views on SlideShare
883
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Using the IBM XIV Storage System in OpenStack Cloud Environments Using the IBM XIV Storage System in OpenStack Cloud Environments Document Transcript

  • © Copyright IBM Corp. 2013. All rights reserved. ibm.com/redbooks 1 Redpaper Using the IBM XIV Storage System in OpenStack Cloud Environments Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS) Platform-as-a-Service (PaaS) Software-as-a-Service (SaaS) OpenStack is an IaaS that allows storage to be anywhere and available for use as needed without the confines of being in the data center. The IBM® Storage driver for OpenStack enables OpenStack clouds to access the IBM XIV® Storage System Gen3. The driver integrates with the OpenStack environment and enables OpenStack applications to take advantage of the XIV enterprise-class storage. The management driver controls the creation and deletion of volumes on the XIV Storage System Gen3, and manages to attach or detach volumes from virtual machines (VMs) running in OpenStack. The driver automatically creates the XIV host mappings on demand that are required to allow running VMs on OpenStack to access the storage volumes. Access to the XIV volumes is over an iSCSI connection protocol. This IBM Redpaper™ provides a brief overview of OpenStack and a basic familiarity of its usage with the IBM XIV Storage System Gen3. The illustration scenario that is presented uses the OpenStack Folsom release implementation IaaS with Ubuntu Linux servers and the IBM Storage Driver for OpenStack. This paper is intended for clients and cloud administrators who look forward to integrating IBM XIV Storage Systems in OpenStack cloud environments. The paper provides guidance in setting up an environment for XIV with OpenStack. It is not an official support document. Desire Brival Bert Dufrasne Bruce Allworth Mark Kremkus Markus Oscheka Thomas Peralto
  • 2 Using the IBM XIV Storage System in OpenStack Cloud Environments Introduction With the availability of the IBM Storage Driver for OpenStack, the XIV Storage System can offer a range of capabilities that enable more effective storage automation deployments into private or public clouds. Enabling OpenStack with XIV allows for storage to be made available whenever needed without the traditional associated cost of highly skilled administrators and infrastructure. Cloud computing is defined as the use of computing services and resources (hardware and software) that are delivered over a network, typically Ethernet. Cloud computing allows for more economical usage of the data center hardware and software. It entrusts remote services with a user’s data, software, and computation. OpenStack is being developed as an industry standard cloud-computing project. It was started by Rackspace Cloud and NASA in 2010. Currently more than 150 companies have joined the project, including IBM. OpenStack is a no-charge, open source software release under the terms of the Apache License. OpenStack has a modular architecture that encompasses three components: Compute (Nova) Object Storage (Swift) Image service (Glance) Several components are added: OpenStack Identity Management (Keystone) User Interface Dashboard (Horizon) OpenStack Compute (Nova) is a cloud-computing fabric controller (the main part of an IaaS system). It is written in Python and uses many external libraries, such as Eventlet (for concurrent programming), Kombu (for AMQP communication), and SQLAlchemy (for database access). IBM XIV with the OpenStack community is on a mission to provide scalable, elastic cloud computing for both public and private clouds, large and small. The cloud must be simple to implement and massively scalable. XIV Storage System with Folsom (the latest version of OpenStack at the time of writing and referred to as OpenStack in the remainder of this paper) offers an open source cloud implementation. This implementation allows organizations to deploy cloud-computing capabilities on standard hardware. There are several releases. The current release is Folsom (September 2012). For the latest information, see the following website: http://www.openstack.org/software/folsom/ Important: Illustrations of commands in this paper are based on the Folsom release. This release offers two options in terms of block storage: nova-volume and Cinder. Both are nearly identical in terms of functionality, APIs, and even the general theory of operation. Remember, however, that nova-volume is deprecated and will be removed at the Grizzly release.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 3 Concept The OpenStack cloud connects to the XIV over an iSCSI connection. Remote cloud users can issue requests for storage resources from the OpenStack cloud. These requests are transparently handled by the IBM Storage Driver. The IBM Storage Driver communicates with the XIV Storage System and controls the storage volumes on it. Terminology OpenStack introduced a specific terminology to describes its features and functions, including these important terms: User Any person, user, or administrator who wants to use cloud services or administer tenants. Role User, administrator, or system service within a tenant Tenant OpenStack supports the concept of multi-tenancy as an organizational structure. By this approach, resources are managed within a tenant and can share services. A tenant offers the ability to correlate usage tracking, auditing, authorization, and so on. Service OpenStack and Linux services have some similarities. A Linux service (formally a daemon) is a program that runs in the background and listens to a port to respond to service requests. An OpenStack service is a group of Linux services that work together. For example, nova-compute and nova-scheduler are two of the Linux services that implement the Compute service. Hypervisor Software that allows multiple virtual images to share a single physical machine. OpenStack Compute requires a hypervisor, and Compute controls the hypervisors through an API server. The process for selecting a hypervisor usually is prioritizing and deciding based on budget and resource constraints and the inevitable list of supported features and required technical specifications. Most developments are done with the kernel-based virtual machine (KVM) and Xen based hypervisors. For a detailed list of features and support across the hypervisors, see this website: http://wiki.openstack.org/HypervisorSupportMatrix The types of virtualization standards that can be used with Compute include KVM, Quick Emulator (QEMU), VMware ESX/ESXi 4.1 update 1, and Xen. Code names Every OpenStack service has a code name as shown in Table 1 on page 4. These code names are reflected in the names of configuration files and command-line utility programs. For example, the Keystone Identity service has a configuration file called keystone.conf. Service: In this document, we use the term “service” to refer both to Linux and OpenStack services. View slide
  • 4 Using the IBM XIV Storage System in OpenStack Cloud Environments Table 1 OpenStack code name OpenStack architecture and components The OpenStack architecture and its components are described. What is Nova Nova is a global collaboration of developers and cloud-computing technologists that seek to produce a ubiquitous IaaS open source cloud-computing platform for public and private clouds. OpenStack was founded by Rackspace Hosting and NASA jointly in July 2010. Nova consists of 160 companies and close to 3,000 developers. OpenStack components OpenStack has several components: Swift (Object Store) provides object storage and allows users to store or retrieve files in a blob mode. Glance (Image) provides a catalog and repository for disk images that are mostly used in OpenStack Compute. It has several components: – Glance-api accepts Image API calls for discovery, retrieval, and store images – Glance-registry stores, processes, and retrieves metadata about images (size, type, and so on) – A database to store the image metadata – A data repository for the image files Nova (Compute) provides virtual machines (VM) or instances. Nova interacts with several OpenStack services, such as Keystone, Horizon, or Glance. The API process can upload and query Glance while nova-compute downloads images for use in launching images. Nova is the most complex and distributed component of OpenStack. Many processes are involved to handle user API requests and launch virtual machines. The following list is a summary of Nova processes: – nova-api handles user compute API calls, synchronizes activities, and enforces policy. – nova-compute process is a daemon that launches and ends virtual machine instances by using the hypervisor’s APIs. Service name Code name Identity Keystone Compute Nova Image Glance Dashboard Horizon Object Store Swift Block Storage Cinder View slide
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 5 – nova-volume manages the creation, attachment, and detachment of persistent volumes to compute instances. It uses volumes from various providers, such as iSCSI or Rados Block Device in Ceph. IBM provides the XIV Storage driver for OpenStack through the nova-volume driver architecture. The OpenStack project Cinder will probably replace nova-volume, and the XIV nova volume driver will offer full functionality in a future release. – nova-network manages the network by setting up bridge or changes to iptables rules. – nova-schedule, which is implemented with RabbitMQ or Qpid, determines where instances run based on requests that are in the message queue. – The SQL database stores items for the cloud. The items can be a type of instances, available networks, projects, and so on. – nova-console and nova-consoleauth offer a proxy to access the virtual machines to users. Horizon (Dashboard) provides a modular web-based user interface for all the OpenStack services. With this web GUI, you can perform most operations on your cloud. You can create volumes, launch an instance, assign IP addresses, and set access controls. Keystone (Identity) provides authentication and authorization for all the OpenStack services. It also provides a service catalog of services within a particular OpenStack cloud. Quantum (Network) provides “network connectivity as a service” between interface devices that are managed by other OpenStack services (most likely Nova). The service works by allowing users to create their own networks and then attach interfaces to them. Cinder (Block Storage) provides persistent block storage to guest VMs. This project was born from code that was originally in Nova (the nova-volume service). The IBM Storage Driver for OpenStack is fully supported with Cinder 2012.11 and provides “block storage as a service” via iSCSI to VMs. For more details about Cinder and the IBM Storage Driver for OpenStack, see this web page: http://wiki.openstack.org/Cinder In addition to these core projects, there are a number of “incubation” projects that are being considered for future inclusion in the OpenStack core. Regarding IBM Storage, read more at this web page: http://ibmresearchnews.blogspot.com/2012/10/storage-drivers-take-advantage-of.html Important: The Folsom release offers two options in terms of block storage: nova-volume and Cinder. Both are nearly identical in terms of functionality, APIs, and even the general theory of operation. Illustrations in this paper are based on nova-volume. Remember, however, that nova-volume is deprecated and will be removed at the Grizzly release.
  • 6 Using the IBM XIV Storage System in OpenStack Cloud Environments Figure 1 depicts the OpenStack services. Figure 1 OpenStack architecture Getting started To successfully implement and test the OpenStack cloud environment by using the IBM Storage Driver for OpenStack, follow these steps: 1. Install a supported Linux Distribution on every node (for example, any server that is connected to the network where a Nova component is installed). 2. Configure separate networks: a management network, a storage network, and a service network for public access to cloud services. 3. Install and configure a supported database to store credentials and centralized items. 4. Install and configure the cloud controller. 5. Install and configure the OpenStack components (Network, Compute, and Volume) on the other nodes. 6. Create a storage pool for the OpenStack on the XIV Storage System 7. Install IBM Storage Driver for OpenStack on the Compute Node. 8. Install and configure the supported hypervisors. 9. Build and import operating system images to the catalog. Important: The storage pool must be created prior to installing the storage driver for OpenStack. Restriction: The driver supports a single XIV Storage System. To use multiple storage systems, multiple instances of the driver must be run.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 7 In the environment that we used for our experimentation, the OpenStack infrastructure is set up with a single node that is hosted by Ubuntu Server 12.04.1 Long-Term Support (LTS). The following key components were installed and configured: Control Node Image Node Volume Node (Cinder) Compute Node IBM Storage Driver for OpenStack IBM XIV Storage System Gen3 OpenStack system requirements Before you deploy the supported infrastructure, verify that you have the appropriate hardware. Ensure that you have the servers, SAN, and IP switches that are required to set the environment. See Table 2. For the latest information, see the release notes at this website: http://pic.dhe.ibm.com/infocenter/strhosts/ic/topic/com.ibm.help.strghosts.doc/nov a_pdfs.html Hardware specifications There are several ways to implement the Nova OpenStack infrastructure. Consider single and the multiple node configurations: Single node: We used this configuration for our test purposes (it is understood that we cannot expect great performance from such a small environment). This configuration cannot deliver the performance that most cloud environments require. A virtualized environment can be enough to deploy this configuration. See Figure 2 on page 8. Multiple nodes: In this environment, Nova components can be distributed across several systems. Use this setup for a typical production environment. For small environments, see Figure 3 and Table 3 on page 8. For the requirements for larger environments, see Table 4 on page 9. Table 2 Single-node requirements Installation and configuration: Detailed installation and configuration steps for all required components (Linux, network, or SAN configuration, and so on) are beyond the scope of this paper. Nova component Minimum requirements Preferred setup Controller Network Volume Compute IBM Storage Driver for OpenStack Ubuntu 12.04 or later, x64 edition CPU: Dual-core 64 bits RAM: 8 GB Disk Drive: 60 GB Network: 1 x 1 GbE Ubuntu 12.04 or later, x64 edition CPU: Dual-core 64 bits RAM: 16 GB Disk Drive: 80 GB Network: 1 x 1 GbE
  • 8 Using the IBM XIV Storage System in OpenStack Cloud Environments Figure 2 Nova single node Table 3 Multiple node (small) Nova component Minimum requirements Preferred setup Controller Network Volume Ubuntu 12.04 or later, x64 edition CPU: Dual-core 64 bits RAM: 8 GB Disk Drive: 60 GB Network: 1 x 1 GbE Ubuntu 12.04 or later, x64 edition CPU: Dual-core 64 bits RAM: 8 GB Disk Drive: 60 GB Network: 1 x 1 GbE Compute Node IBM Storage Driver for OpenStack Ubuntu 12.04 or later, x64 edition CPU: Quad core RAM: 16 GB Disk Drive: 60 GB Network: 2 x 1 GbE Ubuntu 12.04 or later, x64 edition CPU: > Quad core RAM: > 32 GB Disk Drive: 60 GB Network: 1 x 1GbE + 1 x 10 GbE SAN IP Nova Single Node Contr oller, Volume, Network, Compute Node, IBM Storage Driver for OpenStack iSCSI attachm ent Nova Single Node Contr oller, Volume, Network, Compute Node, IBM Storage Driver for OpenStack Fibre Channel Attachment XIV SAN IP Nova Single Node Controller, Volume, Network, Compute Node, IBM Storage Driver for OpenStack iSCSI attachment Nova Single Node Controller, Volume, Network, Compute Node Fibre Channel Attachment XIV
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 9 Figure 3 Nova multiple node Table 4 Multiple-node large environment requirements Nova component Minimum requirements Preferred setup Controller Node Ubuntu 12.04 or later, x64 edition CPU: Dual core RAM: 8 GB Disk Drive: 60 GB Network: 1 x 1 GbE Ubuntu 12.04 or later, x64 edition CPU: Dual core RAM: 8 GB Disk Drive: 60 GB Network: 1 x 1 GbE Network Node Ubuntu 12.04 or later, x64 edition CPU: 1 x 64 bits RAM: 1 GB Disk Drive: 60 GB Network: 1 x 1GbE Ubuntu 12.04 or later, x64 edition CPU: 1 x 64 bits RAM: 4 GB Disk Drive: 60 GB Network: 1 x 1 GbE Volume (Cinder)Node Ubuntu 12.04 or later, x64 edition CPU: Dual core RAM: 4 GB Disk Drive: 30 GB Network: 1 x 1 GbE Ubuntu 12.04 or later, x64 edition CPU: Dual core RAM: 4 GB Disk Drive: > 60 GB Network: 1 x 1 GbE + 1 x 10 GbE SAN: 1 Fibre Channel (FC) card Controller Node Contr oller Node Compute Node Storage Node Storage Node Cinder Node IBM Storage Driver for OpenStack XIV External Network IP SAN
  • 10 Using the IBM XIV Storage System in OpenStack Cloud Environments Installation The first step is to install Ubuntu Server 12.04.1 (x64) and then to update the APT repository with OpenStack Folsom. Then, install the MySQL Server and OpenStack components. Repository configuration To ensure that you have the up-to-date release of the operating system, update the system. Add the appropriate repository for OpenStack and add the following lines to /etc/apt/sources.list: deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-proposed/folsom main Then, update the system as shown in Example 1. Example 1 APT repository # sudo aptitude update # sudo aptitude install ubuntu-cloud-keyring # sudo aptitude upgrade Configuration prerequisite To avoid issues when you use bridging with nova-dhcpbridge or an HTTP service, consider some optional dependencies and install the initial packages as shown in Example 2. These packages are mandatory because they provide important utilities that you need. Example 2 Installing initial packages # sudo aptitude install dnsmasq-utils bridge-utils In a multiple-node configuration, the Network Time Protocol (NTP) server must be used to synchronize time on all OpenStack nodes. Install NTP as shown in Example 3 on page 10. Example 3 Installing the NTP server # sudo aptitude install ntp Compute Node Ubuntu 12.04 or later, x64 edition CPU: Dual-core 64 bits RAM: 4 GB Disk Drive: 30 GB Network: 2 x 1 GbE SAN: 2 x 1 Fibre Channel card Ubuntu 12.04 or later, x64 edition CPU: > Quad-core 64 bits with Intel VT or AMD-V RAM: 32 GB Disk Drive: >60 GB Network: 1 x 1 GbE + 2 x 10 GbE SAN: 2 x Fibre Channel card Important: These requirements are provided as is and are based on code that was available at the time of writing this paper. For the latest information, see the IBM Storage Driver for OpenStack release notes at this web page: http://pic.dhe.ibm.com/infocenter/strhosts/ic/topic/com.ibm.help.strghosts.doc/ nova_pdfs.html Nova component Minimum requirements Preferred setup
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 11 Verify the service is running: # service ntp status * NTP server is running MySQL database OpenStack uses several databases to store configuration items. Nova, Keystone, and Glance can use MySQL, PostgreSQL, or SQLite3. In our environment, we use MySQL. Follow these steps: 1. To install MySQL, run the following command: # sudo aptitude install mysql-server Set a new password for the root MySQL user as requested. 2. Validate that the database can be stopped and restarted. Also, validate that the administrator’s password that was requested during the MySQL installation can be used as shown in Example 4. Example 4 Validate MySQL administrator account # mysql -u root -ppassword Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 266 Server version: 5.5.29-0ubuntu0.12.04.1 (Ubuntu) Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> quit Bye To start MySQL after the reboot, run this command: # sudo chkconfig mysql on Keystone (Identity) installation and initial configuration Keystone is the main authentication repository for all OpenStack services. Start by installing and configuring Keystone. Then, populate the database with users, tenants, and services. The assumption is that the repository is set up correctly and that you have the latest OpenStack Folsom release. To set up the repository, see “Repository configuration” on page 10. Install the openstack-keystone package by running the following command: # sudo aptitude install keystone Administrator name and password: In our example, the MySQL database administrator is root and the password is passw0rd.
  • 12 Using the IBM XIV Storage System in OpenStack Cloud Environments After the Keystone installation, create a database that is named keystone. Then, create the tables that are required to store Keystone Items. Creating the keystone database manually Create an empty database that is named keystone: 1. Create the keystone database with the command: # mysql -u root -ppassw0rd -e ‘CREATE DATABASE keystone;’ 2. To create the MySQL Keystone user and give full access to the keystone database that you created, run this command: # mysql -u root -ppassw0rd -e ‘GRANT ALL ON keystone.* TO “keystone”@”localhost” IDENTIFIED BY “YOUR_KEYSTONE_PASSWORD”;’ Creating the keystone admin credential To administer Keystone, you need to “source” the Keystone client’s environment variable with the SERVICE_TOKEN and SERVICE_ENDPOINT. Follow these steps: 1. At the command prompt, enter the following commands: # export SERVICE_TOKEN=$(openssl rand -hex 10) # export SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0 2. Save the value of SERVICE_TOKEN in a file: # echo $SERVICE_TOKEN > ~/keystone_admin_token 3. Update the /etc/keystone/keystone.conf file by setting the admin_token and connection options: # admin_token = ADMIN replaced by: admin_token = SERVICE_TOKEN_VALUE and # connection = sqlite:////var/lib/keystone/keystone.db replaced by: connection = mysql://keystone:KEYSTONE_PASSWORD@HOST_NAME/keystone Keystone installation script: The Keystone installation script creates an SQLite database on /var/lib/keystone/. We do not use SQLite as the main repository because the preferred method is to use the separate MySQL installation process that we described in “MySQL database” on page 11. Password: In the preceding command, you created a MySQL user named “keystone” with the password YOUR_KEYSTONE_PASSWORD. Replace YOUR_KEYSTONE_PASSWORD with your own password and keep it in a safe place. Tip: We use OpenSSL’s rand function, which might not be installed on your system, to generate the Service Token Key. Tip: Save the generated file (keystone_admin_token) in a safe place because the content is used to configure other OpenStack components.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 13 Starting the Keystone service Start the Keystone service and make it part of the system start procedure: 1. To start the Keystone service, run this command: # sudo service openstack-keystone start 2. To make the service available after the system starts, run this command: # sudo chkconfig openstack-keystone on Verify that the Keystone service is running and that no errors exist in the Keystone log file: 1. Check whether the Keystone service is running. Run the command that is shown in Example 5. Example 5 Check Keystone service # sudo service keystone status keystone start/running, process 909 2. Check the error log: # grep -i error /var/log/keystone/keystone.log Synchronizing the keystone database You can now synchronize the keystone database. The synchronization process creates the required tables in the database. To synchronize the keystone database, run the keystone-manage db_sync command in the terminal prompt as the root user. After the database initialization, you can create users, roles, tenants, and services. Creating users, roles, and tenants When you install Keystone, the database tables are empty. You must create several items to administer and allow other components to interact with Keystone. Example 6 shows how to create a user that is called admin. Then, give that user the admin role within a defined tenant named admin. Then, use the admin user that you created to manage Keystone. Creating a user Create an admin user with the Keystone user-create command as shown in Example 6. Example 6 Keystone creating a user # keystone user-create --name admin --pass passw0rd +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | property | value | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | email | | | enabled | true | Important: If you created the database manually, you must synchronize the database in this way.
  • 14 Using the IBM XIV Storage System in OpenStack Cloud Environments | id | c8bcbaaa5a244e49919918bda9a894a4 | | name | admin | | password | $6$rounds=40000$wo3vvujrr2vxnu.c$5d5chfsptblnnsn/bnpnxwgtwhkkwnkrwgv/wrzsp9qu4tgok unvdboavbz1p711o.2klfyqn/cwyhipckx2t/ | | tenantid | | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ Creating a role Create a role with the Keystone role-create command as shown in Example 7. Example 7 Keystone creating a role # keystone role-create --name admin +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | id | fb2c178790704412bf0cefaa66c5d01a | | name | admin | +----------+----------------------------------+ Creating a tenant Create a tenant with the Keystone tenant-create command as shown in Example 8. Example 8 Keystone creating a tenant # keystone tenant-create --name admin +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | | | enabled | True | | id | e7b3098b7ac140c9ae9b0c78136ee7dc | | name | admin | +-------------+----------------------------------+ Add the admin user to the admin tenant with an admin role, as illustrated in Example 9. Example 9 Keystone adding a user to a tenant with a role # keystone user-role-add --user-id c8bcbaaa5a244e49919918bda9a894a4 > --role-id fb2c178790704412bf0cefaa66c5d01a > --tenant-id e7b3098b7ac140c9ae9b0c78136ee7dc Explanation: The IDs come from the previous commands. The user-add-role command has no output.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 15 Defining an admin credential A credential is the identification data, which is generally a user name, password, and API key, that proves your identity. A credential is used for your authentication to the Identity service before the Identity service issues a token to you. You can use this token with Keystone or nova client for subsequent requests within the cloud infrastructure. The token, which is valid for a defined duration, is required to access cloud resources. To simplify the process, create the admin user’s credentials by using environment variables. Table 5 describes the environment variables. Table 5 Client environment variables Create a credential file: # echo export OS_USERNAME=admin >keystonerc_admin # echo export OS_TENANT_NAME=admin >>keystonerc_admin # echo export OS_PASSWORD=passw0rd >>keystonerc_admin # echo export OS_AUTH_URL=http://127.0.0.1:35357/v2.0/ >>keystonerc_admin Then, verify that the user can use the keystone client as shown in Example 10. Example 10 Keystone validating the admin accounts # . ~/keystonerc_admin # keystone user-list +----------------------------------+-------+---------+-------+ | id | name | enabled | email | +----------------------------------+-------+---------+-------+ | c8bcbaaa5a244e49919918bda9a894a4 | admin | True | | +----------------------------------+-------+---------+-------+ Environment variable Description OS_USERNAME Your OpenStack user name. OS_PASSWORD Your OpenStack user password. OS_TENANT_NAME Your tenant name, which is provided with your user name typically. OS_AUTH_URL The endpoint for the Identity service (Keystone), which the nova client uses for authentication. Include the trailing forward slash (/) in the URL. Otherwise, you receive a 404 error. NOVACLIENT_DEBUG Set to 1 to show the underlying cURL (cURL is a command-line tool for running REST API requests with OpenSSL) commands with the embedded API requests in the command responses. Otherwise, omit this variable.
  • 16 Using the IBM XIV Storage System in OpenStack Cloud Environments Creating the Service Tenant This special tenant contains the services to be made available through the service catalog. To create the Service Tenant, run the Keystone tenant-create client command as shown in Example 11. Example 11 Keystone creating the Service Tenant # keystone tenant-create --name service --description "Service Tenant" --enabled true +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Service Tenant | | enabled | True | | id | 8e40211618884c169e7c98166e903531 | | name | service | +-------------+----------------------------------+ Creating the glance user The Glance service has many interactions with Keystone and other OpenStack services. To allow Glance to interact and use cloud services, create the glance user in the Service Tenant. Create the glance service user in the Service Tenant as shown in Example 12. Example 12 Creating the service user in the Service Tenant # keystone user-create --name glance --pass password --tenant_id 8e40211618884c169e7c98166e903531 --enabled true +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | Property | Value | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | email | | | enabled | True | | id | 39080354a8d6429da958931dab748ad4 | | name | glance | | password | $6$rounds=40000$TEM9ujWBDe/w4R30$bdmbuItECsSF3JEeGBEnMuGylTyFhItbIDvSTsF5Y4SBnPNW3 Cp62nJNBiO.Y5j3UlmnyNgwpxIfDbZjvYB1j1 | | tenantId | 8e40211618884c169e7c98166e903531 | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ Important: You must create a user in the Service Tenant for all services that are added (Nova service user, EC2 user, and so on.)
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 17 Grant the admin role to the glance user in the Service Tenant by using this command: # keystone user-role-add --user-id 39080354a8d6429da958931dab748ad4 --role-id fb2c178790704412bf0cefaa66c5d01a --tenant-id 8e40211618884c169e7c98166e903531 Creating the Nova service user Create a Nova service user that is named nova in the Service Tenant as shown in Example 13. Example 13 Creating the Nova service user in the Service Tenant # keystone user-create --tenant-id 8e40211618884c169e7c98166e903531 --name nova --pass password --enabled true +----------+-----------------------------------------------------------------------------+ | Property | Value | +----------+-----------------------------------------------------------------------------+ | email | | enabled | True | id | 09d138247dda46659f078c9a322901a8 | | name | nova | | password | $6$rounds=40000$7M5yTg0lPB/G3NEE$OCLxu5kwxwKO.5JCWH7Ev4gre6rU5N0ZV1emFyQEuVO8RE/XU5QgHncEXk PZr4W4BZaS4e0tf7BGG5a37xu9/. | | tenantId | 8e40211618884c169e7c98166e903531 | +----------+------------------------------------------------------------------------------- ------------------------------------------+ Grant the admin role to the nova user in the Service Tenant by using this command: # keystone user-role-add --user-id 09d138247dda46659f078c9a322901a8 --role-id fb2c178790704412bf0cefaa66c5d01a --tenant-id 8e40211618884c169e7c98166e903531 Creating the EC2 user Elastic Compute Cloud (EC2) is an Amazon public cloud. OpenStack has APIs that are compatible with EC2. This compatibility support is intended to migrate client applications that are written for Amazon Web Services to OpenStack web services. To offer this compatibility, you must create the EC2 service. Create an EC2 service user that is named ec2 in the Service Tenant as shown in Example 14. Example 14 Creating the EC2 service user in the Service Tenant # keystone user-create --tenant-id 8e40211618884c169e7c98166e903531 --name ec2 --pass password --enabled true +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | Property | Value | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | email | | | enabled | True |
  • 18 Using the IBM XIV Storage System in OpenStack Cloud Environments | id | edcdf01973dd44f8857896b95ecf9d09 | | name | ec2 | | password | $6$rounds=40000$zxHONO76nUjXilpe$j1z318Gp49ivGaLqcQYH0w5xRa8eDfED//tSWbs4zFfy1WTnp anuzMG2pq8Wzr3HXbnty4J9VEg232Z4wKXcJ0 | | tenantId | 8e40211618884c169e7c98166e903531 | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ Grant the admin role to the ec2 user in the Service Tenant: # keystone user-role-add --user-id edcdf01973dd44f8857896b95ecf9d09 --role-id fb2c178790704412bf0cefaa66c5d01a --tenant-id 8e40211618884c169e7c98166e903531 Creating the Swift user Create a Swift service user that is named swift in the Service Tenant as shown in Example 15. Example 15 Creating the Swift user in the Service Tenant # keystone user-create --tenant-id 8e40211618884c169e7c98166e903531 --name swift --pass password --enabled true +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | Property | Value | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ | email | | | enabled | True | | id | 7059a9f98c4c4e4d921e0d24de562624 | | name | swift | | password | $6$rounds=40000$rjzQRF0fqfqkcWZi$9nYH3utSrw27EejdckVA/TbzJBuJ9l3TwvcM0B.MxZc75zqhZ B2v0axe4vPSciKQaWFWwtgUTv5hvrEDdXhwN. | | tenantId | 8e40211618884c169e7c98166e903531 | +----------+---------------------------------------------------------------------- ---------------------------------------------------+ Grant the admin role to the swift user in the Service Tenant: # keystone user-role-add --user-id 7059a9f98c4c4e4d921e0d24de562624 --role-id fb2c178790704412bf0cefaa66c5d01a --tenant-id 8e40211618884c169e7c98166e903531 Example 16 on page 19 shows the user and tenant definitions that we created.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 19 Example 16 OpenStack items list # keystone user-list +----------------------------------+--------+---------+-------+ | id | name | enabled | email | +----------------------------------+--------+---------+-------+ | 09d138247dda46659f078c9a322901a8 | nova | True | | | 39080354a8d6429da958931dab748ad4 | glance | True | | | 7059a9f98c4c4e4d921e0d24de562624 | swift | True | | | c8bcbaaa5a244e49919918bda9a894a4 | admin | True | | | edcdf01973dd44f8857896b95ecf9d09 | ec2 | True | | +----------------------------------+--------+---------+-------+ # keystone role-list +----------------------------------+-------+ | id | name | +----------------------------------+-------+ | fb2c178790704412bf0cefaa66c5d01a | admin | +----------------------------------+-------+ # keystone tenant-list +----------------------------------+---------+---------+ | id | name | enabled | +----------------------------------+---------+---------+ | 8e40211618884c169e7c98166e903531 | service | True | | e7b3098b7ac140c9ae9b0c78136ee7dc | admin | True | +----------------------------------+---------+---------+ Enabling Keystone To enable the compatibility for Swift with the Amazon Simple Storage Service (S31) API in Keystone, ensure that you define a filter. Enable the new filter in the /etc/keystone/keystone.conf file: [filter:s3_extension] paste.filter_factory = keystone.contrib.s3:S3Extension.factory [pipeline:admin_api] pipeline = token_auth admin_token_auth xml_body json_body debug ec2_extension s3_extension crud_extension admin_service Defining services You must perform two Keystone operations when you define an OpenStack service in the catalog. First, use the Keystone service-create command to enter a service item in the keystone database. For each service, you must define a type. The following services require these types: Nova service type is compute. EC2 service type is ec2. Glance service type is image. Keystone service type is identify. 1 Amazon S3 is a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web.
  • 20 Using the IBM XIV Storage System in OpenStack Cloud Environments Then, in a second step, with the Keystone endpoint-create command, create an endpoint item that links back to the service that you entered. This endpoint item specifies how the client can connect to the service. Example 17 through Example 22 on page 22 show the definitions of an associated endpoint for the mandatory services. Example 17 Creating the Keystone service with its endpoint # keystone service-create --name=keystone --type=identity --description="Keystone Identity Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Keystone Identity Service | | id | dbbd584177e84b2b95ff4cd4033de6b8 | | name | keystone | | type | identity | +-------------+----------------------------------+ # keystone endpoint-create --region RegionOne --service_id dbbd584177e84b2b95ff4cd4033de6b8 --publicurl 'http://172.16.104.169:5000/v2.0' --adminurl 'http://172.16.104.169:35357/v2.0' --internalurl 'http://172.16.104.169:5000/v2.0' +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://172.16.104.169:35357/v2.0 | | id | 0ddb84d4ef534ecaaa93901836e6f58e | | internalurl | http://172.16.104.169:5000/v2.0 | | publicurl | http://172.16.104.169:5000/v2.0 | | region | RegionOne | | service_id | dbbd584177e84b2b95ff4cd4033de6b8 | +-------------+----------------------------------+ Example 18 shows the creation of a Compute service with its associated endpoint. Example 18 Creating the Compute service with its endpoint # keystone service-create --name nova --type compute --description="Nova Compute Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Nova Compute Service | | id | bc65b85d04524b36b502cbd3f61f504c | | name | nova | | type | compute | +-------------+----------------------------------+ # keystone endpoint-create --region RegionOne --service_id=bc65b85d04524b36b502cbd3f61f504c --publicurl='http://172.16.104.169:8774/v2/%(tenant_id)s' --internalurl='http://172.16.104.169:8774/v2/%(tenant_id)s' --adminurl='http://172.16.104.169:8774/v2/%(tenant_id)s' +-------------+---------------------------------------------+
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 21 | Property | Value | +-------------+---------------------------------------------+ | adminurl | http://172.16.104.169:8774/v2/%(tenant_id)s | | id | e02e542363524bf8b9288526bea1825d | | internalurl | http://172.16.104.169:8774/v2/%(tenant_id)s | | publicurl | http://172.16.104.169:8774/v2/%(tenant_id)s | | region | RegionOne | | service_id | bc65b85d04524b36b502cbd3f61f504c | +-------------+---------------------------------------------+ Example 19 shows the creation of the Volume service with its associated endpoint. Example 19 Creating the Volume service with its endpoint # keystone service-create --name volume --type volume --description="Nova Volume Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Nova Volume Service | | id | c5826ce21c4e4268a175dee78453ec79 | | name | volume | | type | volume | +-------------+----------------------------------+ # keystone endpoint-create --region RegionOne --service_id=c5826ce21c4e4268a175dee78453ec79 --publicurl='http://172.16.104.169:8776/v1/%(tenant_id)s' --internalurl='http://172.16.104.169:8776/v1/%(tenant_id)s' --adminurl='http://172.16.104.169:8776/v1/%(tenant_id)s' +-------------+---------------------------------------------+ | Property | Value | +-------------+---------------------------------------------+ | adminurl | http://172.16.104.169:8776/v1/%(tenant_id)s | | id | 1b6ef336a3444382b0bc87cf8012280e | | internalurl | http://172.16.104.169:8776/v1/%(tenant_id)s | | publicurl | http://172.16.104.169:8776/v1/%(tenant_id)s | | region | RegionOne | | service_id | c5826ce21c4e4268a175dee78453ec79 | +-------------+---------------------------------------------+ Example 20 shows the creation of the Image service with its associated endpoint. Example 20 Creating the Image service with its endpoint # keystone service-create --name glance --type image --description="Glance Image Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Glance Image Service | | id | 4b4e999ea40b42f7abfdd4a88e29e72b | | name | glance | | type | image | +-------------+----------------------------------+
  • 22 Using the IBM XIV Storage System in OpenStack Cloud Environments # keystone endpoint-create --region RegionOne --service_id=4b4e999ea40b42f7abfdd4a88e29e72b --publicurl='http://172.16.104.169:9292/v1' --internalurl='http://172.16.104.169:9292/v1' --adminurl='http://172.16.104.169:9292/v1' +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://172.16.104.169:9292/v1 | | id | 63400c355f814b00b07480de8b65ce85 | | internalurl | http://172.16.104.169:9292/v1 | | publicurl | http://172.16.104.169:9292/v1 | | region | RegionOne | | service_id | 4b4e999ea40b42f7abfdd4a88e29e72b | +-------------+----------------------------------+ Example 21 shows the creation of the EC2 service with its associated endpoint. Example 21 Creating the EC2 service with its endpoint # keystone service-create --name ec2 --type ec2 --description="EC2 Compatibility Layer" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | EC2 Compatibility Layer | | id | d6359302111948319b0ebb48e7a42b30 | | name | ec2 | | type | ec2 | +-------------+----------------------------------+ # keystone endpoint-create --region RegionOne --service_id=d6359302111948319b0ebb48e7a42b30 --publicurl='http://172.16.104.169:8773/services/Cloud' --internalurl='http://172.16.104.169:8773/services/Cloud' --adminurl='http://172.16.104.169:8773/services/Admin' +-------------+-------------------------------------------+ | Property | Value | +-------------+-------------------------------------------+ | adminurl | http://172.16.104.169:8773/services/Admin | | id | d0d9328cd8d843d4a5bbaeaa265437e4 | | internalurl | http://172.16.104.169:8773/services/Cloud | | publicurl | http://172.16.104.169:8773/services/Cloud | | region | RegionOne | | service_id | d6359302111948319b0ebb48e7a42b30 | +-------------+-------------------------------------------+ Example 22 shows the creation of the Storage service with its associated endpoint. Example 22 Creating the Storage service with its endpoint # keystone service-create --name swift --type object-store --description="Object Store Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 23 | description | Object Store Service | | id | 4cade54c7d8c44d393dff1a887e06700 | | name | swift | | type | object-store | +-------------+----------------------------------+ # keystone endpoint-create --region RegionOne --service_id=4cade54c7d8c44d393dff1a887e06700 --publicurl 'http://172.16.104.169:8080/v1/AUTH_%(tenant_id)s' --adminurl 'http://172.16.104.169:8080/' --internalurl 'http://172.16.104.169:8080/v1/AUTH_%(tenant_id)s' +-------------+--------------------------------------------------+ | Property | Value | +-------------+--------------------------------------------------+ | adminurl | http://172.16.104.169:8080/ | | id | 55b151af1377469686bad18e238e2d4e | | internalurl | http://172.16.104.169:8080/v1/AUTH_%(tenant_id)s | | publicurl | http://172.16.104.169:8080/v1/AUTH_%(tenant_id)s | | region | RegionOne | | service_id | 4cade54c7d8c44d393dff1a887e06700 | +-------------+--------------------------------------------------+ Validating the Keystone installation with cURL Install cURL (curl), which is a command-line tool for running REST API requests with OpenSSL (openssl). If you are required to install cURL, run this command: # aptitude install curl openssl The command in Example 23 shows a query to ensure that Keystone (Identity service) is running. In return, you receive a token for the admin user. Example 23 Validating the Keystone installation with the cURL tool # curl -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "passw0rd"}}}' -H "Content-type:application/json" http://172.16.104.169:35357/v2.0/tokens | python -mjson.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2555 0 2452 100 103 18580 780 --:--:-- --:--:-- --:--:-- 18717 { "access": { "metadata": { "is_admin": 0, "roles": [ "fb2c178790704412bf0cefaa66c5d01a" ] }, "serviceCatalog": [ { "endpoints": [ { "adminURL": "http://172.16.104.169:8774/v2/e7b3098b7ac140c9ae9b0c78136ee7dc", "id": "e02e542363524bf8b9288526bea1825d", "internalURL": "http://172.16.104.169:8774/v2/e7b3098b7ac140c9ae9b0c78136ee7dc",
  • 24 Using the IBM XIV Storage System in OpenStack Cloud Environments "publicURL": "http://172.16.104.169:8774/v2/e7b3098b7ac140c9ae9b0c78136ee7dc", "region": "RegionOne" } ], "endpoints_links": [], "name": "nova", "type": "compute" }, { "endpoints": [ { "adminURL": "http://172.16.104.169:9292/v1", "id": "63400c355f814b00b07480de8b65ce85", "internalURL": "http://172.16.104.169:9292/v1", "publicURL": "http://172.16.104.169:9292/v1", "region": "RegionOne" } ], "endpoints_links": [], "name": "glance", "type": "image" }, Another way to test Keystone is to “source” a credential as shown in Example 24. Then, run a command by using the keystone client. Example 24 Validating the Keystone installation with the keystone command # cat > keystonerc_admin export OS_USERNAME=admin export OS_PASSWORD=passw0rd export OS_TENANT_NAME=admin export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/ enter CTRL-D to close the file keystonerc_admin # source keystonerc_admin # keystone user-list +----------------------------------+--------+---------+-------+ | id | name | enabled | email | +----------------------------------+--------+---------+-------+ | 09d138247dda46659f078c9a322901a8 | nova | True | | | 39080354a8d6429da958931dab748ad4 | glance | True | | | 7059a9f98c4c4e4d921e0d24de562624 | swift | True | | | c8bcbaaa5a244e49919918bda9a894a4 | admin | True | | | edcdf01973dd44f8857896b95ecf9d09 | ec2 | True | | +----------------------------------+--------+---------+-------+ Keystone client: The keystone client is installed with the Keystone packages.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 25 Installing Glance After the Keystone installation, Glance (Image service) must be installed. Install the Glance package by using this command: # aptitude install glance Or, you can initialize the glance database manually: # mysql -u root -p mysql> CREATE DATABASE glance; mysql> GRANT ALL ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'passw0rd'; Enter quit at the mysql> prompt to exit MySQL. Configuring Glance (Image service to use Keystone) Keystone is the main authentication processor. Update the Glance configuration files to use Keystone and to set the MySQL user and password. Follow these steps: 1. To update the configuration files, run the commands as shown in Example 25. Example 25 Updating the Glance configuration files # /etc/glance/glance-api-paste.ini [filter:authtoken] admin_token = $(cat ~/keystone_admin_token) admin_tenant_name = service admin_user = glance admin_password = passw0rd /etc/glance/glance-api.conf [paste_deploy] flavor = keystone # Allow access to version 1 of glance api enable_v1_api = True # Allow access to version 2 of glance api enable_v2_api = True /etc/glance/glance-registry.conf sql_connection = "mysql://glance:passw0rd@localhost/glance" 2. Synchronize the Glance database with the glance-manage command: # glance-manage db_sync 3. Start the glance-api and glance-registry services: # for svc in registry api ; do service glance-$svc start; done 4. Make Glance available after the reboot: # for svc in registry api ; do chkconfig glance-$svc on; done Attention: Depending on which python script version you use, errors might appear in the database. In this case, delete the glance database and the glance user in MySQL, and follow the manual Glance database initialization that is shown next. Troubleshooting: You can troubleshoot the Image service by checking the /var/log/glance/registry.log and /var/log/glance/api.log files.
  • 26 Using the IBM XIV Storage System in OpenStack Cloud Environments You can check that Glance is running correctly by issuing the Glance command: # glance index There is no output because Glance does not have any images yet. Adding an image to Glance For our example, we use an image that we created with the virt-install command. You might want to create your own image or download the test image as shown in Example 27. Follow these steps: 1. Create the image. Example 26 shows how to create an image from the Red Hat Linux Server 6.3 Installation ISO DVD. Example 26 Creating a virt-install image # sudo virt-install -n rh-qemu-02 -r 1024 --os-type=linux -f /tmp/red-hat-6.3-server-2.qcow2 -s 8 -c /home/itso/RHEL6.3-20120613.2-Server-x86_64-DVD1.iso OpenStack offers several test images that you can download from this website: http://docs.openstack.org/trunk/openstack-compute/admin/content/starting-images .html In our scenario, we use the cirros image. To download the test image, run the command that is shown in Example 27. Example 27 External test images for Glance # mkdir -p /home/itso/images # cd /home/itso/images # wget http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-12.1_2.6.35-2 2_1.tar.gz --2012-10-25 07:12:11-- http://smoser.brickies.net/ubuntu/ttylinux-uec/ttylinux-uec-amd64-12.1_2.6.35-2 2_1.tar.gz Resolving smoser.brickies.net... 173.236.255.44 Connecting to smoser.brickies.net|173.236.255.44|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 24346106 (23M) [application/x-tar] Saving to: “ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz” 100%[========================================================================== =========================================>] 24,346,106 370K/s in 85s 2012-10-25 07:13:37 (278 KB/s) - “ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz” saved [24346106/24346106] # tar -zxvf ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz 2. Now, you can load the images to Glance as shown in Example 28. Example 28 Loading images to Glance # glance image-create --name="tty-linuxkernel" --disk-format=aki --container-format=aki --file=ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz +------------------+--------------------------------------+
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 27 | Property | Value | +------------------+--------------------------------------+ | checksum | 3ed2965d3f8d877a3ee3e061fd648e9a | | container_format | aki | | created_at | 2013-01-28T11:45:06.620419 | | deleted | False | | deleted_at | None | | disk_format | aki | | id | f792c482-630c-4f83-b969-500d4718aece | | is_public | False | | min_disk | 0 | | min_ram | 0 | | name | tty-linuxkernel | | owner | None | | protected | False | | size | 4404752 | | status | active | | updated_at | 2013-01-28T11:45:06.871922 | +------------------+--------------------------------------+ # glance image-create --name="tty-linux-ramdisk" --disk-format=aki --container-format=aki --file=ttylinux-uec-amd64-12.1_2.6.35-22_1-loader +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | 644cf7d6d9e7b41d527e30e8e8c685a4 | | container_format | aki | | created_at | 2013-01-28T11:47:36.597966 | | deleted | False | | deleted_at | None | | disk_format | aki | | id | 243a91a2-dd3b-486c-a7ce-fb395bb924ef | | is_public | False | | min_disk | 0 | | min_ram | 0 | | name | tty-linux-ramdisk | | owner | None | | protected | False | | size | 96629 | | status | active | | updated_at | 2013-01-28T11:47:36.749197 | +------------------+--------------------------------------+ # glance image-create --name="MY-Linux" --disk-format=qcow2 --container-format=bare --file=ttylinux-uec-amd64-12.1_2.6.35-22_1.img +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | 10047a119149e08fb206eea89832eee0 | | container_format | bare | | created_at | 2013-01-28T12:09:10.978193 | | deleted | False | | deleted_at | None | | disk_format | qcow2 | | id | 6da3fc51-be7e-4e57-ad2d-9d53b3f9b867 |
  • 28 Using the IBM XIV Storage System in OpenStack Cloud Environments | is_public | False | | min_disk | 0 | | min_ram | 0 | | name | MY-Linux | | owner | None | | protected | False | | size | 25165824 | | status | active | | updated_at | 2013-01-28T12:09:11.352986 | +------------------+--------------------------------------+ 3. Verify that the images are correctly loaded into the Glance database as shown in Example 29. Example 29 Verifying that the images are loaded in Glance # glance image-show 6da3fc51-be7e-4e57-ad2d-9d53b3f9b867 +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | 10047a119149e08fb206eea89832eee0 | | container_format | bare | | created_at | 2013-01-28T12:09:10.978193 | | deleted | False | | disk_format | qcow2 | | id | 6da3fc51-be7e-4e57-ad2d-9d53b3f9b867 | | is_public | False | | min_disk | 0 | | min_ram | 0 | | name | MY-Linux | | protected | False | | size | 25165824 | | status | active | | updated_at | 2013-01-28T12:09:11.352986 | +------------------+--------------------------------------+ Installing Nova Compute Now, we can install Nova, which is also called Cloud Controller. Nova is responsible for managing the virtual machine (VM). The Nova installation requires the installation of several OpenStack services. The OpenStack services are qpid (messaging system), nova-compute, and memcached (used to speed up authentication, which is done with every request and insures proper communication with Dashboard). Install the Cloud Controller packages by using this command: # aptitude install nova-compute nova-volume nova-network nova-scheduler nova-objectstore memcached qpidd Create the Nova database: 1. Connect to the MySQL database by running the mysql -u root -p command. 2. At the MySQL prompt, enter the CREATE DATABASE nova; command. 3. At the MySQL prompt, create the MySQL user and grant access to the nova database: GRANT ALL ON nova.* TO 'nova'@'localhost' IDENTIFIED BY ‘passw0rd’;
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 29 4. Enter quit to quit MySQL. 5. Ensure that the owner of the /etc/nova/nova.conf file is set to root:nova. Ensure that the mode is set to 0640 by entering the following command as the root user: # groupadd nova # usermod -g nova nova # chown -R username:nova /etc/nova # chmod 640 /etc/nova/nova.conf 6. Update the /etc/nova/nova.conf and /etc/nova/nova/api-paste.ini files: – Make these updates in the etc/nova/nova.conf file: [DEFAULT] sql_connection = "mysql://nova:passw0rd@localhost/nova" auth_strategy = keystone network_manager = nova.network.manager.FlatDHCPManager fixed_range = 192.168.100.0/24 public_interface = eth0 flat_interface = eth0 flat_network_bridge = br100 – Make these updates in the /etc/nova/api-paste.ini file: [filter:authtoken] admin_token = YOUR_keystone_admin_token_VALUE 7. Then, stop the Nova services before the database synchronization: # for svc in api objectstore compute network volume scheduler cert; do sudo service nova-$svc stop ; sudo chkconfig nova-$svc on ; done 8. Create the tables in the nova database by using the nova-manage command: # nova-manage db sync 9. Restart the Nova services: # for svc in api objectstore compute network volume scheduler cert; do sudo service nova-$svc start ; done Configuring Qpid Configure and start Qpid, which provides Advanced Message Queueing Protocol (AMQP) to the Nova services. In the /etc/qpid/qpidd.conf file, uncomment #auth=yes and set it to auth=no as shown: auth=no Then, start by using these commands: # sudo service qpidd start # sudo chkconfig qpidd on Installing KVM In our environment, we use kernel-based virtual machine (KVM) as a hypervisor. Follow these steps: 1. To install the kvm package, run this command: # aptitude install kvm
  • 30 Using the IBM XIV Storage System in OpenStack Cloud Environments 2. Install the other suggested virtualization packages: # aptitude install virt-manager libvirt0 Configuring the Nova Compute service to use the KVM hypervisor We use libvirt, which provides the hypervisor to nova-compute. The nova-compute service interacts with the KVM through the libvirt service. Follow these steps: 1. Start the hypervisor and make it available after the reboot: # sudo service libvirtd start # sudo chkconfig libvirtd on 2. Update the nova.conf file to use the correct hypervisor. Change the following lines in the /etc/nova/nova.conf file: [DEFAULT] connection_type = libvirt libvirt_type = kvm libvirt_inject_partition = -1 3. Generate the Secure Shell (ssh) key pair that is used to connect to the VM instance through SSH. Before you instantiate a VM, you need to create at least one key pair. This key pair is injected into the VM so that you can use SSH to connect to the VM. Create a key pair and add the public key to OpenStack: # nova keypair-add oskey > oskey.priv # chmod 600 oskey.priv Creating the network for VM Use the bridge br100 for the VM use. Define the network range by using 192.168.100.0/24 as the fixed range: # aptitude install bridge-utils # ip link set eth0 promisc on # nova-manage network create private --multi_host=T --fixed_range_v4=192.168.100.0/24 --bridge_interface=br100 --num_networks=1 --network_size=256 -vlan=100 Configuring nova-volume (Cinder) Either nova-volume or Cinder, which is responsible for handling persistent storage for VMs, can have multiple back-end storage devices, such as IBM XIV or IBM V7000. Set up a nova-volume group as a quick and easy way to try out persistent volumes in the testing environment, as shown in Example 30. Example 30 nova-volume file-backed Logical Volume Manager (LVM) volume group # sudo truncate --size 20G ~/nova-volumes # sudo losetup -fv ~/nova-volumes Loop device is /dev/loop1 # sudo vgcreate nova-volumes /dev/loop1 Remember: This method must not be used in a production environment.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 31 No physical volume label read from /dev/loop0 Physical volume "/dev/loop0" successfully created Volume group "nova-volumes" successfully created # vgdisplay nova-volumes --- Volume group --- VG Name nova-volumes System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 20.00 GiB PE Size 4.00 MiB Total PE 5119 Alloc PE / Size 0 / 0 Free PE / Size 5119 / 20.00 GiB VG UUID 11yCOi-2je7-oXgd-g0MQ-lLMn-vUr0-taygT6 Start the tgtd (SCSI target daemon) service: # sudo service tgtd start # sudo chkconfig tgtd on Verify the controller installation as shown in Example 31. Example 31 nova service control # nova-manage service list Binary Host Zone Status State Updated_At nova-cert cloud01 nova enabled XXX None nova-scheduler cloud01 nova enabled XXX None nova-compute cloud01 nova enabled XXX None nova-network cloud01 nova enabled XXX None # nova image-list +--------------------------------------+-------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+-------------------+--------+--------+ | 6da3fc51-be7e-4e57-ad2d-9d53b3f9b867 | MY-Linux | ACTIVE | | | 243a91a2-dd3b-486c-a7ce-fb395bb924ef | tty-linux-ramdisk | ACTIVE | | | f792c482-630c-4f83-b969-500d4718aece | tty-linuxkernel | ACTIVE | | +--------------------------------------+-------------------+--------+--------+
  • 32 Using the IBM XIV Storage System in OpenStack Cloud Environments Installing the IBM Storage Driver for OpenStack The proxy is compatible with the open source driver that is already part of OpenStack in the Folsom release. The current IBM Storage Driver for OpenStack offers the following features: Create or delete a volume in the XIV Storage System by using the nova volume-* or volume-snapshot-* command. Attach an XIV Volume to or detach an XIV Volume from a VM and make the volume accessible via iSCSI. The iSCSI qualified name (IQN) is automatically created on the XIV Storage System. To install the IBM Storage Driver for OpenStack, create a pool on the XIV Storage System for the node. In our example, we created a pool that is named OpenStack. For the driver installation, you need the XIV IP address, admin name, and password. To install the IBM Storage Driver for OpenStack, see the driver installation guide: http://pic.dhe.ibm.com/infocenter/strhosts/ic/index.jsp?topic=%2Fcom.ibm.help.strg hosts.doc%2Fnova-homepage.html Verify that the IBM Storage Driver for OpenStack is correctly installed by checking the nova.conf file as shown in Example 32. The SAN parameters must have the volume_driver set to xiv_openstack.xiv.XIVDriver and the xiv_proxy set to xiv_openstack.nova_proxy.XIVNovaProxy. Example 32 XIV nova driver setup # tail /etc/nova/nova.conf libvirt_type=qemu auth_strategy = keystone flat_interface = eth0 public_interface = eth0 volume_driver = xiv_openstack.xiv.XIVDriver xiv_proxy = xiv_openstack.nova_proxy.XIVNovaProxy san_login = YOUR_XIV_ADMIN_ID san_password = YOUR_XIV_ADMIN_PASSWORD san_clustername = OpenStack san_ip = ip_address Create a volume by using IBM XIV Storage Driver for OpenStack: # nova volume-create --display_name redbk-03 34 This command has no output. Verify the volume that we created with the nova volume-list command (see Example 33 on page 32). The volume must have the “available” status before it can be used. Example 33 Verifying an XIV volume creation by using the nova command # nova volume-list +----+-----------+--------------+------+-------------+-------------+ | ID | Status | Display Name | Size | Volume Type | Attached to | Important: The Folsom release offers two options in terms of block storage: nova-volume and Cinder. Both options are nearly identical in terms of functionality, APIs, and even the general theory of operation. The illustrations in this paper are based on nova-volume. Remember, however, that nova-volume is deprecated and will be removed at the Grizzly release.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 33 +----+-----------+--------------+------+-------------+-------------+ | 4 | available | redbk-01 | 10 | None | | | 5 | available | redbk-03 | 34 | None | | +----+-----------+--------------+------+-------------+-------------+ # nova volume-show 5 +---------------------+---------------------+ | Property | Value | +---------------------+---------------------+ | attachments | [] | | availability_zone | nova | | created_at | 2012-10-26 09:02:27 | | display_description | None | | display_name | redbk-03 | | id | 5 | | metadata | {} | | size | 34 | | snapshot_id | None | | status | available | | volume_type | None | +---------------------+---------------------+ Starting a virtual machine and attaching an XIV volume To create a VM or instance, select the following information: The “flavor” or “instance type” that is needed for that VM or instance The image A flavor or instance type describes the compute, memory, and storage capacity of nova computing instances. The flavor or instance type is the size (in terms of vCPUs, RAM, and so on) of the virtual server. In the EC2 API, these instance types are named m1.large or m1.tiny. The OpenStack API designates these flavors with names, such as 512 MB Server. OpenStack Image (Glance) uses predefined machine characteristics. The nova flavor-list command prints existing machine characteristics that are defined in the Nova database. A new flavor can be created by using the nova flavor-create command. Example 34 shows how to start a new image that is created with the virt-install command. Add the VM image to the catalog by using the glance add command. Then, launch the instance with a nova boot command. Example 34 Adding an image to Glance # glance add name="RedHat Enterprise Server 6.3" disk_format=qcow2 container_format=bare < /tmp/red-hat-6.3-server-2.qcow2 Uploading image 'RedHat Enterprise Server 6.3' ================================================================================== ============================================[100%] 55.4M/s, ETA 0h 0m 0s Added new image with ID: 5a7e4539-df7c-47be-8093-7da418d62e42 # nova image-list +--------------------------------------+-----------------------+--------+--------+ | ID | Name | Status | Server | Storage capacity: The storage capacity in the flavor-list represents local storage on the Compute Node.
  • 34 Using the IBM XIV Storage System in OpenStack Cloud Environments +--------------------------------------+-----------------------+--------+--------+ | 0c5de13c-8a66-4004-9b42-797f34fa2059 | cirros-0.3.0-x86_64 | ACTIVE | | | 53fee854-c9b6-4b66-98e6-62a8c5244d66 | tty-linuxramdisk | ACTIVE | | | 5a7e4539-df7c-47be-8093-7da418d62e42 | RedHat Enterprise Server 6.3 | ACTIVE | | | a19c7ada-982b-4062-bc09-32ac618e1d4f | tty-linuxkernel | ACTIVE | | | f6e3c2a1-8c5b-4c32-bb40-2ed45f563133 | tty-linux | ACTIVE | | +--------------------------------------+-----------------------+--------+--------+ # nova boot --flavor 2 --key_name oskey --image 5a7e4539-df7c-47be-8093-7da418d62e42 redhat +-------------------------------------+--------------------------------------+ | Property | Value | +-------------------------------------+--------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | instance-00000003 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | accessIPv4 | | | accessIPv6 | | | adminPass | JTnrCV33dT6N | | config_drive | | | created | 2012-10-26T16:07:28Z | | flavor | m1.small | | hostId | | | id | ef6e6477-951c-4b1c-b5c8-73943800d5da | | image | RedHat Enterprise Server 6.3 | | key_name | oskey | | metadata | {} | | name | redhat | | progress | 0 | | status | BUILD | | tenant_id | aedd77cd85d84c9886395c8fa8e620ae | | updated | 2012-10-26T16:07:29Z | | user_id | 965e7fa9579e4ceba733e9bb225aac63 | +-------------------------------------+--------------------------------------+ # nova list +--------------------------------------+--------+--------+----------------+ | ID | Name | Status | Networks | +--------------------------------------+--------+--------+----------------+ | ef6e6477-951c-4b1c-b5c8-73943800d5da | redhat | BUILD | vmnet=10.0.0.3 | | efbaa726-ab57-4d5b-ab39-741f57f0d1a3 | cirros | ACTIVE | vmnet=10.0.0.2 | +--------------------------------------+--------+--------+----------------+ # nova show redhat +-------------------------------------+------------------------------------------+ | Property | Value | +-------------------------------------+------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-SRV-ATTR:host | blade11-HS21-13 | | OS-EXT-SRV-ATTR:hypervisor_hostname | None |
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 35 | OS-EXT-SRV-ATTR:instance_name | instance-00000003 | | OS-EXT-STS:power_state | 1 | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | accessIPv4 | | | accessIPv6 | | | config_drive | | | created | 2012-10-26T16:07:28Z | | flavor | m1.small | | hostId |d7a4f8634212269134c1f66f2447e821c128cbb445a4638bb8914200 | | id | ef6e6477-951c-4b1c-b5c8-73943800d5da | | image | RedHat Enterprise Server 6.3 | | key_name | oskey | | metadata | {} | | name | redhat | | progress | 0 | | status | ACTIVE | | tenant_id | aedd77cd85d84c9886395c8fa8e620ae | | updated | 2012-10-26T16:17:27Z | | user_id | 965e7fa9579e4ceba733e9bb225aac63 | | vmnet network | 10.0.0.3 | +-------------------------------------+------------------------------------------+ Using Horizon (Dashboard) Installing Horizon, the OpenStack web dashboard, is simple. Install the OpenStack-Dashboard package and then start the apache2 daemon. No additional configuration is needed. After the httpd daemon is running, users can log on to the Dashboard by using their OpenStack user names and passwords at http://host_ip_addr/horizon. Installing the Dashboard package Follow these steps to install the Dashboard package: 1. At the terminal prompt, run this command: # sudo aptitude install openstack-dashboard 2. Run this command to start the Dashboard: # sudo service httpd start 3. Then, to make the Dashboard available after the reboot, run this command: # sudo chkconfig httpd on Another service that is named qpidd might prevent you from starting the rabbitmq-server daemon correctly. To avoid this situation, stop the qpidd daemon before you start the rabbitmq-server daemon. Then, restart the qpidd daemon. Use these commands: # service qpidd stop # service rabbitmq-server start # service qpidd start
  • 36 Using the IBM XIV Storage System in OpenStack Cloud Environments Check that the memcached service is running by using this command: # service memcached status If the service is not running, restart it by running this command: # service memcached start Load the Dashboard in a web browser to confirm that it is running. The Log In page is shown in Figure 4. Figure 4 Dashboard Log In window Managing Nova by using Dashboard In this example, the Object Store is used to create an instance. Follow these steps: 1. Log on to the catalog by providing a user name and password. 2. Select the Project tab and then select Volumes. The Volumes menu is shown in Figure 5 on page 37.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 37 Figure 5 Dashboard - Volumes 3. Create a volume by selecting Create Volume. 4. On the Create Volume window, enter a volume name, a size in GBs, and an optional description. Then, click Create Volume as shown in Figure 6. Figure 6 Dashboard - Create Volume 5. Select Launch Instance to open the window that is shown in Figure 7 on page 38.
  • 38 Using the IBM XIV Storage System in OpenStack Cloud Environments Figure 7 Dashboard - Images & Snapshots 6. Select the image to launch (we selected image01) and click Launch. 7. In the Launch Instance window, select a medium Flavor as shown in Figure 8. Click Launch. Figure 8 Dashboard - Launch Instance 8. You are returned to the Instances window, which this time displays the new instance as shown in Figure 9 on page 39.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 39 Figure 9 Dashboard - Instances window that shows a new instance 9. Select the volume to attach to the instance. For our example, we selected the Vol01 volume. Then, select Edit attachment to open the window that is shown in Figure 10. Figure 10 Dashboard - Manage Volume Attachments 10.On Figure 10, in the drop-down list, select the instance that is launched and define a device that is named /dev/vdc/. Then, click Attach Volume. When you attach a volume by using the XIV Nova Volume Driver, an iSCSI host is created on the XIV Storage System. 11.Control the attachment of the created volume to the Compute Node. If the XIV Host Attachment Kit is installed, you can run the xiv_devlist command. 12.To verify that the volume is correctly attached to the instance, connect to the instance by running the ssh -i oskey.priv root@instance_ip_addr command. 13.List the device that is seen by the instance by using the ls /dev/vd* command. 14.You can now format the device within the instance as shown in Example 35 on page 40.
  • 40 Using the IBM XIV Storage System in OpenStack Cloud Environments Example 35 Formatting the virtual device # sudo mkfs.ext4 /dev/vdc mke2fs 1.41.14 (22-Dec-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2211840 inodes, 8835546 blocks 441777 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 270 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. 15.Mount the formatted device as shown in Figure 11. Figure 11 XIV Nova volume mount on the VM 16.Enter exit to leave the instance.
  • Using the IBM XIV Storage System in OpenStack Cloud Environments 41 The team who wrote this paper This paper was produced by a team of specialists from around the world working at the International Technical Support Organization, San Jose Center. Desire Brival is a Certified Architect who works with clients and sales teams to architect complex multi-brand solutions. He has deep knowledge of the IBM cross-brand initiatives, such as Cloud Computing, Virtualization, IT Optimization, IBM Dynamic Infrastructure®, and Storage Optimization Infrastructure. He has competitive knowledge of the major storage providers, as well as converged infrastructure solution offerings (Matrix, UCS, and Exadata/Exalogic). Bert Dufrasne is an IBM Certified Consulting I/T Specialist and Project Leader for IBM System Storage® disk products at the International Technical Support Organization, San Jose Center. He worked at IBM in various I/T areas. He authored many IBM Redbooks® publications and also developed and taught technical workshops. Before he joined the ITSO, he worked for IBM Global Services as an Application Architect. He holds a Master’s degree in Electrical Engineering. Bruce Allworth is a Senior IT Specialist who works as a Client Technical Open Systems Storage Specialist in Americas Sales and Distribution. He has over 20 years in IT and extensive experience with midrange storage products in solution design, solution management, advanced problem determination, and disaster recovery. He worked closely with various IBM divisions in launching new products and creating critical documentation, including Technical and Delivery Assessment Checklists, and developing and delivering technical training for a wide range of audiences. Mark Kremkus is a Senior IT Specialist in the Advanced Technical Skills organization. He has 11 years of experience in the design of high performance, high availability solutions. Mark achieved Consulting-level certification in Actualizing IT solutions. Mark’s areas of expertise include enterprise storage performance analysis with emphasis on using empirical data to perform mathematical modeling of disk storage performance, as well as integrating storage with open systems hypervisors. He writes and presents on these topics. He holds a BS degree in Electrical Engineering from Texas A&M. Markus Oscheka is an IT Specialist for Proof of Concepts and Benchmarks in the Disk Solution Europe team in Mainz, Germany. His areas of expertise include setup and demonstration of IBM System Storage solutions in open environments. He has written several IBM Redbooks and acted as the co-project lead for Redbooks publications, including IBM DS8000® and IBM XIV Storage. He holds a degree in Electrical Engineering from the Technical University in Darmstad. Thomas Peralto is a Principal Consultant in the Storage Solutions Engineering Group. He has extensive experience in implementing large and complex transport networks and mission-critical data protection throughout the globe. Mr. Peralto also serves as a data replication and data migration expert and speaks on both topics at the national and international levels for IBM on the best practices for corporate data protection. Special thanks to Lihi Lihi Tikolsky, IBM, for her help in preparation of this document. Thanks to the following people for their contributions to this project: Ohad Atia, Erik Zaadi, Miron Aloni, Anthony Vattathil, and Brian Carmody IBM
  • 42 Using the IBM XIV Storage System in OpenStack Cloud Environments Now you can become a published author, too! Here’s an opportunity to spotlight your skills, grow your career, and become a published author—all at the same time! Join an ITSO residency project and help write a book in your area of expertise, while honing your experience using leading-edge technologies. Your efforts will help to increase product acceptance and customer satisfaction, as you expand your network of technical contacts and relationships. Residencies run from two to six weeks in length, and you can participate either in person or as a remote resident working from your home base. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Stay connected to IBM Redbooks Find us on Facebook: http://www.facebook.com/IBMRedbooks Follow us on Twitter: http://twitter.com/ibmredbooks Look for us on LinkedIn: http://www.linkedin.com/groups?home=&gid=2130806 Explore new Redbooks publications, residencies, and workshops with the IBM Redbooks weekly newsletter: https://www.redbooks.ibm.com/Redbooks.nsf/subscribe?OpenForm Stay current on recent Redbooks publications with RSS Feeds: http://www.redbooks.ibm.com/rss.html
  • © Copyright International Business Machines Corporation 2013. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 43 Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not grant you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM websites are provided for convenience only and do not in any manner serve as an endorsement of those websites. The materials at those websites are not part of the materials for this IBM product and use of those websites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurements may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.
  • 44 Using the IBM XIV Storage System in OpenStack Cloud Environments ® Redpaper™ This document REDP-4971-00 was created or updated on March 11, 2013. Send us your comments in one of the following ways: Use the online Contact us review Redbooks form found at: ibm.com/redbooks Send your comments in an email to: redbooks@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HYTD Mail Station P099 2455 South Road Poughkeepsie, NY 12601-5400 U.S.A. Trademarks IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol (® or ™), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: DS8000® Dynamic Infrastructure® IBM® Redbooks® Redpaper™ Redbooks (logo) ® System Storage® XIV® The following terms are trademarks of other companies: Intel, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Snapshot, and the NetApp logo are trademarks or registered trademarks of NetApp, Inc. in the U.S. and other countries. Other company, product, or service names may be trademarks or service marks of others.