Files
metal/bsp-files/kickstarts/pre_disk_aio.cfg
Stefan Dinescu 103cccd786 Simplify disk space allocation
Allocating of space on the root disk was done in kickstart, combined
with config_controller. Various checks for disk and volume group
space made it difficult to add new filesystem partitions.

To simplify this, all checks are now merged under disk size checks.

Kickstart files now create the partitions of the same size for
rootfs and log partitions, no matter the disk size, with the
only variable size being the cgts-vg size.

Thus, any future changes will only need to consider only this
size for ensuring enough space is present.

The limit between small and big disks is 240GB, with a minimum
disk size of 120GB.

Depends-On: https://review.openstack.org/#/c/600743/
Change-Id: I37ecc8eb5468811d1ca3a71f8e2a0629525e8fad
Closes-bug: 1791170
Signed-off-by: Stefan Dinescu <stefan.dinescu@windriver.com>
2018-09-12 10:12:56 +03:00

109 lines
3.9 KiB
INI
Executable File

## NOTE: updates to partition sizes need to be also reflected in
## _controller_filesystem_limits() in sysinv/api/controllers/v1/istorconfig.py
##
## NOTE: When adding partitions, we currently have a max of 4 primary partitions.
## If more than 4 partitions are required, we can use a max of 3 --asprimary,
## to allow 1 primary logical partition with extended partitions
##
## NOTE: Max default PV size must align with the default controllerfs sizes
##
## BACKUP_OVERHEAD = 20
##
## Physical install (for disks over 240GB)
## - DB size is doubled to allow for upgrades
##
## DEFAULT_IMAGE_STOR_SIZE = 10
## DEFAULT_DATABASE_STOR_SIZE = 20
## DEFAULT_IMG_CONVERSION_STOR_SIZE = 20
## BACKUP = DEFAULT_DATABASE_STOR_SIZE + DEFAULT_IMAGE_STOR_SIZE
## + BACKUP_OVERHEAD = 50
## LOG_VOL_SIZE = 8192
## SCRATCH_VOL_SIZE = 8192
## RABBIT = 2048
## PLATFORM = 2048
## ANCHOR = 1024
## EXTENSION = 1024
## GNOCCHI = 5120
## RESERVED_PE = 16 (based on pesize=32768)
##
## CGCS_PV_SIZE = 10240 + 2*20480 + 20480 + 51200 + 8196 +
## 8196 + 2048 + 2048 + 1024 + 1024 + 5120 + 16 = 150544
##
## small install - (for disks below 240GB)
## - DB size is doubled to allow for upgrades
##
## DEFAULT_SMALL_IMAGE_STOR_SIZE = 10
## DEFAULT_SMALL_DATABASE_STOR_SIZE = 10
## DEFAULT_SMALL_IMG_CONVERSION_STOR_SIZE = 10
## DEFAULT_SMALL_BACKUP_STOR_SIZE = 30
##
## LOG_VOL_SIZE = 8192
## SCRATCH_VOL_SIZE = 8192
## RABBIT = 2048
## PLATFORM = 2048
## ANCHOR = 1024
## EXTENSION = 1024
## GNOCCHI = 5120
## RESERVED_PE = 16 (based on pesize=32768)
##
## CGCS_PV_SIZE = 10240 + 2*10240 + 10240 + 30720 + 8192 +
## 8192 + 2048 + 2048 + 1024 + 1024 + 5120 +16 = 99344
##
## NOTE: To maintain upgrade compatability within the volume group, keep the
## undersized LOG_VOL_SIZE and SCRATCH_VOL_SIZE, but size the minimally size
## physical volume correctly.
##
## R4 AIO installations:
## - R4 (case #1): /boot (0.5G), / (20G),
## cgts-vg PV (239G), /local_pv (239G)
## - R4 (case #2): /boot (0.5G), / (20G),
## cgts-vg PV (239G), cgts-vg (239G)
##
## Upgrade migration will start with R5 install and create a partition to align
## above so filesystems within the volume group will be able to maintain their
## sizes in R5
## - R5 install : /boot (0.5G), / (20G),
## cgts-vg PV (142G), un-partitioned (336G)
## - R5 (case #1): /boot (0.5G), / (20G),
## cgts-vg PV (142G), cgts-vg PV (97G), unpartitioned (239G)
## - R5 (case #2): /boot (0.5G), / (20G),
## cgts-vg PV (142G), cgts-vg PV (336G)
##
sz=$(blockdev --getsize64 $(get_disk $rootfs_device))
if [ $sz -le $((240*$gb)) ] ; then
# Round CGCS_PV_SIZE to the closest upper valued
# that can be divided by 1024. 99344/1024= 97.01 so
# CGCS_PV_SIZE=98*1024=100352
# Using a disk with a size under 120GB as install
# disk will allow the system to install, but
# config_controller will fail
CGCS_PV_SIZE=100352
else
CGCS_PV_SIZE=150544
fi
ROOTFS_SIZE=20000
LOG_VOL_SIZE=8000
SCRATCH_VOL_SIZE=8000
ROOTFS_OPTIONS="defaults"
profile_mode=`cat /proc/cmdline |xargs -n1 echo |grep security_profile= | grep extended`
if [ -n "$profile_mode" ]; then
# Enable iversion labelling for rootfs when IMA is enabled
ROOTFS_OPTIONS="${ROOTFS_OPTIONS},iversion"
fi
cat<<EOF>>/tmp/part-include
part /boot --fstype=ext4 --asprimary --size=500 --ondrive=$(get_disk $rootfs_device) --fsoptions="$ROOTFS_OPTIONS"
part pv.253004 --grow --size=500 --maxsize=$CGCS_PV_SIZE --ondrive=$(get_disk $rootfs_device)
volgroup cgts-vg --pesize=32768 pv.253004
logvol /var/log --fstype=ext4 --vgname=cgts-vg --size=$LOG_VOL_SIZE --name=log-lv
logvol /scratch --fstype=ext4 --vgname=cgts-vg --size=$SCRATCH_VOL_SIZE --name=scratch-lv
part / --fstype=ext4 --asprimary --size=$ROOTFS_SIZE --ondrive=$(get_disk $rootfs_device) --fsoptions="$ROOTFS_OPTIONS"
EOF
%end