Add way to periodically trim Cinder DB
We're adding a service that is responsible for executing db purge. Service will be deployed by default, but left stopped/disabled. This way we allow deployers to enable/disable feature by changing value of cinder_purge_deleted. Otherwise, when variables set to true once, setting them back to false won't lead to stopping of DB trimming , so timer would need to be stopped manually. Change-Id: Ic5ae8c778bff2858fcb31c85d4b910805e452c3f
This commit is contained in:
parent
1732bff64b
commit
f16036e1f1
@ -459,3 +459,13 @@ cinder_pki_install_certificates:
|
||||
# Define user-provided SSL certificates
|
||||
#cinder_user_ssl_cert: <path to cert on ansible deployment host>
|
||||
#cinder_user_ssl_key: <path to cert on ansible deployment host>
|
||||
|
||||
# Database cleanup
|
||||
# Periodically purge shadow tables, where archived records are stored
|
||||
cinder_purge_deleted: False
|
||||
# When to start purge task.
|
||||
cinder_purge_deleted_on_calendar: "*-*-* 01:00:00"
|
||||
# Purge events that are older then the number of days below.
|
||||
cinder_purge_deleted_before_days: "364"
|
||||
# Delay the timer by a randomly selected amount of time.
|
||||
cinder_purge_deleted_randomized_delay_sec: 0
|
||||
|
@ -0,0 +1,12 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Added option to periodically clean-up deleted records from Cinder
|
||||
database.
|
||||
For this purpose a new service``cinder-purge-deleted`` was introduced.
|
||||
It will be called periodically using corresponsive systemd timer on the
|
||||
first cinder-api host.
|
||||
|
||||
By default this service is disabled/stopped and database cleanup
|
||||
is not performed. You can enable this behaviour by defining variable
|
||||
``cinder_purge_deleted``.
|
@ -248,3 +248,34 @@
|
||||
- "_cinder_is_last_play_host"
|
||||
tags:
|
||||
- cinder-config
|
||||
|
||||
- name: Create service and timer for archiving deleted records
|
||||
include_role:
|
||||
name: systemd_service
|
||||
vars:
|
||||
systemd_service_restart_changed: false
|
||||
systemd_user_name: "{{ cinder_system_user_name }}"
|
||||
systemd_group_name: "{{ cinder_system_group_name }}"
|
||||
systemd_tempd_prefix: openstack
|
||||
systemd_slice_name: "{{ cinder_system_slice_name }}"
|
||||
systemd_lock_dir: "{{ cinder_lock_dir }}"
|
||||
systemd_services:
|
||||
- service_name: "cinder-purge-deleted"
|
||||
execstarts:
|
||||
- "{{ cinder_bin }}/cinder-manage db purge {{ cinder_purge_deleted_before_days }}"
|
||||
environment:
|
||||
UMASK: '0640'
|
||||
UMASK_DIR: '0750'
|
||||
program_sandboxing:
|
||||
RuntimeDirectory: 'cinder-purge-deleted'
|
||||
enabled: "{{ cinder_purge_deleted }}"
|
||||
timer:
|
||||
state: "{{ cinder_purge_deleted | ternary('started', 'stopped') }}"
|
||||
enabled: "{{ cinder_purge_deleted }}"
|
||||
options:
|
||||
OnCalendar: "{{ cinder_purge_deleted_on_calendar }}"
|
||||
RandomizedDelaySec: "{{ cinder_purge_deleted_randomized_delay_sec }}"
|
||||
Persistent: true
|
||||
Unit: "cinder-purge-deleted.service"
|
||||
when:
|
||||
- inventory_hostname == groups[cinder_services['cinder-api']['group']] | first
|
||||
|
Loading…
x
Reference in New Issue
Block a user