Chapter 5. Scaling

Whereas traditional applications required larger hardware to scale (“vertical scaling”), cloud-based applications typically request more, discrete hardware (“horizontal scaling”). If your cloud is successful, eventually you must add resources to meet the increasing demand.

To suit the cloud paradigm, OpenStack itself is designed to be horizontally scalable. Rather than switching to larger servers, you procure more servers and simply install identically configured services. Ideally, you scale out and load balance among groups of functionally identical services (for example, compute nodes or nova-api nodes), that communicate on a message bus.

The Starting Point

Determining the scalability of your cloud and how to improve it is an exercise with many variables to balance. No one solution meets everyone’s scalability goals. However, it is helpful to track a number of metrics. Since you can define virtual hardware templates, called “flavors” in OpenStack, you can start to make scaling decisions based on the flavors you’ll provide. These templates define sizes for memory in RAM, root disk size, amount of ephemeral data disk space available, and number of cores for starters.

The default OpenStack flavors are shown in Table 5-1.

Table 5-1. OpenStack default flavors
NameVirtual coresMemoryDiskEphemeral

m1.tiny

1

512 MB

1 GB

0 GB

m1.small

1

2 GB

10 GB

20 GB

m1.medium

2

4 GB

10 GB

40 GB

m1.large

4

8 GB

10 GB

80 GB

m1.xlarge

8

16 GB

10 GB

160 GB

The starting point for most is the core count of your cloud. ...

Get OpenStack Operations Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.