37
Energy efficiency in OpenStack clouds François Rossigneux [email protected] January 28, 2013 - Université du Luxembourg

Energy efficiency in OpenStack Clouds

Embed Size (px)

DESCRIPTION

Written by François Rossigneux of University of Luxembord.

Citation preview

Page 1: Energy efficiency in OpenStack Clouds

Energy efficiencyin OpenStack clouds

François [email protected]

January 28, 2013 - Université du Luxembourg

Page 2: Energy efficiency in OpenStack Clouds

Summary

Context

Telemetry architecture

Scheduling / sleep modes (future works)

1

Page 3: Energy efficiency in OpenStack Clouds

Summary

Context

Telemetry architecture

Scheduling / sleep modes (future works)

2

Page 4: Energy efficiency in OpenStack Clouds

Context

XLcloud:- HPC-as-a-Service (based on OpenStack)- Funded by the "Fonds national pour la Société Numérique"- Three-year long collaborative project- Open source license

Some features:- GPU virtualization- Green scheduling- Power consumption based billing

3

Page 5: Energy efficiency in OpenStack Clouds

Context

4

Consortium:

Page 6: Energy efficiency in OpenStack Clouds

Context

Our team is working on energy topics:- Telemetry (taking measurements)- Scheduling (placing virtual machines)- Turning off unused machines (sleep modes)

5

Page 7: Energy efficiency in OpenStack Clouds

Summary

Context

Telemetry architecture

Scheduling / sleep modes (future works)

6

Page 8: Energy efficiency in OpenStack Clouds

Telemetry architectureOpenStack overview

OpenStack main components:- Compute (Nova)- Object Storage (Swift)- Block Storage (Cinder)- Networking (Quantum)- Identity (Keystone)- Dashboard (Horizon)

Recently added:- Metering / billing (Ceilometer)

Incubation:- Energy (Kwapi)

7

Page 9: Energy efficiency in OpenStack Clouds

Telemetry architectureOpenStack overview

OpenStack main components:- Compute (Nova)- Object Storage (Swift)- Block Storage (Cinder)- Networking (Quantum)- Identity (Keystone)- Dashboard (Horizon)

Recently added:- Metering / billing (Ceilometer)

Incubation:- Energy (Kwapi)

8

Page 10: Energy efficiency in OpenStack Clouds

Telemetry architectureOpenStack overview

OpenStack main components:- Compute (Nova)- Object Storage (Swift)- Block Storage (Cinder)- Networking (Quantum)- Identity (Keystone)- Dashboard (Horizon)

Recently added:- Metering / billing (Ceilometer)

Incubation:- Energy (Kwapi)

9

Page 11: Energy efficiency in OpenStack Clouds

Telemetry architectureDatacenter overview

10

Page 12: Energy efficiency in OpenStack Clouds

Telemetry architectureSoftware layers

11

Page 13: Energy efficiency in OpenStack Clouds

Telemetry architectureSoftware layers

12

Page 14: Energy efficiency in OpenStack Clouds

Telemetry architectureDrivers layer

13

Page 15: Energy efficiency in OpenStack Clouds

Telemetry architectureDrivers layer

14

Page 16: Energy efficiency in OpenStack Clouds

Telemetry architectureDrivers layer

Bus

15

Page 17: Energy efficiency in OpenStack Clouds

Telemetry architectureDrivers layer

Bus

16

Page 18: Energy efficiency in OpenStack Clouds

Telemetry architectureBus frameworks

ZeroMQ (used in Kwapi):- Very fast- Small (1.6 Mo)- Written in C++ (provide a Python wrapper)- Socket types: inproc, ipc, tcp- Reliable / preserves order of messages- Simple to use design patterns (publish/subscribe, request/response, ...)- Brokerless

RabbitMQ (used in OpenStack):- Much more slower (10x)- Require Erlang (70 Mo)- Broker

Sockets (without framework):- Why reinvent the wheel?

17

Page 19: Energy efficiency in OpenStack Clouds

Publish/subscribe design pattern

Publishers

Subscribers

Telemetry architectureZeroMQ design pattern

Driver thread

Plugin Plugin

tcp://0.0.0.0:8000

18

Page 20: Energy efficiency in OpenStack Clouds

Publishers and subscribers need common endpoints

?

Subscribers

Publishers

Telemetry architectureZeroMQ design pattern

Driver thread Driver thread Driver thread

Plugin Plugin

19

Page 21: Energy efficiency in OpenStack Clouds

Forwarding device:- Subscribes to inproc://drivers- Publishes all received packets on tcp://140.77.13.25:8000

Publishers

Subscribers

Telemetry architectureZeroMQ design pattern

Driver thread Driver thread Driver thread

Forwarding device

Plugin Plugin

tcp://140.77.13.25:8000

inproc://drivers

20

Page 22: Energy efficiency in OpenStack Clouds

Machine A

Telemetry architectureZeroMQ design pattern

Subscribers can listen multiple endpoints

Machine A

Driver thread

Forwarding device

Plugin

Driver thread

Forwarding device

Machine B

Driver thread Driver thread

inproc://driversinproc://drivers

ipc:///tmp/kwapi tcp://140.77.13.25:8000

21

Page 23: Energy efficiency in OpenStack Clouds

Telemetry architectureBus messages format

Python dictionary:

Three mandatory fields:- Probe ID- Watts- Signature

Signature based on a shared secret key

Probe ID Payload(watts, volts, amperes...) Signature

22

Page 24: Energy efficiency in OpenStack Clouds

Telemetry architectureCeilometer overview

Nova scheduler

23

Page 25: Energy efficiency in OpenStack Clouds

Telemetry architectureAPI plugin

Collector:- Collects power consumption data- Computes kWh and stores the last value (watts)

API (based on Flask):/v1/probe-ids/ The list of probe ids

/v1/probes/ All detailed information about all probes

/v1/probes/A/ Detailed information about probe A

/v1/probes/A/kwh Energy consumed by probe A

Authentication:- The pollster provides a token (X-Auth-Token)- The plugin checks the token (Keystone request)- If the token is valid, requested data are sent

24

Page 26: Energy efficiency in OpenStack Clouds

Telemetry architectureCeilometer pollster

Pollster:- Is run periodically by Ceilometer central agent- Asks to Keystone the Ceilometer plugin address- Retrieves data- Publishes kWh and watts counters

Collector stores published counters

API is queried by the Nova Scheduler to make a placement decision

25

Page 27: Energy efficiency in OpenStack Clouds

Telemetry architectureVisualization plugin

26

Page 28: Energy efficiency in OpenStack Clouds

Telemetry architectureVisualization plugin

Writes power consumption into RRD files:- Severals archived periods with different resolutions- RRD file size = 10 Ko (1000 probes = 10 Mo)

Webpage based on Flask:- Two visualization modes (per periods and per probes)- Summary graphs- Cache mechanism (rebuild graph only if outdated)

27

Page 29: Energy efficiency in OpenStack Clouds

Telemetry architectureVisualization plugin

API example

/graph/minute/A

28

Page 30: Energy efficiency in OpenStack Clouds

Telemetry architectureVisualization plugin

API example

/graph/day/

29

Page 31: Energy efficiency in OpenStack Clouds

Summary

Context

Telemetry architecture

Scheduling / sleep modes (future works)

30

Page 32: Energy efficiency in OpenStack Clouds

SchedulingChoosing the greenest place

Where is the greenest place to run your job?

It depends on your job:CPU / GPU / memory / storage / network intensive ?Hard to estimate: vary over time, external events...

Approach: use a benchmark for efficiency rating.

31

Page 33: Energy efficiency in OpenStack Clouds

SchedulingNova scheduler

32

Page 34: Energy efficiency in OpenStack Clouds

SchedulingNova scheduler

33

Page 35: Energy efficiency in OpenStack Clouds

Turning off unused machines

34

Using power saving modes:

- Which mode to choose?=> Standby / hibernation

- How many machines should be turned off?=> Anticipating demand and avoiding frequent shutdown / start-up cycles

- How much energy does it save? Is it profitable?=> Peak start-up power

- Avoiding too frequent shutdown / start-up cycles=> Sparing the old computers, but they are the least efficient ones

Page 36: Energy efficiency in OpenStack Clouds

Conclusion

35

Telemetry:- Writing more drivers- Improving scalability

Scheduling and sleep modes:- Implementing the strategies- Live VM migration

Measuring energy with wattmeters is not all:- What about the energy needed to build or recycle the servers?

- What about PUE (on a distributed architecture ?)

Page 37: Energy efficiency in OpenStack Clouds

Thank youfor your attention