LVM

StackHPC Kayobe configuration provides Logical Volume Manager (LVM) configuration that is compatible with the included Host Images configuration. The configuration uses the LVM host configuration functionality of Kayobe.

The LVM configuration is provided in etc/kayobe/inventory/group_vars/all/stackhpc/lvm. This allows configuration variables to be overridden on a per-group or per-host basis (which would not be possible for an “extra variable” in etc/kayobe/*.yml). This configuration is not used by default, and must be actively opted into. This can be done as follows:

controller_lvm_groups:
  - "{{ stackhpc_lvm_group_rootvg }}"

This will configure the standard set of logical volumes for the rootvg volume group on controller hosts.

The disks in this volume group are configured via stackhpc_lvm_group_rootvg_disks, and by default this contains a single disk, matched by a partition label of root (as used in the standard Host Images).

The size of each LV is configurable via the following variables:

# StackHPC LVM lv_swap LV size.
stackhpc_lvm_lv_swap_size: 16g

# StackHPC LVM lv_root LV size.
stackhpc_lvm_lv_root_size: 50g

# StackHPC LVM lv_tmp LV size.
stackhpc_lvm_lv_tmp_size: 10g

# StackHPC LVM lv_var LV size.
stackhpc_lvm_lv_var_size: 20g

# StackHPC LVM lv_var_tmp LV size.
stackhpc_lvm_lv_var_tmp_size: 2g

# StackHPC LVM lv_log LV size.
stackhpc_lvm_lv_log_size: 20g

# StackHPC LVM lv_audit LV size.
stackhpc_lvm_lv_audit_size: 10g

# StackHPC LVM lv_home LV size.
stackhpc_lvm_lv_home_size: 10g

Additional LVs may be configured via stackhpc_lvm_group_rootvg_lvs_extra. A common requirement is to have /var/lib/docker/ mounted on a separate LV, so this has been made convenient to achieve:

stackhpc_lvm_group_rootvg_lvs_extra:
  - "{{ stackhpc_lvm_lv_docker }}"

# StackHPC LVM lv_docker LV size.
stackhpc_lvm_lv_docker_size: 100%FREE

It may be desirable to use a lower percentage of the free space, in case another LV needs to be grown at a later date.

Growroot playbook

A growroot.yml custom playbook is provided that can be used to grow the partition and LVM Physical Volume (PV) of the root Volume Group (VG). This allows for expansion of Logical Volumes (LVs) in that VG.

The following variables may be used to configure the playbook:

growroot_group

Host pattern against which to target the playbook. Default is overcloud.

growroot_vg

Name of the VG containing the PV to grow. Default is rootvg to match the standard host image configuration.

This playbook may be used as a host configure pre hook, e.g. for overcloud hosts:

mkdir -p ${KAYOBE_CONFIG_PATH}/hooks/overcloud-host-configure/pre.d
cd ${KAYOBE_CONFIG_PATH}/hooks/overcloud-host-configure/pre.d
ln -s ../../../ansible/growroot.yml 30-growroot.yml