h14174:emc storage solutions with ubuntu … storage solutions with ubuntu openstack and canonical...
TRANSCRIPT
Reference Architecture Guide
EMC Solutions
May 2015
EMC STORAGE SOLUTIONS WITH UBUNTU OPENSTACK AND CANONICAL JUJU Managing EMC Storage Arrays with OpenStack Juno
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
2
Copyright © 2015 EMC Corporation. All Rights Reserved.
Published May 2015
EMC and Canonical Ltd. believe the information in this publication is accurate as of its publication date. The information is subject to change without notice.
The information in this publication is provided as is. EMC Corporation and Canonical Ltd. make no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose.
Use, copying, and distribution of any EMC software described in this publication requires an applicable software license.
For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com.
All other trademarks used herein are the property of their respective owners.
Ubuntu and Canonical are registered trademarks of Canonical Ltd.
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Part Number H14174
3 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Table of contents
Reference architecture overview ........................................................................................................... 5 Document purpose .......................................................................................................................... 5 Audience ......................................................................................................................................... 5 Solution purpose ............................................................................................................................. 5 Business challenge .......................................................................................................................... 5 Technology solution ......................................................................................................................... 6
Key components ................................................................................................................................... 7 Introduction ..................................................................................................................................... 7 VNX unified storage platform ........................................................................................................... 7 XtremIO flash-based storage platform .............................................................................................. 7 OpenStack ....................................................................................................................................... 7
OpenStack technology overview........................................................................................................... 8 OpenStack components ................................................................................................................... 8
Compute (Nova) .......................................................................................................................... 8 Object Storage (Swift) ................................................................................................................. 8 Block Storage (Cinder) ................................................................................................................. 8 Networking (Neutron) .................................................................................................................. 8 Dashboard (Horizon) ................................................................................................................... 9 Identity Service (Keystone) .......................................................................................................... 9 Telemetry (Ceilometer) ................................................................................................................ 9 Image Service (Glance) ................................................................................................................ 9 MAAS ........................................................................................................................................ 10 Juju ........................................................................................................................................... 10
Solution architecture .......................................................................................................................... 11 OpenStack management services .................................................................................................. 11 Networking .................................................................................................................................... 11
Management network ................................................................................................................ 11 Intelligent Platform Management Interface (IPMI) network ......................................................... 11 Data network ............................................................................................................................. 11 Storage network ........................................................................................................................ 11 Public network .......................................................................................................................... 11
Architecture ................................................................................................................................... 11 Hardware resources ....................................................................................................................... 12 Software resources ........................................................................................................................ 13 Storage protocols ........................................................................................................................... 13
Requirements ..................................................................................................................................... 14
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
4
Server and networking requirements .............................................................................................. 14 VNX requirements .......................................................................................................................... 14 XtremIO requirements .................................................................................................................... 15 OpenStack requirements ............................................................................................................... 16
Installation ......................................................................................................................................... 17 Juju deployer .................................................................................................................................. 17 Server hardware preparation .......................................................................................................... 17 Network preparation ...................................................................................................................... 17 OpenStack deployment .................................................................................................................. 17
Configuration ..................................................................................................................................... 22 VNX ................................................................................................................................................ 22 XtremIO .......................................................................................................................................... 24
Managing storage volumes ................................................................................................................ 26
Support .............................................................................................................................................. 27
Conclusion ......................................................................................................................................... 28
References.......................................................................................................................................... 29 EMC documentation ....................................................................................................................... 29 Canonical documentation .............................................................................................................. 29 OpenStack documentation............................................................................................................. 29
5 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Reference architecture overview
This reference architecture guide describes a solution for managing storage volume life cycles using EMC® storage technologies and Ubuntu® OpenStack®. The document introduces the main features and functionality of the solution, the solution architecture and components, and the validated hardware and software environments.
This document describes the reference architecture and provides guidance on integrating the components and functionality of Ubuntu OpenStack software and EMC storage systems. This document is not a comprehensive guide to every aspect of the solution.
This reference architecture guide is for cloud architects, cloud operators, and general IT administrators who want to manage EMC storage with Ubuntu OpenStack. Readers must be familiar with OpenStack, Linux, EMC storage technologies, and general IT functions.
The purpose of this solution is to build a scalable multitenant cloud infrastructure that integrates EMC storage technologies with Ubuntu OpenStack software. This solution is built on EMC VNX® and EMC XtremIO™ storage platforms managed by Metal as a Service (MAAS) and Juju, which are Canonical's tools for cloud provisioning, modeling, and management.
The difficulty of creating a cloud solution has given rise to several cloud software vendors who have built proprietary technology and business models specifically catering to the requirements of standardization, agility, control, and reliability. Several new open source technologies also are available to assist in creating a cloud solution, but customers need to know how to best use these technologies to drive standardization, integrate open source and proprietary systems, minimize cost, and support service-level agreements.
Many organizations are also under pressure to provide enterprise-quality service levels without paying enterprise prices. As a result, IT departments must implement cost-effective alternatives to proprietary cloud software and services. These alternatives need to include features such as data protection, disaster recovery, and guaranteed service levels.
This solution enables customers to build an open-source cloud environment and validate the environment for performance, scalability, and functionality. With EMC storage solutions and Ubuntu OpenStack, customers gain the following benefits:
• A virtual infrastructure that can be deployed quickly with Canonical MAAS and Juju
• Reduced licensing and operating costs
• Compatibility with multiple hardware and software vendors
• Increased cloud solution portability and agility because of reduced dependence on proprietary systems
Document purpose
Audience
Solution purpose
Business challenge
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
6
This solution demonstrates how to use EMC storage systems, Ubuntu OpenStack, and Cinder block storage drivers to provide the storage resources for a robust OpenStack environment. This solution incorporates the following components:
• EMC VNX
• EMC XtremIO
• Ubuntu OpenStack
• Canonical MAAS
• Canonical Juju
• Cinder drivers for EMC VNX and XtremIO (part of Juno release)
Technology solution
7 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Key components
This section briefly describes the following key components used in this solution:
• EMC VNX storage platform
• EMC XtremIO flash array
• Ubuntu OpenStack cloud computing software platform
The VNX family delivers a choice of systems ranging from affordable entry-level solutions to high-performance, petabyte-capacity configurations servicing the most demanding application requirements. The VNX family includes the following:
• The VNX series is designed to meet the high-performance, high-scalability requirements of midsize and large enterprises. It includes the VNX8000™, VNX7600™, VNX5800™, VNX5600™, VNX5400™, and the VNX5200™ systems.
• The VNXe series is designed for small- and medium-sized businesses. This entry-level series includes the VNXe3200™ system.
XtremIO is a scale-out clustered design that grows capacity and performance linearly to meet any requirement. XtremIO arrays are created from building blocks called X-Bricks that are each a high-availability, high-performance, fully active/active storage system with no single point of failure. The XtremIO arrays include the Starter X-Brick, 1 X-Brick, 2 X-Brick cluster, 4 X-Brick cluster, and 6 X-Brick cluster.
OpenStack is a cloud computing software platform that controls large pools of compute, storage, and networking resources in a data center, all managed through a dashboard that gives administrators control while enabling users to provision resources through a web interface. OpenStack supports several hypervisors, including Kernel-based Virtual Machine (KVM), and a wide range of hardware.
Metal as a Service brings the language of the cloud to physical servers. It enables you to easily manage the hardware used to deploy any dynamically scalable service, including cloud environments. Juju is service modeling made simple, and enables you to build entire cloud environments with only a few commands.
Introduction
VNX unified storage platform
XtremIO flash-based storage platform
OpenStack
Canonical MAAS and Juju
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
8
OpenStack technology overview
The following OpenStack components were used to create a virtual computing environment.
Compute (Nova)
OpenStack Compute (Nova) is a cloud computing fabric controller. It is designed to manage and automate pools of compute resources and can work with widely available virtualization technologies as well as bare metal and high-performance computing configurations. Compute can use several hypervisor technologies, including KVM.
Nova's architecture is designed to scale horizontally on standard hardware with no proprietary hardware or software requirements and to integrate with legacy systems and third-party technologies.
Object Storage (Swift)
OpenStack Object Storage (Swift) is a scalable, redundant storage system. Swift writes objects to multiple disk drives spread throughout servers in a data center, while the OpenStack software ensures data replication and integrity across the cluster. You can scale storage clusters horizontally simply by adding new servers.
If a server or hard drive fails, OpenStack replicates its content from other active nodes to new locations in the cluster. Because OpenStack uses software logic to ensure data replication and distribution across different devices, you can use inexpensive commodity hard drives and servers in your infrastructure. Enterprise storage options include EMC Elastic Cloud Storage and the EMC Isilon® platform. Both options provide storage that is compatible with Swift and can be accessed using the Object Storage API.
Block Storage (Cinder)
OpenStack Block Storage (Cinder) provides persistent block-level storage devices for use with OpenStack compute instances. Block storage volumes are fully integrated into OpenStack Compute and the Dashboard, enabling cloud users to manage their own storage needs. VNX and XtremIO drivers are included with Cinder in the Juno release.
In addition to local Linux server storage, OpenStack Block Storage can use storage platforms such as VNX, ScaleIO, and XtremIO. OpenStack Block Storage is appropriate for performance-sensitive scenarios such as database storage, low latency workloads, or providing a server with access to raw block-level storage.
Snapshot management provides powerful functionality for backing up data stored on block storage volumes. Snapshots can be restored or used to create a new block storage volume.
Networking (Neutron)
OpenStack Networking is a service for managing networks and IP addresses. OpenStack Networking ensures that the network is not a bottleneck or limiting factor
OpenStack components
9 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
in a cloud deployment, and gives users self-service capability, even over network configurations.
OpenStack Networking provides networking models for different applications or user groups. Standard models include flat networks, VLANs that separate servers and traffic, and provider networks. OpenStack Networking manages IP addresses, allowing for dedicated static IP addresses or DHCP. Floating IP addresses allow traffic to be dynamically rerouted to any resources in the IT infrastructure, so users can redirect traffic during maintenance or in case of a failure.
Users can create their own networks, control traffic, and connect servers and devices to one or more networks. Administrators can use software-defined networking (SDN) technology like OpenFlow to support high levels of multitenancy and massive scaling. OpenStack Networking provides an extension framework that can deploy and manage additional network services such as intrusion detection systems, load balancing, firewalls, and virtual private networks.
Dashboard (Horizon)
OpenStack Dashboard (Horizon) provides administrators and users a graphical interface to access, provision, and automate cloud-based resources. The design accommodates third-party products and services, such as billing, monitoring, and additional management tools.
Identity Service (Keystone)
OpenStack Identity Service (Keystone) provides a central directory of users mapped to the OpenStack services they can access. It acts as a common authentication system across the cloud platform and can integrate with existing back-end directory services like LDAP. It supports multiple forms of authentication including standard username and password credentials, token-based systems, and Amazon Web Services (AWS)-style logins.
The Keystone catalog provides a queryable registry of all of the services deployed in an OpenStack cloud. Users and third-party tools can programmatically determine which resources can be accessed.
Telemetry (Ceilometer)
OpenStack Telemetry (Ceilometer) provides a single point of contact for billing systems, providing all the counters needed to establish customer billing, across all current and future OpenStack components.
Image Service (Glance)
OpenStack Image Service (Glance) provides discovery, registration, and delivery services for disk and server images. Stored images can be used as templates. Image Service can also be used to store and catalog an unlimited number of backups. Image Service can store disk and server images in a variety of back ends, including OpenStack Object Storage. The Image Service API provides a standard REST interface for querying information about disk images and lets clients stream the images to new servers.
Glance is the OpenStack Image Service module. It is a compute module, and it does not store images, variations, or instances. It catalogs them and holds their metadata
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
10
from Swift or a storage back-end datastore. Other modules must communicate with the image’s metadata through Glance. Also, Nova can present information about the images and configure a variation on an image to produce an instance. However, Glance is the only module that can add, delete, share, or duplicate images.
MAAS
Metal as a Service (MAAS) is a bare metal provisioning service that lets you manage and provision your physical servers as you would virtual machines in a cloud. MAAS is responsible for discovering hardware and installing Ubuntu OpenStack. MAAS allows you to connect, commission, and deploy servers; dynamically re-allocate nodes between services; and decommission and retire nodes when required.
Juju
Juju is a service modeling and management tool that allows you to configure, manage, and scale cloud software and services quickly and efficiently on bare metal servers, public clouds, and private clouds. Juju charms are abstractions of services that enable you to deploy OpenStack architectures on MAAS-controlled hardware, or on cloud computing services such as Amazon Web Services, Joyent compute services, or Microsoft Azure.
OpenStack tools
11 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Solution architecture The architecture described in this solution is an example of a small Ubuntu OpenStack deployment integrated with EMC VNX and XtremIO and deployed using MAAS and Juju. Use Juju to scale out this architecture to a larger deployment by adding more compute or object storage units. In this architecture certain OpenStack components are deployed on the compute node. Deploy OpenStack services on dedicated nodes for higher scalability or performance requirements.
This reference architecture does not implement high availability for OpenStack services. Information on making OpenStack services highly available can be found in the OpenStack High Availability Guide and in the Ubuntu wiki for OpenStackHA.
To achieve a higher level of performance, this architecture segments storage traffic into a separate network interface. The networks used in this architecture are detailed below. With the exception of the management and data networks, individual NICs are assigned on each server and assigned to their respective network functions.
Note: This reference architecture does not isolate the data and management networks to individual NICs. Contact Canonical consulting services for assistance with isolating these networks.
The architecture diagram below illustrates the logical network design for this architecture.
Management network
The management network is used to support OpenStack traffic for OpenStack management components.
Intelligent Platform Management Interface (IPMI) network
The IPMI network is used by MAAS to manage the physical servers and access the IPMI console to control power on and power off of bare metal servers.
Data network
The data network is an internal network for traffic between virtual machines, and between virtual machines and the network nodes that provide L3 routing to the public network. This is an internal-only network.
Storage network
The storage network in this architecture is used to allow iSCSI traffic between OpenStack nodes and the external VNX or XtremIO arrays.
Public network
This network is used to provide external access to virtual machines in the OpenStack environment. It provides floating IP address to virtual machines allowing for external access from the virtual machines.
The diagram in this section depicts the architecture used to deploy Ubuntu OpenStack with EMC storage systems and Cinder drivers. The deployment involves building an OpenStack environment with MAAS and Juju and integrating it with VNX and XtremIO using Juju charms (deployment bundles) for both VNX and XtremIO, as
OpenStack management services
Networking
Architecture
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
12
well as integrating the new features of these systems to provide a high-performance and cost-effective storage solution.
Figure 1 depicts the solution architecture.
Figure 1. Reference architecture for deploying EMC storage with Ubuntu OpenStack
Table 1 lists the hardware used in this solution.
Table 1. Solution hardware
Hardware Quantity Connectivity Firmware version
EMC VNX5600 1 iSCSI 05.33.006.5.096
EMC XtremIO Generation 2
1 iSCSI 3.0.0-44
Cisco UCS B200 M3 Blade Server
10 N/A N/A
Hardware resources
13 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Table 2 lists the OpenStack and cloud infrastructure software used in this solution.
Table 2. OpenStack and cloud infrastructure software
Software Version Description
OpenStack Juno Open-source cloud computing software platform
MAAS 1.7.1 Metal as a Service for server provisioning
Juju 1.21.3 A universal model for installing software on a physical or virtual machine
Juju Charms for VNX and XtremIO
cinder-vnx and cinder-xtremio
Deployment scripting bundles created for Juju
Ubuntu Trusty Tahr 14.04 LTS Operating system for the cloud environment
KVM N/A Hypervisor in the Ubuntu kernel
DM-Multipath 0.4.9-3 Multipathing software
Table 3 lists the EMC storage software used in this solution.
Table 3. EMC storage software
Software Version Description
EMC Unisphere 1.3.3.1.0072 Management software for VNX storage
EMC Navisphere CLI (Linux x64) 7.33.2.0.51 CLI for OpenStack VNX Cinder driver
EMC VNX Operating Environment 5.33.000.5.074 Operating environment for VNX block storage
EMC XtremIO 3.0.0-44 Operating environment for XtremIO
Cinder block driver OpenStack Juno Block storage driver
Table 4 lists the storage protocols used in this solution.
Table 4. Storage protocols
Protocol Bandwidth
iSCSI 10 Gb Ethernet
Software resources
Storage protocols
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
14
Requirements This section outlines specific requirements that must be met before Ubuntu OpenStack can be used with EMC storage solutions.
The server hardware and networking requirements for this OpenStack solution comply with the EMC Simplified Support Matrix. The solution currently supports only IPv4. IPv6 has not been tested. This solution uses standard EMC-supported storage system connectivity options, including the networking technologies listed below.
• Management interface: 10 Gb Ethernet
• iSCSI storage network: 10 Gb Ethernet
• IPMI network: 1 Gb Ethernet
• Data network: 10 Gb Ethernet
• Public network: 10 Gb Ethernet
For this reference architecture separate NICs are used for each network.
Note: The Juju charms used to deploy this architecture do not isolate the data and management networks. Contact Canonical consulting services for assistance with isolating OpenStack data networks.
MAAS also allows the use of VLANs to segregate networks but this was not tested for this reference architecture. For further information on MAAS and VLANs refer to the MAAS documentation on the Ubuntu website.
To configure isolated storage networks for VNX or XtremIO iSCSI connectivity, manually configure the network interfaces assigned for the storage network after the OpenStack deployment is complete.
The use of iSCSI requires the following network connectivity from all OpenStack controller and compute nodes:
• Connectivity from the OpenStack management network to the VNX management network.
• Connectivity from the OpenStack storage network(s) to the VNX iSCSI networks.
You must configure VNX storage and storage pools using EMC Unisphere or Naviseccli. You must manually register host iSCSI initiators on the VNX unless the cinder.conf configuration file specifies automatic host initiator registration.
Additional packages are required to enable iSCSI multipathing on Ubuntu. Use the following procedure on each OpenStack node to enable iSCSI multipathing for VNX:
1. Install Ubuntu multipath-tools with the following command:
sudo apt-get install multipath-tools
2. Create an /etc/multipath.conf file that contains the following:
Server and networking requirements
VNX requirements
15 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
blacklist { # Skip LUNZ device from VNX device { vendor "DGC" product "LUNZ" } } defaults { user_friendly_names no flush_on_last_del yes } devices { # Device attributes for EMC CLARiiON and VNX series ALUA device { vendor "DGC" product ".*" product_blacklist "LUNZ" path_grouping_policy group_by_prio path_selector "round-robin 0" path_checker emc_clariion features "1 queue_if_no_path" hardware_handler "1 alua" prio alua failback immediate } }
3. Restart the multipath-tools service:
sudo service multipath-tools reload
Network connectivity is required from all OpenStack nodes to both the XtremIO management network and from the OpenStack storage network(s) to the XtremIO iSCSI networks.
Additional packages are required to enable iSCSI multipathing on Ubuntu. Use the following procedure on each OpenStack node to enable iSCSI multipathing for XtremIO:
1. Install Ubuntu multipath-tools with the following command:
sudo apt-get install multipath-tools
2. Create an /etc/multipath.conf file that contains the following:
defaults { user_friendly_names no flush_on_last_del yes } devices { device { vendor XtremIO product XtremApp path_selector "queue-length 0" rr_min_io_rq 1 path_grouping_policy multibus path_checker tur }
XtremIO requirements
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
16
}
3. Restart the multipath-tools service:
sudo service multipath-tools reload
This architecture is designed to be used with MAAS 1.7.1, Juju 1.21, and OpenStack Juno running on Ubuntu 14.04. Cinder drivers for both VNX and XtremIO are installed as part of the OpenStack deployment with Juju.
OpenStack requirements
17 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Installation OpenStack can be installed manually using packages on Ubuntu, but this might not be suitable for medium to large-scale deployments. For this reference architecture MAAS was used to manage bare metal provisioning of the physical servers and the juju-deployer tool from Juju was used for OpenStack service management.
For more information on installing and configuring MAAS refer to the MAAS website. For more information on installing Juju refer to the Juju website.
Note: For Ubuntu OpenStack deployments for VNX or XtremIO iSCSI, nodes must be configured to use the MAAS Debian installer method.
Juju deployer provides a high-level domain-specific language (DSL) for automating the deployment of application topologies with Juju. It allows complex Juju service deployments to be declared (including constraints, relations, configurations, and resources) and deployed across any provider. More information can be found on Juju deployer’s project page.
Prepare server hardware as detailed in the MAAS documentation. Ensure that servers have access to the required networks as outlined in the architecture diagram. Ensure that the management network that is being used for the OpenStack deployment can access the management network of VNX or XtremIO. Also ensure that the storage network being used for deployment has access to the iSCSI network(s) on VNX or XtremIO.
The MAAS documentation on networks details the steps required to register multiple networks for Ubuntu OpenStack. This architecture uses OpenStack tenant GRE networking and uses separate physical NICs for the public, management, data, and storage networks. Manually register each of these networks in MAAS before deploying the Ubuntu OpenStack environment.
In addition to MAAS configuration, follow these guidelines for networking:
• In the case of either XtremIO or VNX, network connectivity is required from the management network of all OpenStack nodes to the management network of the VNX or XtremIO array.
• For iSCSI on either VNX or XtremIO, network connectivity is required from the storage network on all OpenStack nodes to the iSCSI networks on the VNX or XtremIO array.
For this reference architecture Juju was used to deploy the OpenStack environment. Juju allows you to define, deploy, and relate services using bundles described in the pre-configured YAML (YAML Ain't Markup Language) files. These bundles provide all the information necessary for Juju to deploy and configure a complete stack of OpenStack services.
The text below shows a sample YAML file for Juju that can be used to deploy the common OpenStack services similar to the architecture detailed in this document.
Juju deployer
Server hardware preparation
Network preparation
OpenStack deployment
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
18
This deployment file includes a sample Juju charm configuration for both VNX and XtremIO drivers.
openstack: series: trusty services: cinder: charm: "cs:trusty/cinder" num_units: 1 options: openstack-origin: cloud:trusty-juno block-device: "None" os-public-network: "192.168.233.64/26" annotations: "gui-x": "750" "gui-y": "750" to: - "nova-compute=2" cinder-vnx: charm: "cs:trusty/cinder-vnx" options: openstack-origin: cloud:trusty-juno destroy_empty_storage_group: "True" storage_vnx_pool_name: "EHC_OpenStack_Canonical" storage_vnx_authentication_type: "global" default_timeout: 10 san_ip: "10.110.72.41" san_secondary_ip: "10.110.72.42" san_password: "password" san_login: "admin" initiator_auto_registration: "True" annotations: "gui-x": "750" "gui-y": "850" cinder-xtremio: charm: "cs:trusty/cinder-xtremio" num_units: 1 options: openstack-origin: cloud:trusty-juno san_ip: “10.110.72.55” san_login: “openstack” san_password:”password” annotations: "gui-x": "750" "gui-y": "750" glance: charm: "cs:trusty/glance" num_units: 1 options: openstack-origin: cloud:trusty-juno os-public-network: "192.168.233.64/26" annotations: "gui-x": "750" "gui-y": "375" to: - "lxc:nova-compute=1" "juju-gui": charm: "cs:trusty/juju-gui"
19 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
num_units: 1 annotations: "gui-x": "0" "gui-y": "1500" to: - "0" swift-proxy: charm: "cs:trusty/swift-proxy" num_units: 1 options: openstack-origin: cloud:trusty-juno zone-assignment: "auto" replicas: 2 swift-hash: "b3fd54d36703507b2527" annotations: "gui-x": "0" "gui-y": "0" to: - "lxc:nova-compute=1" swift-storage: charm: "cs:trusty/swift-storage" constraints: tags=swift num_units: 2 options: openstack-origin: cloud:trusty-juno block-device: sdb overwrite: "true" annotations: "gui-x": "0" "gui-y": "375" keystone: charm: "cs:trusty/keystone" num_units: 1 options: openstack-origin: cloud:trusty-juno os-public-network: "192.168.233.64/26" os-internal-network: "192.168.233.128/26" admin-password: "openstack" admin-token: "openstack" annotations: "gui-x": "1125" "gui-y": "0" to: - "lxc:nova-compute=1" mysql: charm: "cs:trusty/mysql" num_units: 1 #constraints: tags=controllers options: source: distro max-connections: 1000 annotations: "gui-x": "1500" "gui-y": "375" to: - "lxc:nova-compute=2" "nova-cloud-controller": charm: "cs:trusty/nova-cloud-controller"
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
20
num_units: 1 options: openstack-origin: cloud:trusty-juno console-access-protocol: "spice" quantum-security-groups: "yes" network-manager: "Neutron" neutron-external-network: "public-network" os-public-network: "192.168.233.64/26" annotations: "gui-x": "1500" "gui-y": "750" to: - "lxc:nova-compute=4" "nova-compute": charm: "cs:trusty/nova-compute" num_units: 6 constraints: tags=control options: openstack-origin: cloud:trusty-juno os-data-network: "192.168.233.128/26"
iscsi-use-multipath: True use-cow-images: True annotations: "gui-x": "1125" "gui-y": "1125" ntp: charm: "cs:trusty/ntp" num_units: 0 annotations: "gui-x": "2250" "gui-y": "1500" ntpmaster: charm: "cs:trusty/ntpmaster" num_units: 1 options: source: 10.254.140.21 annotations: "gui-x": "1125" "gui-y": "1500" to: - "0" "openstack-dashboard": charm: "cs:trusty/openstack-dashboard" num_units: 1 options: openstack-origin: cloud:trusty-juno debug: "yes" annotations: "gui-x": "2250" "gui-y": "0" to: - "lxc:nova-compute=0" quantum-gateway: charm: "cs:trusty/quantum-gateway" num_units: 1 options: openstack-origin: cloud:trusty-juno os-data-network: "192.168.233.128/26"
21 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
instance-mtu: 1400 ext-port: eth1 annotations: "gui-x": "1875" "gui-y": "1125" to: - "nova-compute=5" rabbitmq-server: charm: "cs:trusty/rabbitmq-server" num_units: 1 options: source: distro annotations: "gui-x": "1875" "gui-y": "1125" to: - "lxc:nova-compute=2" relations: - [ "ntp:juju-info", "quantum-gateway:juju-info" ] - [ "ntp:juju-info", "nova-compute:juju-info" ] - [ "keystone:shared-db", "mysql:shared-db" ] - [ "swift-proxy:swift-storage", "swift-storage:swift-storage" ] - [ "swift-proxy:identity-service", "keystone:identity-service" ] - [ "nova-cloud-controller:shared-db", "mysql:shared-db" ] - [ "nova-cloud-controller:identity-service", "keystone:identity-service" ] - [ "nova-cloud-controller:amqp", "rabbitmq-server:amqp" ] - [ "nova-cloud-controller:image-service", "glance:image-service" ] - [ "nova-cloud-controller:cinder-volume-service", "cinder:cinder-volume-service" ] - [ "nova-cloud-controller:quantum-network-service", "quantum-gateway:quantum-network-service" ] - [ "nova-compute:shared-db", "mysql:shared-db" ] - [ "nova-compute:amqp", "rabbitmq-server:amqp" ] - [ "nova-compute:image-service", "glance:image-service" ] - [ "glance:shared-db", "mysql:shared-db" ] - [ "glance:identity-service", "keystone:identity-service" ] - [ "cinder:identity-service", "keystone:identity-service" ] - [ "cinder:amqp", "rabbitmq-server:amqp" ] - [ "cinder:image-service", "glance:image-service" ] - [ "quantum-gateway:shared-db", "mysql:shared-db" ] - [ "quantum-gateway:amqp", "rabbitmq-server:amqp" ] - [ "openstack-dashboard:identity-service", "keystone:identity-service" ] - [ "cinder:shared-db", "mysql:shared-db" ] - [ "nova-compute:cloud-compute" ,"nova-cloud-controller:cloud-compute" ] - [ "cinder:storage-backend" ,"cinder-vnx:storage-backend" ] - [ "cinder:storage-backend" ,"xtremio-vnx:storage-backend" ]
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
22
Configuration This section outlines the steps to deploy and configure Cinder drivers for XtremIO and VNX using Juju charms. For this reference architecture, all XtremIO and VNX configuration is managed by Juju, which enables a single deployment file to configure the OpenStack environment and the VNX or XtremIO Cinder drivers. The cinder-vnx and cinder-xtremio charms used to deploy VNX and XtremIO are available in the Juju Charm Store.
The VNX Cinder driver is installed as part of the Ubuntu OpenStack deployment process. In this deployment, all VNX configuration options are managed using the Juju Cinder VNX charm, which is a Juju deployment script that enables VNX storage as the Cinder backend during deployment of the environment.
The text below outlines the Juju configuration options that were used to deploy the Cinder VNX charm with Juju and enable VNX as the Cinder backend.
cinder-vnx: charm: cs: trusty/cinder-vnx num_units: 1 options: destroy_empty_storage_group: "True" storage_vnx_pool_name: “Storage_pool_1” storage_vnx_authentication_type: “global” default_timeout:10 san_ip: “10.110.72.41” san_secondary_ip: “10.110.72.42” san_password:”password” san_login: “sysadmin” initiator_auto_registration: “True” annotations: "gui-x": "750" "gui-y": "850"
The following relationships were added to the relations section of the deployment file to specify the cinder-vnx charm service:
relations: - [ "cinder:storage-backend" ,"cinder-vnx:storage-backend" ]
Additional VNX backends can be deployed at any time using Juju. To deploy an additional VNX Cinder backend, create a configuration file containing the following information for the new backend:
vnxbackend2: destroy_empty_storage_group: "True" storage_vnx_pool_name: "Backend2_Pool_Name" storage_vnx_authentication_type: "global" default_timeout: 10 san_ip: "10.110.72.41" san_secondary_ip: "10.110.72.41" san_password: "password" san_login: "admin" initiator_auto_registration: "True"
VNX
23 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Once the configuration file has been created, deploy the new VNX Cinder backend using this command:
juju deploy cs: trusty/cinder-vnx vnxbackend2 –config=vnxbackend2.config
Once the new backend has been deployed with Juju, create a relationship between the new backend and Cinder. To add the relationship and enable the new backend, run the following command:
juju add-relation vnxbackend2 cinder
Refer to the OpenStack deployment section of this document for the complete deployment file that was used to deploy this OpenStack reference architecture.
For further information on the EMC VNX Cinder driver, refer to the EMC VNX direct driver guide for Juno.
Figure 2 shows the VNX with iSCSI deployment architecture.
Figure 2. VNX with iSCSI deployment architecture
The VNX Cinder driver provides support for all operations listed in Table 5. The driver also offers support for the following features:
• Cinder volume support for VNX Fully automated Storage Tiering (FAST)
• Cinder volume support for VNX Fast Cache
• Creation of thin, thick, compressed, and deduplicated volumes
Note: OpenStack Cinder support for deduplicated volumes is available in VNX Block Operating Environment 05.33.006.5.096.
• Storage-assisted volume migration
• Creation of read-only Cinder volumes
• Multiple backends
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
24
• Multiple VNX storage pools
The Cinder driver for XtremIO is installed as part of the Ubuntu OpenStack deployment process. The Cinder XtremIO Juju charm enables all necessary configuration options for XtremIO, and provides a single deployment file for OpenStack services and XtremIO Cinder driver configuration. The text below outlines the configuration options that were used to configure the XtremIO Cinder driver using Juju.
cinder-xtremio: charm: "cs: trusty/cinder" num_units: 1 options: openstack-origin: cloud:trusty-juno destroy_empty_storage_group: "True" san_ip: “10.110.72.45” san_login: “openstackadmin” san_password:”password” annotations: "gui-x": "750" "gui-y": "750"
The following relationships are required to enable integration of the XtremIO charm with the Cinder and Compute services:
relations: - [ "cinder:storage-backend" ,"cinder-xtremio:storage-backend" ]
Refer to the OpenStack deployment section of this document for the complete deployment file that was used to deploy this OpenStack reference architecture.
For further information on the XtremIO Cinder driver, refer to the EMC XtremIO OpenStack Block Storage driver guide for Juno.
Figure 3 shows the XtremIO with iSCSI deployment architecture.
Figure 3. XtremIO with iSCSI deployment architecture
XtremIO
25 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
XtremIO offers native thin-provisioned volumes, inline data compression, data deduplication, and full support for multiple Cinder backends. Table 5 lists all supported Cinder commands.
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
26
Managing storage volumes The OpenStack Admin User Guide provides the latest detailed information for managing storage volumes in your environment. Table 5 summarizes supported volume operations for each platform.
Table 5. Cinder volume operations for OpenStack Juno
VNX XtremIO
Create Cinder volume Create Cinder volume
List Cinder volumes List Cinder volumes
Delete Cinder volume Delete Cinder volume
Snapshot Cinder volume Snapshot Cinder volume
List volume snapshots List volume snapshots
Delete volume snapshots Delete volume snapshots
Attach volume Attach volume
Detach volume Detach volume
Create volume from snapshot Create volume from snapshot
Copy image to volume Copy image to volume
Copy volume to image Copy volume to image
Clone volume Clone volume
Extend volume Extend volume
Configure multiple storage backends Configure multiple storage backends
Migrate volume
Retype volume
Get volume stats
Create Cinder volume consistency groups
Delete Cinder volume consistency groups
Create Cinder consistency group snapshots
List Cinder consistency group snapshots
Delete Cinder consistency group snapshots
27 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
Support Refer to the EMC Simple Support Matrices for links to tables of hardware and software supported by EMC products. Contact EMC Online Support for issues with EMC storage solutions.
You can use TSANet.org to create a support request for Ubuntu OpenStack environments on EMC products. TSANet allows companies to collaborate on and transfer support requests. A Canonical support agreement is required.
Canonical offers a full range of cloud support and consulting services for customers and partners wishing to take advantage of Ubuntu Openstack features. Contact Canonical for more information.
EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide
28
Conclusion Reducing IT operational expenditures while simultaneously increasing the level of security and software capabilities is a top priority for many companies. Cost, security, reliability, and ease of use are often key considerations when an enterprise evaluates new technology solutions.
OpenStack provides inexpensive and flexible storage and virtualization software. Using Ubuntu OpenStack, MAAS, and Juju with EMC storage solutions enables IT organizations to meet or exceed their needs to save money and maintain secure and reliable service with a storage system that is both easy to deploy and manage. With Ubuntu OpenStack and EMC storage solutions, customers realize the following benefits:
• Decreased costs associated with environment scalability
• More choices in supported hardware
• Greater flexibility in cloud migration
• Lower operational and maintenance costs
29 EMC Storage Solutions with Ubuntu OpenStack and Canonical Juju
Reference Architecture Guide
References
The following documents, located on the EMC.com, provide additional and relevant information. Access to these documents depends on your login credentials. If you do not have access to a document, contact your EMC representative:
• Introduction to the EMC VNX2 Series: VNX5200, VNX5400, VNX5600, VNX5800, VNX7600, & VNX8000—A Detailed Review
• EMC Unisphere: Unified Storage Management Solution for the New VNX Series: VNX5200, VNX5400, VNX5600, VNX5800, VNX7600, and VNX8000—A Detailed Review
• EMC VNX2 FAST VP VNX 5200, VNX 5400, VNX5600, VNX5800, VNX7600, & VNX8000—A Detailed Review
• EMC VNX2 Multicore FAST Cache: VNX5200, VNX5400, VNX5600, VNX5800, VNX7600, & VNX8000—A Detailed Review
• EMC VNX2 Deduplication and Compression: VNX5200, VNX5400, VNX5600, VNX5800, VNX7600, & VNX8000—Maximizing effective capacity utilization
• Introduction to the EMC XtremIO Storage Array—A Detailed Review
The following Canonical documents, located on the Canonical website, also provide useful information:
• Ubuntu Cloud Documentation
• Installing The Canonical Distribution of Ubuntu OpenStack
• Ubuntu Cloud Infrastructure
The following OpenStack documents, located on the OpenStack website, also provide useful information:
• OpenStack Installation Guide for Ubuntu 14.04 (LTS)
• OpenStack High Availability Guide
• OpenStack Cloud Administrator Guide
• OpenStack Security Guide
EMC documentation
Canonical documentation
OpenStack documentation