Zed Series Release Notes

18.0.0.0b1-258

New Features

  • The service setup in keystone for cinder will now be executed through delegation to the cinder_service_setup_host which, by default, is localhost (the deploy host). Deployers can opt to rather change this to the utility container by implementing the following override in user_variables.yml.

    cinder_service_setup_host: "{{ groups['utility_all'][0] }}"
    
  • Added variables cinder_active_active_cluster and cinder_active_active_cluster_name that allow to explicitly enable or disable active/active feature, and set cluster name.

  • The list of enabled filters for the Cinder scheduler, scheduler_default_filters in cinder.conf, could previously be defined only via an entry in cinder_cinder_conf_overrides. You now have the option to instead define a list variable, cinder_scheduler_default_filters, that defines the enabled filters. This is helpful if you either want to disable one of the filters enabled by default (at the time of writing, these are AvailabilityZoneFilter, CapacityFilter, and CapabilitiesFilter), or if conversely you want to add a filter that is normally not enabled, such as DifferentBackendFilter or InstanceLocalityFilter.

    For example, to enable the InstanceLocalityFilter in addition to the normally enabled scheduler filters, use the following variable.

    cinder_scheduler_default_filters:
      - AvailabilityZoneFilter
      - CapacityFilter
      - CapabilitiesFilter
      - InstanceLocalityFilter
    
  • Cinder is deployed with Active-Active enabled by default if you are using Ceph as a backend storage.

  • The role now supports using the distribution packages for the OpenStack services instead of the pip ones. This feature is disabled by default and can be enabled by simply setting the cinder_install_method variable to distro.–

  • Introduced new variable cinder_volume_usage_audit_send_actions_enabled to allow the deployer to disable the send actions option in cinder-volume-usage-audit service unit. To have lowest possible footprint, the default value would be true to not change the behaviour of the cinder-volume-usage-audit in existing deployments.

  • Deployers can now define a cinder-backend volume type explicitly private or public with option public set to true or false.

  • Support separate oslo.messaging services for RPC and Notifications to enable operation of separate and different messaging backend servers in cinder.

Known Issues

  • Due to a change in how backend_host is defined when using Ceph, all the Cinder volumes will restart under the same backend name. This will mean that any volumes which previously were assigned to the host or container that hosted the volume will no longer be manageable. The workaround for this is to use the cinder-manage volume update_host command to move those volumes to the new backend host. This known issue will be resolved soon with an upgrade playbook.

  • The previous way of using a common backend_host across all deployments was not recommended by the Cinder team and it will cause duplicate messages that cause problems in the environment.

Upgrade Notes

  • In Stein, Cinder stopped supporting configuring backup drivers without the full class path. This means that you must now use the following values for cinder_service_backup_driver.

    • cinder.backup.drivers.swift.SwiftBackupDriver

    • cinder.backup.drivers.ceph.CephBackupDriver

    If you do not make this change, the Cinder backup service will refuse to start properly.

  • Variable cinder_enable_v2_api is set to False by default. This will result in Cinder v2 API removal from keystone catalog during upgrade. If you want to preserve v2 API you must override cinder_enable_v2_api in user_variables.yml

  • The variable cinder_iscsi_helper has been replaced by the new variable which is cinder_target_helper due to the fact that iscsi_helper has been deprecated in Cinder.

  • It is possible that you may need to use the cinder-manage command to migrate volumes to a specific host. In addition, you will have to remove the old rbd:volumes service which will be stale.

  • Variable cinder_service_internaluri_insecure has been replaced with keystone_service_internaluri_insecure that is used across all roles for the exact same purpose.

  • Cinder v2 API is now fully removed from Cinder service. With that os_cinder role ensures v2 endpoint is not present anymore in the catalog and remove endpoints if they’re present.

Deprecation Notes

  • The variable cinder_requires_pip_packages is no longer required and has therefore been removed.

  • The log path, /var/log/cinder is no longer used to capture service logs. All logging for the cinder service will now be sent directly to the systemd journal.

  • The rabbitmq server parameters have been replaced by corresponding oslo.messaging RPC and Notify parameters in order to abstract the messaging service from the actual backend server deployment. - cinder_oslomsg_rpc_servers replaces cinder_rabbitmq_servers - cinder_oslomsg_rpc_port replaces cinder_rabbitmq_port - cinder_oslomsg_rpc_use_ssl replaces cinder_rabbitmq_use_ssl - cinder_oslomsg_rpc_userid replaces cinder_rabbitmq_userid - cinder_oslomsg_rpc_vhost replaces cinder_rabbitmq_vhost - cinder_oslomsg_notify_servers replaces cinder_rabbitmq_telemetry_servers - cinder_oslomsg_notify_port replaces cinder_rabbitmq_telemetry_port - cinder_oslomsg_notify_use_ssl replaces cinder_rabbitmq_telemetry_use_ssl - cinder_oslomsg_notify_userid replaces cinder_rabbitmq_telemetry_userid - cinder_oslomsg_notify_vhost replaces cinder_rabbitmq_telemetry_vhost

Bug Fixes

  • Fixes a file descriptor leak which may impact services which use the oslo.messaging RabbitMQ heartbeat mechanism.

18.0.0.0b1

Upgrade Notes

  • The Cinder v1 API and the variable to enable it, cinder_enable_v1_api, have been removed. Existing keystone registered endpoints and service for cinder v1 will be removed during an upgrade.

  • The cinder_enable_v3_api variable has been removed as it had no effect.

17.0.0.0b2

Other Notes

  • Added support for specifying GID and UID for cinder system user by defining cinder_system_user_uid and cinder_system_group_gid. This setting is optional.

16.0.0.0rc1

New Features

  • The cinder-api service has moved to run as a uWSGI application. You can set the max number of WSGI processes, the number of processes, threads, and buffer size utilizing the cinder_wsgi_processes_max, cinder_wsgi_processes, cinder_wsgi_threads, and cinder_wsgi_buffer_size. Additionally, you can override any settings in the uWSGI ini configuration file using the cinder_api_uwsgi_ini_overrides setting. The uWSGI application will listen on the address specified by cinder_uwsgi_bind_address which defaults to 0.0.0.0.

16.0.0.0b3

New Features

  • The os_cinder role now provides for doing online data migrations once the db sync has been completed. The data migrations will not be executed until the boolean variable cinder_all_software_updated is true. This variable will need to be set by the playbook consuming the role.

Deprecation Notes

  • Remove cinder_rpc_backend option due to deprecation of rpc_backend option in oslo.messaging.

16.0.0.0b2

New Features

  • Added cinder_auth_strategy variable to configure Cinder’s auth strategy since Cinder can work in noauth mode as well.

  • New variables have been added to allow a deployer to customize a cinder systemd unit file to their liking.

  • The task dropping the cinder systemd unit files now uses the config_template action plugin allowing deployers access to customize the unit files as they see fit without having to load extra options into the defaults and pollute the generic systemd unit file with jinja2 variables and conditionals.

  • The ability to disable the certificate validation when checking and interacting with the internal cinder endpoint has been implemented. In order to do so, set the following in /etc/openstack_deploy/user_variables.yml.

    cinder_service_internaluri_insecure: yes
    

Deprecation Notes

  • Remove cinder_glance_api_version option due to deprecation of glance_api_version option in Cinder.

16.0.0.0b1

New Features

  • Capping the default value for the variable cinder_osapi_volume_workers to 16 when the user doesn’t configure this variable. Default value is half the number of vCPUs available on the machine with a capping value of 16.

  • Add support for the cinder v3 api. This is enabled by default, but can be disabled by setting the cinder_enable_v3_api variable to false.

  • For the os_cinder role, the systemd unit TimeoutSec value which controls the time between sending a SIGTERM signal and a SIGKILL signal when stopping or restarting the service has been reduced from 300 seconds to 120 seconds. This provides 2 minutes for long-lived sessions to drain while preventing new ones from starting before a restart or a stop. The RestartSec value which controls the time between the service stop and start when restarting has been reduced from 150 seconds to 2 seconds to make the restart happen faster. These values can be adjusted by using the cinder_*_init_config_overrides variables which use the config_template task to change template defaults.

Upgrade Notes

  • The variables cinder_sigkill_timeout and cinder_restart_wait have been removed. The previous default values have now been set in the template directly and can be adjusted by using the cinder_*_init_overrides variables which use the config_template task to change template defaults.

Deprecation Notes

  • The cinder_keystone_auth_plugin variable has been deprecated. cinder_keystone_auth_type should be used instead to configure authentication type.

15.0.0.0rc1

Upgrade Notes

  • The global override cinder_nfs_client is replaced in favor of fully supporting multi backends configuration via the cinder_backends stanza.

15.0.0.0b2

Upgrade Notes

  • The cinder project removed the shred value for the volume_clear option. The default for the os_cinder OpenStack-Ansible role has changed to zero.

15.0.0.0b1

New Features

  • Deployers can now define the override cinder_rpc_executor_thread_pool_size which defaults to 64

  • Deployers can now define the override cinder_rpc_response_timeout which defaults to 60

  • Additional volume-types can be created by defining a list named extra_volume_types in the desired backend of the variable(s) cinder_backends

  • Deployers can now define the varible cinder_qos_specs to create qos specs and assign those specs to desired cinder volume types.

Upgrade Notes

  • The variables cinder_requirements_git_repo and cinder_requirements_git_install_branch have been removed in favour of using the URL/path to the upper-constraints file using the variable pip_install_upper_constraints instead.

14.0.0.0rc2

New Features

  • CentOS7/RHEL support has been added to the os_cinder role.

14.0.0.0b3

New Features

  • The os_cinder role now supports the ability to configure whether apt/yum tasks install the latest available package, or just ensure that the package is present. The default action is to ensure that the latest package is present. The action taken may be changed to only ensure that the package is present by setting cinder_package_state to present.

Upgrade Notes

  • The variable cinder_apt_packages has been renamed to cinder_distro_packages.

  • The variable cinder_volume_apt_packages has been renamed to cinder_volume_distro_packages.

  • The variable cinder_lvm_volume_apt_packages has been renamed to cinder_lvm_volume_distro_packages.

  • The os_cinder role always checks whether the latest package is installed when executed. If a deployer wishes to change the check to only validate the presence of the package, the option cinder_package_state should be set to present.

14.0.0.0b2

New Features

  • The os_cinder role now supports Ubuntu 16.04.

Upgrade Notes

  • Installation of cinder and its dependent pip packages will now only occur within a Python virtual environment. The cinder_venv_enabled and cinder_venv_bin variables have been removed.

14.0.0.0b1

Upgrade Notes

  • The database create and user creates have been removed from the os_cinder role. These tasks have been relocated to the playbooks.