diff --git a/puppet-manifests/src/hieradata/controller.yaml b/puppet-manifests/src/hieradata/controller.yaml index 1d6e2e176d..2f31fa6ffe 100644 --- a/puppet-manifests/src/hieradata/controller.yaml +++ b/puppet-manifests/src/hieradata/controller.yaml @@ -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' diff --git a/puppet-manifests/src/modules/openstack/manifests/gnocchi.pp b/puppet-manifests/src/modules/openstack/manifests/gnocchi.pp index cb79f4df8e..ee9871e4e8 100644 --- a/puppet-manifests/src/modules/openstack/manifests/gnocchi.pp +++ b/puppet-manifests/src/modules/openstack/manifests/gnocchi.pp @@ -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'; } } diff --git a/puppet-manifests/src/modules/platform/manifests/filesystem.pp b/puppet-manifests/src/modules/platform/manifests/filesystem.pp index 4f24bfd6ac..f972a2ebea 100644 --- a/puppet-manifests/src/modules/platform/manifests/filesystem.pp +++ b/puppet-manifests/src/modules/platform/manifests/filesystem.pp @@ -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 diff --git a/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/controller_fs.py b/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/controller_fs.py index 7cb2a137b4..24e4edfb5e 100644 --- a/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/controller_fs.py +++ b/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/controller_fs.py @@ -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 diff --git a/sysinv/sysinv/sysinv/sysinv/common/constants.py b/sysinv/sysinv/sysinv/sysinv/common/constants.py index 9490331e6d..6239e63865 100644 --- a/sysinv/sysinv/sysinv/sysinv/common/constants.py +++ b/sysinv/sysinv/sysinv/sysinv/common/constants.py @@ -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 = [ diff --git a/sysinv/sysinv/sysinv/sysinv/conductor/manager.py b/sysinv/sysinv/sysinv/sysinv/conductor/manager.py index e734890643..9d1f1f3d3b 100644 --- a/sysinv/sysinv/sysinv/sysinv/conductor/manager.py +++ b/sysinv/sysinv/sysinv/sysinv/conductor/manager.py @@ -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 ' diff --git a/sysinv/sysinv/sysinv/sysinv/puppet/storage.py b/sysinv/sysinv/sysinv/sysinv/puppet/storage.py index 68d228c42d..bff876b13f 100644 --- a/sysinv/sysinv/sysinv/sysinv/puppet/storage.py +++ b/sysinv/sysinv/sysinv/sysinv/puppet/storage.py @@ -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