Intro to OpenStack - WAJUG

75
Rackspace Technical Services Introduction to OpenStack 6/22/22 WAJUG Meetup

description

 

Transcript of Intro to OpenStack - WAJUG

Page 1: Intro to OpenStack - WAJUG

Rackspace Technical Services

Introduction to OpenStack

April 10, 2023

WAJUG Meetup

Page 2: Intro to OpenStack - WAJUG

About.me/kevjackson

RACKSPACE | www.rackspace.com

2

Kevin Jackson, Principal Architect@itarchitectkev

Page 3: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

OpenStack

Page 4: Intro to OpenStack - WAJUG

OpenStack is open-source software used to build public, private and hybrid clouds

16,200 138

COMMUNITYSOFTWARE

Join our global community of technologists, developers, researchers, corporations and cloud computing experts.

OpenStack Software delivers a massively scalable cloud operating system.

COMPUTENETWORKING

STORAGEPEOPLE COUNTRIES

RACKSPACE | www.rackspace.com

4

What is OpenStack?

Page 5: Intro to OpenStack - WAJUG

The Mission

RACKSPACE | www.rackspace.com

5

“To produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.”

Page 6: Intro to OpenStack - WAJUG

KEYSTONEIDENTITY

GLANCEIMAGE MANAGEMENT

NOVACOMPUTE LAYER

SWIFTOBJECT STORE

CINDERBLOCK STORAGE

NEUTRONNETWORKING

HORIZONDASHBOARD

CEILOMETERTELEMETRY

HEATOrchestration

NEUTRONLBaaS, VPNaaS, FWaaS

What is OpenStack?

Page 7: Intro to OpenStack - WAJUG

What really is OpenStack?

RACKSPACE | www.rackspace.com

7

OpenStack is like the Linux Kernel

Page 8: Intro to OpenStack - WAJUG

What is Rackspace Private Cloud?

RACKSPACE | www.rackspace.com

8

• Rackspace Private Cloud Software is powered by OpenStack, the same cloud platform we used to build the Rackspace public cloud. Because our Private Cloud Software is based on open-source technology, you don't have the risk of being locked into a proprietary platform.

RPC is the Distribution

Page 9: Intro to OpenStack - WAJUG

20

10

InauguralDesignSummit in Austin

Jul

OpenStack Launch!

CloudFilesLaunches

May 2008

NASAwrites NovaController

First release

25+ partners

Oct

AustinSwift prod

Nova dev preview

35+ partners

Nov

First publicDesign Summit inSan Antonio

2009Mar 2006

RackspaceCloud Launches

Source: Randy Bias & Others

History Lesson

RACKSPACE | www.rackspace.com

9

Page 10: Intro to OpenStack - WAJUG

2nd Summit

Jan Feb Jul20

11

2nd release

Apr

3rd Summitin Santa Claraplus conference

Governance moves forwardwith project technical leads and policy board elections.

Decision to move to 6-month release cycle over 3-month

CactusNova for larger-

scale prod

Sept Oct

DiabloMajor stability release

First of 6-month releases

Rackspaceannounces plansto launchOpenStack Foundation

BexarNova for mid-sized prod

Glance added as core

Happy Birthday!

RACKSPACE | www.rackspace.com

10

History Lesson

Page 11: Intro to OpenStack - WAJUG

AT&T joinsOpenStack

Jan Feb May20

12

Created framework forFoundation

Apr

19 companiesannouncepublic support for Foundation

Drafting committeeformed - creatinglegal documents

EssexKeystone in core

Horizon in core

Aug Sep

BoardElections

HP Cloudlaunch

Oct

Framework &documents ratifiedby community

Inaugural OpenStackFoundation Boardmeeting

VMware, Intel & NECaccepted as Gold members

Foundation Launched!

FolsomCinder in core

Networking in core

RACKSPACE | www.rackspace.com

11

History Lesson

Page 12: Intro to OpenStack - WAJUG

Apr20

13

Oct

GrizzlyCeilometer in incubation

HEAT in incubation

Apr

IcehouseHavanaCeilometer in integration

HEAT in integration

LBaaS

20

14

Nov

Summit inHong Kong

First Summit100% run andfunded by Foundation

Juno

Oct

Summit inParis

Summit inAtlanta

May Nov

Trove in Integration

Compute rolling upgrades

Block Storage migration

Federated Keystone

RACKSPACE | www.rackspace.com

12

History Lesson

Page 13: Intro to OpenStack - WAJUG

The OpenStack Programs

RACKSPACE | www.rackspace.com

13

• OpenStack Compute (Nova) - integrated program since Austin release

• OpenStack Networking (Neutron) - integrated program since Folsom release

• OpenStack Object Storage (Swift) - integrated program since Austin release

• OpenStack Block Storage (Cinder) - integrated program since Folsom release

• OpenStack Identity (Keystone) - integrated program since Essex release

• OpenStack Image Service (Glance) - integrated program since Bexar release

• OpenStack Dashboard (Horizon) - integrated program since Essex release

• OpenStack Telemetry (Ceilometer) - integrated program since the Havana release

• OpenStack Orchestration (Heat) - integrated program since the Havana release

• OpenStack Database (Trove) - integrated program for Icehouse

• OpenStack Bare Metal (Ironic)

• OpenStack Queue Service (Marconi)

• OpenStack Data Processing (Hadoop) (Sahara)

Page 14: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Rackspace Private Cloud Architecture

Page 15: Intro to OpenStack - WAJUG

Rackspace Private Cloud Architecture

RACKSPACE | www.rackspace.com

• Rackspace Private Cloud (RPC) is OpenStack

• Easy to install

• Tested configurations

• Supported

• Community (Free)

• Fanatical Support (per node)

15

Page 16: Intro to OpenStack - WAJUG

Rackspace Private Cloud Architecture

RACKSPACE | www.rackspace.com

• Rackspace Private Cloud (Compute) is made up of

• 2 x Controllers (HA)

• N Computes (Hypervisors)

• N Cinder nodes (Block Storage)

• Rackspace Private Cloud (Object Storage)

• 2 x Identity

• Hardware Load Balancers

• N x Proxy

• N x Storage (With DAS/JBOD)

16

Page 17: Intro to OpenStack - WAJUG

Rackspace Private Cloud Architecture

RACKSPACE | www.rackspace.com

17

Page 18: Intro to OpenStack - WAJUG

OpenStack Architecture

RACKSPACE | www.rackspace.com

18

Page 19: Intro to OpenStack - WAJUG

OpenStack Architecture

RACKSPACE | www.rackspace.com

19

Page 20: Intro to OpenStack - WAJUG

Rackspace Private Cloud Architecture

RACKSPACE | www.rackspace.com

20

Page 21: Intro to OpenStack - WAJUG

Hybrid Cloud: Dedicated to Cloud

RACKSPACE | www.rackspace.com

21

Page 22: Intro to OpenStack - WAJUG

Hybrid Cloud: Enterprise to Cloud

RACKSPACE | www.rackspace.com

22

Page 23: Intro to OpenStack - WAJUG

Hybrid Cloud: Multi-Cloud

RACKSPACE | www.rackspace.com

23

Page 24: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Intro to Networking & SDN

Page 25: Intro to OpenStack - WAJUG

Intro to Software Defined Networking

RACKSPACE | www.rackspace.com

25

• OpenStack Networking: Neutron

• Networking Architecture for Rackspace Private Cloud

• Servers/Nodes

• Controller: Neutron API, Agents, Open vSwitch

• Computes: Agents and Open vSwitch

• Network Cards in each

• NIC for Host/Management

• Usually bonded into different switches for HA

• NIC for Neutron

• Usually bonded into different switches for HA

• Can be bonded for LACP

• Can have more than one NIC for different networks/speeds

Page 26: Intro to OpenStack - WAJUG

Rackspace Private Cloud: Networking

RACKSPACE | www.rackspace.com

26

Page 27: Intro to OpenStack - WAJUG

Host or Management Network

RACKSPACE | www.rackspace.com

27

• The Host Network is nothing more than the subnet the servers live on

• I.e. the OpenStack services run on this network

• Just like Apache or Bind would

• As a user of the private cloud, this is your address for the API / GUI

Page 28: Intro to OpenStack - WAJUG

Provider Network

RACKSPACE | www.rackspace.com

28

• This is the “Neutron” network

• Networks that go through these interfaces have been defined in OpenStack

• Neutron Provider Networks can be

• GRE Tunnels

• VLANs

• Flat Networking

• Can have multiple provider networks

• One for “Standard” traffic at 1G

• Another for “Fast” access at 10G

• When creating networks in Neutron, we can specify which NIC “bridge” to use for this purpose

Page 29: Intro to OpenStack - WAJUG

Provider Network Type: GRE

RACKSPACE | www.rackspace.com

29

• GRE Tunnel networks in Neutron form a mesh in OpenStack

• Each Compute and Controller will be able to send/receive packets over these networks

• Each GRE tunnel is given an ID

Page 30: Intro to OpenStack - WAJUG

Provider Network Type: VLAN

RACKSPACE | www.rackspace.com

30

• VLAN networks work as they would in a physical world

• Switch will have VLAN tags trunked on their ports

• An OpenStack user would create a Neutron network with a corresponding VLAN ID

• Providing all the switch ports have that VLAN ID, OpenStack Networking will work

Page 31: Intro to OpenStack - WAJUG

Provider Network Type: Flat

RACKSPACE | www.rackspace.com

31

• Flat Networking is the most basic

• It is analogous to Flat DHCP in “Nova Networking”

• A single flat structure with no network isolation

Page 32: Intro to OpenStack - WAJUG

Physical Networking

RACKSPACE | www.rackspace.com

32

Page 33: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Storage

Page 34: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

OpenStack Block Storage

Page 35: Intro to OpenStack - WAJUG

OpenStack Block Storage

RACKSPACE | www.rackspace.com

35

• OpenStack Block Storage

• Project Name Cinder

• Provides additional, usually resilient storage to instances

• Rackspace Private Cloud Supports

• Local Disk (LVM)

• EMC

• NetApp

• Solidfire (in your Datacentre)

Page 36: Intro to OpenStack - WAJUG

OpenStack Block Storage

RACKSPACE | www.rackspace.com

36

• Can only attach a volume to one instance at a time

• Like a USB stick

• Typical Use Cases

• Tables for MySQL stored on Block Storage volumes

• Performance sensitive data

• Computes run SAS, use SSD-backed Block Storage

• Providing instances access to raw block storage

Page 37: Intro to OpenStack - WAJUG

OpenStack Block Storage

RACKSPACE | www.rackspace.com

37

• Snapshots

• Backup and restore volumes of data

• Boot from Volume

• Ability to run image from block storage

• Good for the “Pets”

• Potentially less Orchestration

• Possibly Windows

• Volume is not deleted when an instance is terminated

Page 38: Intro to OpenStack - WAJUG

What really is OpenStack?OpenStack Block Storage

RACKSPACE | www.rackspace.com

38

Page 39: Intro to OpenStack - WAJUG

OpenStack Block Storage

RACKSPACE | www.rackspace.com

39

• Rackspace recommends

• 1 core per 3TB capacity

• At least 6 SATA or SAS drives of at least 1TB capacity each.

• At least 2GB RAM, plus an additional 250MB RAM per TB of drive.

• RAID Controller with battery backup in RAID5 or RAID10 configuration.

Page 40: Intro to OpenStack - WAJUG

Block Storage

RACKSPACE | www.rackspace.com

40

Page 41: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

OpenStack Object Storage

Page 42: Intro to OpenStack - WAJUG

Object Storage: Swift

RACKSPACE | www.rackspace.com

42

• API driven Object Storage

• Upload/Download via HTTP/HTTPS

• Highly Resilient Distributed Object Storage

• Data is written multiple times (default 3)

• Rings

• Account

• Container

• Object

• Location aware: Zones

• Disk Partition

• Disk

• Server

• Cabinet

• Datacentre

Page 43: Intro to OpenStack - WAJUG

Object Storage: Swift

RACKSPACE | www.rackspace.com

43

Page 44: Intro to OpenStack - WAJUG

Object Storage: Swift

RACKSPACE | www.rackspace.com

44

Page 45: Intro to OpenStack - WAJUG

Object Storage: Swift

RACKSPACE | www.rackspace.com

45

Page 46: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Highly Available Rackspace Private

Cloud

Page 47: Intro to OpenStack - WAJUG

HA and Non-HA in Private Cloud

RACKSPACE | www.rackspace.com

47

Page 48: Intro to OpenStack - WAJUG

Designing For Failure

RACKSPACE | www.rackspace.com

• Your infrastructure must be HA

• Your apps running on your cloud should tolerate failure

• Automate everything

• Automate recovery

• Use load balancers

• Use message queues

• Put workloads suitable into the cloud

• Don’t expect “Live Migration”

• Live Migration is an Operations Function, not a design choice.

48

Page 49: Intro to OpenStack - WAJUG

Designing For Failure

RACKSPACE | www.rackspace.com

• In Rackspace Private Cloud

• Controllers are HA

• MySQL HA (Multi-Master)

• RabbitMQ Cluster

• APIs behind HA Proxy

• Keepalived for floating IPs

• Computes

• Individual scale out units

• Local storage

• Will fail at some point

49

Page 50: Intro to OpenStack - WAJUG

Highly Available RPC: Keepalived

RACKSPACE | www.rackspace.com

• Keepalived

• Uses Layer4 Load Balancing Module (IPVS)

• Uses VRRP (Virtual Redundancy Router Protocol)

• Uses multicast address 224.0.0.18 by default

• Specify VRID

• Must be unique on network

• Specify the Virtual IP (Floating IP)

• Watchdog monitors the keepalived processes

• Healthcheckers monitor health of service

• VIP Fails over when check of service fail

50

Page 51: Intro to OpenStack - WAJUG

Highly Available RPC: Controllers

RACKSPACE | www.rackspace.com

51

Page 52: Intro to OpenStack - WAJUG

Highly Available RPC: MySQL + Keepalived

RACKSPACE | www.rackspace.com

• MySQL

• Running Multi-Master

• Both nodes are able to handle “writes”

• In RPC we avoid conflict by using Keepalived

• Ensure we only write to a single node

• Multi-Master allows for automatic recovery

• No manual promotion of Slave to Master

• But we treat other “Master” as a “Slave”

52

Page 53: Intro to OpenStack - WAJUG

Highly Available RPC: MySQL + Keepalived

RACKSPACE | www.rackspace.com

53

Page 54: Intro to OpenStack - WAJUG

Highly Available RPC: RabbitMQ + Keepalived

RACKSPACE | www.rackspace.com

• RabbitMQ

• Running Cluster

• Rabbit 3.x

• Use Keepalived to write to a single RabbitMQ node

• Allow failover to other clustered node

• RabbitMQ failover is complex!

54

Page 55: Intro to OpenStack - WAJUG

Highly Available RPC: RabbitMQ + Keepalived

RACKSPACE | www.rackspace.com

55

Page 56: Intro to OpenStack - WAJUG

Highly Available RPC: API HA Proxy Keepalived

RACKSPACE | www.rackspace.com

• APIs

• Nova API

• Glance API

• Keystone API

• Neutron API

• Cinder API

• Horizon

• Utilise HA Proxy

• HA Proxy configured on each controller

• Each HA Proxy config knows about the other controller too

• Hit the HA Proxy controlled by Keepalived

• But that request is load balanced across both nodes (backend)

56

Page 57: Intro to OpenStack - WAJUG

Highly Available RPC: API HA Proxy Keepalived

RACKSPACE | www.rackspace.com

57

Page 58: Intro to OpenStack - WAJUG

Highly Available RPC: Compute

RACKSPACE | www.rackspace.com

• Non-HA

• Design for failure

• Evacuate and Live Migration

• DRBD block migration

• Shared storage

• KVM: Still a pause

• Good for Operations, not for reliance on HA

58

Page 59: Intro to OpenStack - WAJUG

Highly Available RPC: Block Storage

RACKSPACE | www.rackspace.com

• Cinder API

• HA

• Cinder Backends

• NetApp, EMC, etc. (Enterprise Storage)

• Assumed HA/Resilient

• LVM

• Utilise local disk/DAS/JBOD

• Deploy more than one in Private Cloud

• Computes mount volume from Cinder1

• Computes also mount volume from Cinder2

• Software RAID the two volumes

59

Page 60: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Rackspace Private Cloud Sandbox

Page 61: Intro to OpenStack - WAJUG

RPC Sandbox

RACKSPACE | www.rackspace.com

• If you are wanting hands on instance access

• http://www.rackspace.com/cloud/private

• Download Virtual Box or VMware OVA

• Also

• Vagrant (http://www.vagrantup.com/

• VirtualBox (http://www.virtualbox.org/)

• Git

• https://github.com/BigCloudSolutions/VagrantSwift

• https://github.com/OpenStackCookbook/OpenStackCookbook

61

Page 62: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

Rackspace Private Cloud Installation

Page 63: Intro to OpenStack - WAJUG

Install Rabbit MQ

Installation of Chef

Configuration of Chef Client

Fetch and Upload Cookbooks

Configuration of Environment

Bootstrapping Nodes

Chef Client

Testing Installation

Rackspace Private Cloud Ready

CHEF PREP INSTALL DONE

What really is OpenStack?RPC Installation Steps

RACKSPACE | www.rackspace.com

63

Page 64: Intro to OpenStack - WAJUG

What really is OpenStack?

RACKSPACE | www.rackspace.com

64

Easy installation of RPC

• Head to http://www.rackspace.com/cloud/private

• Follow the instructions

• Scripts to install Chef

• Scripts to install Rackspace Private Cloud Cookbooks

Page 65: Intro to OpenStack - WAJUG

What really is OpenStack?

RACKSPACE | www.rackspace.com

65

$ mkdir -p /opt/chef-cookbooks

$ COOKBOOK_VERSION=v4.2.2$ apt-get install git -y$ git clone https://github.com/rcbops/chef-cookbooks.git /opt/chef-cookbooks$ pushd /opt/chef-cookbooks

$ git checkout ${COOKBOOK_VERSION}$ git submodule init$ git submodule sync$ git submodule update # Upload all of the RPCS Cookbooks$ knife cookbook upload -o /opt/chef-cookbooks/cookbooks -a$ popd

$ knife role from file /opt/chef-cookbooks/roles/*.rb

Fetch and upload Cookbooks

Page 66: Intro to OpenStack - WAJUG

What really is OpenStack?Configuration of Environment

RACKSPACE | www.rackspace.com

66

• Define our RPC OpenStack in a single JSON for Chef to use

• Define

• Nova Configuration (hypervisor, scheduler, etc)

• Networking

• Neutron (default type, vlans, etc)

• Glance

• Cinder

• MySQL

• Rabbit

• HA Details (VIPs to use)

• etc.

Page 67: Intro to OpenStack - WAJUG

{ "name": ”rpcs", "description": "Environment for Rackspace Private Cloud", "cookbook_versions": { }, "json_class": "Chef::Environment", "chef_type": "environment", "default_attributes": { }, "override_attributes": { "monitoring": { "procmon_provider": "monit", "metric_provider": "collectd" }, "enable_monit": true, "osops_networks": { "management": "10.240.0.0/24", "swift": "10.240.0.0/24", "public": "10.240.0.0/24", "nova": "10.240.0.0/24" }, "rabbitmq": { "cluster": true, "erlang_cookie": "CookieContents" }, "nova": { "config": { "use_single_default_gateway": false, "ram_allocation_ratio": 1.0, "disk_allocation_ratio": 1.0, "cpu_allocation_ratio": 2.0, "resume_guests_state_on_host_boot": false }, "network": { "provider": "neutron" },

What really is OpenStack?Configuration of Environment

RACKSPACE | www.rackspace.com

67

Page 68: Intro to OpenStack - WAJUG

What really is OpenStack?

RACKSPACE | www.rackspace.com

68

$ EDITOR=vi knife environment edit rpcs

Or

$ knife environment from file rpcs.json

What really is OpenStack?Configuration of Environment

RACKSPACE | www.rackspace.com

68

Page 69: Intro to OpenStack - WAJUG

$ CONTROLLER1=10.240.0.1$ CONTROLLER2=10.240.0.2

$ COMPUTES=“10.240.0.3 10.240.0.4 10.240.0.5”

# Controllers (HA)$ knife bootstrap –E rpcs -r role[ha-controller1],role[single-network-node] ${CONTROLLER1}

$ knife bootstrap -E rpcs -r role[ha-controller2],role[single-network-node] ${CONTROLLER2}

# Computes$ for node in ${COMPUTES};do knife bootstrap -E rpcs-r role[single-compute] ${node}done

What really is OpenStack?Bootstrapping Nodes

RACKSPACE | www.rackspace.com

69

• Bootstrapping configures and installs chef-client

• and conveniently allows us to set roles too

Page 70: Intro to OpenStack - WAJUG

$ chef-client$ ssh ${CONTROLLER2} chef-client$ chef-client

What really is OpenStack?Make Controllers HA

RACKSPACE | www.rackspace.com

70

• To make Controllers HA and utilising the VIPS and synchronise the data between the two:

• Run chef-client on Controller1

• Run chef-client on Controller2

• Run chef-client on Controller1

Page 71: Intro to OpenStack - WAJUG

$ knife ssh “role:single-compute” “chef-client”

What really is OpenStack?Run Chef-Client on Computes

RACKSPACE | www.rackspace.com

71

• Finally, run chef-client on remaining nodes (Our Compute Nodes)

Page 72: Intro to OpenStack - WAJUG

$ nova-manage service list

Or

$ . openrc$ nova service-list$ nova hypervisor-list

$ . openrc$ neutron agent-list

What really is OpenStack?Testing the Installation

RACKSPACE | www.rackspace.com

72

• Check Compute

• Check Networking

Page 73: Intro to OpenStack - WAJUG

$ ovs-vsctl show

$ route -n$ ssh ${CONTROLLER2} route -n

What really is OpenStack?Testing the Installation

RACKSPACE | www.rackspace.com

73

• Check Open vSwitch

• Check HA / Keepalived

Page 74: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | WWW.RACKSPACE.COM

QUESTIONS?

Page 75: Intro to OpenStack - WAJUG

RACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN THE UNITED STATES AND OTHER COUNTRIES.

RACKSPACE® HOSTING | 5 MILLINGTON ROAD | HAYES, UNITED KINGDOM UB3 4AZ

UK SALES: +44 (0)20 8712 6507 | UK SUPPORT: 0800 988 0300 | WWW.RACKSPACE.CO.UK