Docs: Update software/hardware requirements

This patch elaborates on the hardware/software requirements for an
OpenStack environment.

Closes-Bug: 1554626

Change-Id: I9047403595cb5854b4bbea7492b5ee0d4fd62157
This commit is contained in:
Major Hayden 2016-03-10 13:18:29 -06:00
parent 67198316a5
commit dd140fb6ff
1 changed files with 96 additions and 22 deletions

View File

@ -3,42 +3,116 @@
Installation requirements
-------------------------
Deployment host:
The minimum software requirements for OpenStack-Ansible are well defined, but
hardware requirements will vary based on the size of the OpenStack deployment.
- Required items:
CPU requirements
~~~~~~~~~~~~~~~~
- Ubuntu 14.04 LTS (Trusty Tahr) or compatible operating system that
meets all other requirements.
Compute hosts should have multi-core processors that have `hardware-assisted
virtualization extensions`_ available. These extensions provide a significant
performance boost and improve security in virtualized environments.
- Secure Shell (SSH) client supporting public key authentication.
Infrastructure hosts should have multi-core processors for the best
performance. Some services, such as MySQL, greatly benefit from additional CPU
cores and other technologies, such as `Hyper-threading`_.
- Synchronized network time (NTP) client.
.. _hardware-assisted virtualization extensions: https://en.wikipedia.org/wiki/Hardware-assisted_virtualization
.. _Hyper-threading: https://en.wikipedia.org/wiki/Hyper-threading
- Python 2.7 or later.
Disk requirements
~~~~~~~~~~~~~~~~~
Target hosts:
Different hosts will have different disk space requirements based on the
services running on each host:
- Required items:
Deployment hosts
10GB of disk space is sufficient for holding the OpenStack-Ansible
repository content and additional required software.
- Ubuntu Server 14.04 LTS (Trusty Tahr) 64-bit operating system,
with Linux kernel version ``3.13.0-34-generic`` or later.
Compute hosts
Disk space requirements will vary depending on the total number of instances
running on each host and the amount of disk space allocated to each instance.
Compute hosts should have at least 100GB of disk space available at an
absolute minimum. Deployers should consider disks that provide higher
throughput with lower latency, such as SSD drives in a RAID array.
- SSH server supporting public key authentication.
Storage hosts
Hosts running the Block Storage (cinder) service often consume the most disk
space in OpenStack environments. As with compute hosts, deployers should
choose disks that provide the highest I/O throughput with the lowest latency
for storage hosts. Storage hosts should contain 1TB of disk space at a
minimum.
- Synchronized NTP client.
Infrastructure hosts
The OpenStack control plane contains storage-intensive services, such as
the Image (glance) service as well as MariaDB. These control plane hosts
should have 100GB of disk space available at a minimum.
- Optional items:
Logging hosts
An OpenStack-Ansible deployment generates a significant amount of logging.
Logs come from a variety of sources, including services running in
containers, the containers themselves, and the physical hosts. Logging hosts
need additional disk space to hold live and rotated (historical) log files.
In addition, the storage performance must be enough to keep pace with the
log traffic coming from various hosts and containers within the OpenStack
environment. Deployers should reserve at least 50GB of disk space for storing
logs on the logging hosts, but this minimum will grow as additional hosts are
deployed.
- For hosts providing Block Storage (cinder) service volumes, a
Logical Volume Manager (LVM) volume group named *cinder-volumes*.
Hosts that provide Block Storage (cinder) volumes should have logical volume
manager (LVM) support. Those hosts must have a *cinder-volumes* volume group
that OpenStack-Ansible can configure for use with cinder.
- LVM volume group named *lxc* to store container file systems. If
the lxc volume group does not exist, containers will be
automatically installed in the root file system of the host.
Each control plane host will run services inside LXC containers. By default,
the container filesystems are deployed onto the root filesystem of each control
plane hosts. Deployers have the option to deploy those container filesystems
into logical volumes by creating a volume group called *lxc*. OpenStack-Ansible
will create a 5GB logical volume for the filesystem of each container running
on the host.
By default, ansible creates a 5 GB logical volume. Plan storage
accordingly to support the quantity of containers on each target
host.
Network requirements
~~~~~~~~~~~~~~~~~~~~
It is possible to deploy an OpenStack environment with only one physical
network interface. This works for small environments but it will cause problems
when the environment grows.
For the best performance, reliability and scalability, deployers should
consider a network configuration that contains the following features:
* Bonded network interfaces: Increases performance and/or reliability
(dependent on bonding architecture)
* VLAN offloading: Increases performance by adding and removing VLAN tags in
hardware, rather than in the server's main CPU
* Gigabit or 10 Gigabit Ethernet: Supports higher network speeds, which can
also improve storage performance when using the Block Storage (cinder)
service
* Jumbo frames: Increases network performance by allowing more data to be sent
in each packet
Software requirements
~~~~~~~~~~~~~~~~~~~~~
All hosts within an OpenStack-Ansible environment must meet the following
minimum requirements:
* Ubuntu 14.04 LTS (Trusty Tahr)
* OSA is tested regularly against the latest Ubuntu 14.04 LTS point
releases
* Linux kernel version ``3.13.0-34-generic`` or later
* Secure Shell (SSH) client and server that supports public key
authentication
* Network Time Protocol (NTP) client for time synchronization (such as
``ntpd`` or ``chronyd``)
* Python 2.7 or later
--------------