H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical...

29
Reference Architecture Guide EMC Solutions May 2015 EMC STORAGE SOLUTIONS WITH UBUNTU OPENSTACK AND CANONICAL JUJU Managing EMC Storage Arrays with OpenStack Juno

Transcript of H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical...

Page 1: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

Reference Architecture Guide

EMC Solutions

May 2015

EMC STORAGE SOLUTIONS WITH UBUNTU OPENSTACK AND CANONICAL JUJU Managing EMC Storage Arrays with OpenStack Juno

Page 2: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 3: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 4: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 5: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 6: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 7: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 8: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 9: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 10: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 11: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 12: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 13: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 14: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 15: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 16: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 17: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 18: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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"

Page 19: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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"

Page 20: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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"

Page 21: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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" ]

Page 22: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 23: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 24: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 25: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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.

Page 26: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 27: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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.

Page 28: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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

Page 29: H14174:EMC Storage Solutions with Ubuntu … Storage Solutions with Ubuntu OpenStack and Canonical Juju Reference Architecture Guide in a cloud deployment, and gives users self-service

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