tools/deployment
Michel Thebeau 7abcd94a7b deployment: libvirt: update machine type and model
Tests should run on a comparably newer model of CPU and should be fixed
for all tests under virtualization.

Nehalem cpu model is recommended as one that has been used for this
purpose for a few years.

Specifying 'forbid' for fallback and 'exact' for mode will ensure that
hosts the Qemu emulator is up-to-date on the host, capable of emulating
the expect model.  The consistency will make test results reliable
across host machines.

The newer machine type supports ACPI for example.

The feature "vmx" is required on computes to support nesting.

Related-Bug: #1790716

Change-Id: Ib338501b4805532a9d1ebaf55735f9084bfa8e96
Signed-off-by: Michel Thebeau <michel.thebeau@windriver.com>
2018-09-10 10:27:37 -04:00
..
libvirt deployment: libvirt: update machine type and model 2018-09-10 10:27:37 -04:00
provision Add virtual environemnt deployment scripts 2018-08-30 10:16:53 -05:00
virtualbox Add virtual environemnt deployment scripts 2018-08-30 10:16:53 -05:00
README.rst Add virtual environemnt deployment scripts 2018-08-30 10:16:53 -05:00

README.rst

StarlingX Deployment in Virtualized Environments

A StarlingX system can be installed in a variety of platforms with the following deployment options:

  • Standard Controller
    • Dedicated Storage
    • Controller Storage
  • All-in-one
    • Duplex
    • Simplex

Deployment options uses a variety of configurations based on 3 node identities:

  • Controller
  • Storage
  • Compute

Standard Controller :: Dedicated Storage

The software installation workflow for an initial Ceph-backed block storage on dedicated storage nodes is:

  • Controller-0 Installation and Provisioning
  • Controller-1 / Compute Host / Storage Host Installation
  • Controller-1 Provisioning
  • Provider Network Configuration
  • Compute Host Provisioning
  • Storage Host Provisioning

Standard Controller :: Controller Storage

The software installation workflow for an initial LVM-backed block storage on controller nodes is:

  • Controller-0 Installation
  • Controller-0 and System Provisioning
  • Controller-1 / Compute Host Installation
  • Controller-1 Provisioning
  • Compute Host Provisioning

All-in-one :: Duplex

The software installation workflow for two combined controller / compute nodes is:

  • Controller-0 Installation and Provisioning
  • Controller-1 Installation and Provisioning

All-in-one :: Simplex

The software installation workflow for a single combined controller / compute node is:

  • Controller-0 Installation and Provisioning

Virtualization Environments

The available virtualization products where StarlingX has been deployed are:

  • VirtualBox
  • Libvirt/QEMU

Directory Structure

Deployment directory hosts a total of 3 directories and 18 files:

$ tree -L 3 deployment/
deployment/
├── libvirt
│   ├── compute.xml
│   ├── controller_allinone.xml
│   ├── controller.xml
│   ├── destroy_allinone.sh
│   ├── destroy_standard_controller.sh
│   ├── install_packages.sh
│   ├── setup_allinone.sh
│   └── setup_standard_controller.sh
├── provision
│   ├── simplex_stage_1.sh
│   └── simplex_stage_2.sh
└── virtualbox
    ├── all_in_one.conf
    ├── serial_vm.sh
    ├── setup_vm.sh
    ├── standard_controller.conf
    ├── start_vm.sh
    └── stop_vm.sh

Directory: libvirt

Deployment under Libvirt/QEMU uses a set of xml files to define the node identity:

  • Controller All-in-one
  • Controller
  • Compute

These nodes are used to create the virtual machines and the network interfaces to setup the StarlingX system:

  • Setup All-in-one
    • 2 Controllers
  • Setup Standard Controller
    • 2 Controllers
    • 2 Computes

Directory: virtualbox

Deployment under VirtualBox uses a set of configuration files to define the StarlingX system:

  • All-in-one Configuration
  • Standard Controller Configuration

These configurations files are used to create the virtual machines and the network interfaces from a single script:

  • Setup VM

Directory: provision

A set of scripts are provided to automate the provisioning of data interfaces and local storage resources for the compute function for StarlingX Duplex or Simplex.