Configure Virtual Bare Metal Controller (VBMC)

The director can use virtual machines as nodes on a KVM host. It controls their power management through emulated IPMI devices. SInce we have a lab setup using KVM as my setup we will use VBMC to help register the nodes.

Since we are using virtual machines for our setup which does not has any iLO or similar utlity for power management we will use VBMC.

Configuration Files

Create a JSON file describing your Overcloud baremetal nodes, call it "instack-threenodes.json" and place in your home directory. The file should contain a JSON object with the only field nodes containing list of node descriptions.

NOTE: The file to be imported may be either JSON, YAML or CSV format, and the type is detected via the file extension (json, yaml, csv).

Introspection of overcloud nodes

For the introspection/discovery of overcloud nodes. Ironic uses PXE provided by the undercloud. The "dnsmasq" is used to provide DHCP and PXE capabilities to the ironic service. The PXE directory images are delivered over HTTP. Prior to introspection, the registered nodes have a valid kernel and ramdisk assigned to them and every node for introspection should have:

The "openstack baremetal introspection" command is used to start the introspection and "bulk start" can be used to proceed with introspection of all nodes. The two nodes that will be checked are the controller and compute nodes

NOTE: After the introspection, the node's provisioning state will switch back to "available" but if it fails then you can also manually change the state of the node's from "manage" to "available" by using below the command

Flavor Details

The undercloud will have a number of default flavors created at install time. In most cases these flavors do not need to be modified, but they can be if desired. By default, all overcloud instances will be booted with the baremetal flavor, so all baremetal nodes must have at least as much memory, disk, and cpu as that flavor.

In addition, there are profile-specific flavors created which can be used with the profile-matching feature

IMPORTANT NOTE: Make sure that the extra specs in your flavor starting with capability: should match ones in node.properties['capabilities']. These fields will be checked by nova-scheduler and if they don't match you will get "NoValidHost: No valid host was found. There are not enough hosts available." error message during the overcloud deployment.

Tagging node into profiles

After registering and inspecting the hardware of each node, you will tag them into specific profiles. These profile tags match your nodes to flavors, and in turn the flavors are assigned to a deployment role. Default profile flavors compute, control, swift-storage, ceph-storage, and block-storage are created during Undercloud installation and are usable without modification in most environments.

Heat Templates

The director uses Heat Orchestration Templates (HOT) as a template format for its Overcloud deployment plan. Templates in HOT format are mostly expressed in YAML format. The purpose of a template is to define and create a stack, which is a collection of resources that Heat creates and the configuration per resources. Resources are objects in OpenStack and can include compute resources, network configuration, security groups, scaling rules, and custom resources.

The structure of a Heat template has three main sections:Parameters - These are settings passed to Heat, which provides a way to customize a stack, and any default values for parameters without passed values. These are defined in the parameters section of a template.

Resources - These are the specific objects to create and configure as part of a stack. OpenStack contains a set of core resources that span across all components. These are defined in the resources section of a template.

Output - These are values passed from Heat after the stack's creation. You can access these values either through the Heat API or client tools. These are defined in the output section of a template.

The default mapping uses the root disk for Ceph Storage. However, most production environments use multiple separate disks for storage and partitions for journaling. In this situation, you define a storage map as part of the storage-environment.yaml file copied previously.

Edit the storage-environment.yaml file and add an additional section that contains the following:

This adds extra Hiera data to the Overcloud, which Puppet uses as custom parameters during configuration. Use the ceph::profile::params::osds parameter to map the relevant disks and journal partitions. For example, a Ceph node with four disks might have the following assignments:

/dev/vda - The root disk containing the Overcloud image/dev/vdb - The disk containing the journal partitions. This is usually a solid state disk (SSD) to aid with system performance./dev/vdc - The OSD disks

Overcloud Deployment

After introspection the undercloud knows which nodes are used for the deployment of the overcloud, but it may not know what overcloud node types are to be deployed.

HINT: You can monitor the progress of the installation on the overcloud virtual machine nodes

--templates [TEMPLATES]: The directory containing the Heat templates to deploy. If blank, the command uses the default template location at /usr/share/openstack-tripleo-heat-templates/

-e [EXTRA HEAT TEMPLATE], --extra-template [EXTRA HEAT TEMPLATE]: Extra environment files to pass to the overcloud deployment. Can be specified more than once. Note that the order of environment files passed to the openstack overcloud deploy command is important.

--neutron-tunnel-types: The tunnel types for the Neutron tenant network. To specify multiple values, use a comma separated string

Get Articles delivered to your mail

CONNECT US ON SOCIAL PLATFORM

YOU MIGHT ALSO LIKE

RECENT POSTS

Your browser does not support JavaScript!

About Me

My name is Deepak Prasad and I am very passionate about my work which mostly includes and revolves around Linux/Unix platform, virtualisation, openstack cloud, hardware, firmware, security, network, scripting, automation and similar stuff.

If I look back it looks like it was just yesterday when I started as a fresher in my first company as a total noob (which still I am BTW) and now I am here trying to run a tutorial site, I am not sure how good this is but at least I feel I learn something new every time I open my blog to write a new post. This honestly was sort of a notebook for me later turned into a tutorial blog.