Create a new unreplicated filesystem for gnocchi

Puppet changes to configure the default 5G filesystem for gnocchi.
Gnocchi storage moves from /opt/cgcs/ceilometer/data to /opt/gnocchi.

Story: 2002825
Task: 24240
Depends-On: https://review.openstack.org/#/c/590449/

Change-Id: If943278d9aaaafe2bfa1f24017499fff6b3e0ecc
Signed-off-by: Angie Wang <angie.wang@windriver.com>
This commit is contained in:
Angie Wang 2018-08-08 15:21:37 -04:00
parent ece0e92a1f
commit dd23ee82c6
7 changed files with 88 additions and 21 deletions

View File

@ -309,7 +309,7 @@ gnocchi::api::enabled: false
gnocchi::api::service_name: 'openstack-gnocchi-api'
gnocchi::api::enable_proxy_headers_parsing: true
gnocchi::metricd::enabled: false
gnocchi::storage::file::file_basepath: '/opt/cgcs/ceilometer/data'
gnocchi::storage::file::file_basepath: '/opt/gnocchi'
gnocchi::db::sync::user: 'root'

View File

@ -60,7 +60,7 @@ class openstack::gnocchi::metricd
if $metricd_workers > 1 {
gnocchi_config {
'DEFAULT/coordination_url': value => 'file:///opt/cgcs/ceilometer/data/locks';
'DEFAULT/coordination_url': value => 'file:///opt/gnocchi/locks';
}
}

View File

@ -138,6 +138,27 @@ class platform::filesystem::scratch
}
}
class platform::filesystem::gnocchi::params (
$lv_size = '5',
$lv_name = 'gnocchi-lv',
$mountpoint = '/opt/gnocchi',
$devmapper = '/dev/mapper/cgts--vg-gnocchi--lv',
$fs_type = 'ext4',
$fs_options = '-i 8192'
) { }
class platform::filesystem::gnocchi
inherits ::platform::filesystem::gnocchi::params {
platform::filesystem { $lv_name:
lv_name => $lv_name,
lv_size => $lv_size,
mountpoint => $mountpoint,
fs_type => $fs_type,
fs_options => $fs_options
}
}
class platform::filesystem::docker::params (
$lv_size = '1',
$lv_name = 'docker-lv',
@ -225,6 +246,7 @@ class platform::filesystem::controller {
include ::platform::filesystem::scratch
include ::platform::filesystem::docker
include ::platform::filesystem::img_conversions
include ::platform::filesystem::gnocchi
}
@ -258,6 +280,21 @@ class platform::filesystem::scratch::runtime {
}
class platform::filesystem::gnocchi::runtime {
include ::platform::filesystem::gnocchi::params
$lv_name = $::platform::filesystem::gnocchi::params::lv_name
$lv_size = $::platform::filesystem::gnocchi::params::lv_size
$devmapper = $::platform::filesystem::gnocchi::params::devmapper
platform::filesystem::resize { $lv_name:
lv_name => $lv_name,
lv_size => $lv_size,
devmapper => $devmapper,
}
}
class platform::filesystem::docker::runtime {
include ::platform::filesystem::docker::params

View File

@ -73,6 +73,8 @@ class ControllerFs(base.APIBase):
/scratch (scratch-lv)
The extension GiB of controller_fs - maps to
/opt/extension (extension-lv)
The gnocchi GiB of controller_fs - maps to
/opt/gnocchi (gnocchi-lv)
"""
uuid = types.uuid
@ -627,7 +629,8 @@ def _check_controller_multi_fs_data(context, controller_fs_list_new,
lvdisplay_keys = [constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_DATABASE],
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_CGCS],
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_BACKUP],
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_SCRATCH]]
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_SCRATCH],
constants.FILESYSTEM_LV_DICT[constants.FILESYSTEM_NAME_GNOCCHI]]
# On primary region, img-conversions always exists in controller_fs DB table.
# On secondary region, if both glance and cinder are sharing from the primary

View File

@ -265,6 +265,7 @@ DEFAULT_VIRTUAL_BACKUP_STOR_SIZE = 5
DEFAULT_EXTENSION_STOR_SIZE = 1
DEFAULT_PATCH_VAULT_STOR_SIZE = 8
DEFAULT_ETCD_STORE_SIZE = 1
DEFAULT_GNOCCHI_STOR_SIZE = 5
# Docker lv size when Kubernetes is configured
KUBERNETES_DOCKER_STOR_SIZE = 10
@ -438,6 +439,7 @@ FILESYSTEM_NAME_DOCKER_DISTRIBUTION = 'docker-distribution'
FILESYSTEM_NAME_EXTENSION = 'extension'
FILESYSTEM_NAME_ETCD = 'etcd'
FILESYSTEM_NAME_PATCH_VAULT = 'patch-vault'
FILESYSTEM_NAME_GNOCCHI = 'gnocchi'
FILESYSTEM_LV_DICT = {
FILESYSTEM_NAME_CGCS: 'cgcs-lv',
@ -449,7 +451,8 @@ FILESYSTEM_LV_DICT = {
FILESYSTEM_NAME_DATABASE: 'pgsql-lv',
FILESYSTEM_NAME_EXTENSION: 'extension-lv',
FILESYSTEM_NAME_ETCD: 'etcd-lv',
FILESYSTEM_NAME_PATCH_VAULT: 'patch-vault-lv'
FILESYSTEM_NAME_PATCH_VAULT: 'patch-vault-lv',
FILESYSTEM_NAME_GNOCCHI: 'gnocchi-lv'
}
SUPPORTED_LOGICAL_VOLUME_LIST = FILESYSTEM_LV_DICT.values()
@ -466,6 +469,7 @@ SUPPORTED_FILEYSTEM_LIST = [
FILESYSTEM_NAME_DOCKER_DISTRIBUTION,
FILESYSTEM_NAME_PATCH_VAULT,
FILESYSTEM_NAME_ETCD,
FILESYSTEM_NAME_GNOCCHI
]
SUPPORTED_REPLICATED_FILEYSTEM_LIST = [

View File

@ -5304,6 +5304,8 @@ class ConductorManager(service.PeriodicService):
'platform::drbd::patch_vault::runtime',
constants.FILESYSTEM_NAME_ETCD:
'platform::drbd::etcd::runtime',
constants.FILESYSTEM_NAME_GNOCCHI:
'platform::filesystem::gnocchi::runtime',
}
puppet_class = None
@ -6301,6 +6303,7 @@ class ConductorManager(service.PeriodicService):
# Add the extension storage
extension_lv_size = constants.DEFAULT_EXTENSION_STOR_SIZE
scratch_lv_size = cutils.get_controller_fs_scratch_size()
gnocchi_lv_size = constants.DEFAULT_GNOCCHI_STOR_SIZE
# Assume Non-region mode where glance is local as default
glance_local = True
@ -6328,9 +6331,9 @@ class ConductorManager(service.PeriodicService):
# Virtual: 120GB disk
#
# Min size of the cgts-vg PV is:
# 45.0 G - PV for cgts-vg (specified in the kickstart)
# 50.0 G - PV for cgts-vg (specified in the kickstart)
# or
# 46.0 G - (for DCSC non-AIO)
# 58.0 G - (for DCSC non-AIO)
# 4 G - /var/log (reserved in kickstart)
# 4 G - /scratch (reserved in kickstart)
# 2 G - cgcs_lv (DRBD bootstrap manifest)
@ -6351,23 +6354,24 @@ class ConductorManager(service.PeriodicService):
# 1 G - /opt/extension
# 8 G - /opt/img_conversions
# 5 G - /opt/backup
# 5 G - /opt/gnocchi
# 1 G - anchor_lv
# 8 G - /opt/patch-vault (DRBD ctlr manifest for DCSC non-AIO only)
# -----
# 45 G or 53 G (for DCSC non-AIO)
# 50 G or 58 G (for DCSC non-AIO)
#
# vg_free calculation:
# 45/53 G - 17 G = 28/36 G
# 50/58 G - 17 G = 33/41 G
#
# The absolute minimum disk size for these default settings:
# 0.5 G - /boot
# 10.0 G - /
# 45.0 G - cgts-vg PV
# or 53.0 G - (DCSC non-AIO)
# 50.0 G - cgts-vg PV
# or 58.0 G - (DCSC non-AIO)
# -------
# 55.5 G => ~56G min size disk
# 60.5 G => ~61G min size disk
# or
# 63.5 G => ~64G min size disk
# 68.5 G => ~69G min size disk
#
# If required disk is size 120G:
# 1) Standard controller - will use all free space for the PV
@ -6378,8 +6382,8 @@ class ConductorManager(service.PeriodicService):
# 2) AIO - will leave unused space for further partitioning
# 0.5 G - /boot
# 10.0 G - /
# 45.0 G - cgts-vg PV
# 64.5 G - unpartitioned free space
# 50.0 G - cgts-vg PV
# 59.5 G - unpartitioned free space
#
# Min sized "usable" vbox disk is ~75G
# Min sized real world disk is 120G
@ -6393,7 +6397,7 @@ class ConductorManager(service.PeriodicService):
else:
vg_free = cutils.get_cgts_vg_free_space()
if vg_free > 116:
if vg_free > 121:
LOG.info("VG Free : %s ... large disk defaults" % vg_free)
@ -6424,13 +6428,14 @@ class ConductorManager(service.PeriodicService):
# 1 G - /opt/extension
# 20 G - /opt/img_conversions
# 50 G - /opt/backup
# 5 G - /opt/gnocchi
# 1 G - anchor_lv
# 8 G - /opt/patch-vault (DRBD ctlr manifest for DCSC non-AIO only)
# -----
# 142 G or 150 G (for DCSC non-AIO)
# 147 G or 150 G (for DCSC non-AIO)
#
# vg_free calculation:
# 142/150 G - 25 G = 117/125 G
# 147/150 G - 25 G = 121/125 G
#
# The absolute minimum disk size for these default settings:
# 0.5 G - /boot
@ -6468,7 +6473,7 @@ class ConductorManager(service.PeriodicService):
backup_lv_size = database_storage + \
cgcs_lv_size + constants.BACKUP_OVERHEAD
elif vg_free > 66:
elif vg_free > 70:
LOG.info("VG Free : %s ... small disk defaults" % vg_free)
@ -6499,13 +6504,14 @@ class ConductorManager(service.PeriodicService):
# 1 G - /opt/extension
# 10 G - /opt/img_conversions
# 30 G - /opt/backup
# 5 G - /opt/gnocchi
# 1 G - anchor_lv
# 8 G - /opt/patch-vault (DRBD ctlr manifest for DCSC non-AIO only)
# -----
# 92 G or 100 G (for DCSC non-AIO)
# 99 G or 100 G (for DCSC non-AIO)
#
# vg_free calculation:
# 92/100 G - 25 G = 67/75 G
# 99/100 G - 25 G = 72/75 G
#
# The absolute minimum disk size for these default settings:
# 0.5 G - /boot
@ -6587,6 +6593,17 @@ class ConductorManager(service.PeriodicService):
data['name'], data['logical_volume'], data['size']))
self.dbapi.controller_fs_create(data)
data = {
'name': constants.FILESYSTEM_NAME_GNOCCHI,
'size': gnocchi_lv_size,
'logical_volume': constants.FILESYSTEM_LV_DICT[
constants.FILESYSTEM_NAME_GNOCCHI],
'replicated': False,
}
LOG.info("Creating FS:%s:%s %d" % (
data['name'], data['logical_volume'], data['size']))
self.dbapi.controller_fs_create(data)
if glance_local:
data = {
'name': constants.FILESYSTEM_NAME_IMG_CONVERSIONS,
@ -9043,7 +9060,8 @@ class ConductorManager(service.PeriodicService):
'/dev/cgts-vg/cgcs-lv ' \
'/dev/cgts-vg/img-conversions-lv ' \
'/dev/cgts-vg/scratch-lv ' \
'/dev/cgts-vg/extension-lv '
'/dev/cgts-vg/extension-lv ' \
'/dev/cgts-vg/gnocchi-lv'
if kubernetes_config:
lvdisplay_command = lvdisplay_command + '/dev/cgts-vg/docker-lv '

View File

@ -81,6 +81,11 @@ class StoragePuppet(base.BasePuppet):
'platform::drbd::dockerdistribution::params::lv_size':
controller_fs.size
})
elif controller_fs.name == constants.FILESYSTEM_NAME_GNOCCHI:
config.update({
'platform::filesystem::gnocchi::params::lv_size':
controller_fs.size
})
return config