Zed Series Release Notes¶
18.0.0.0b1-191¶
New Features¶
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
swift_install_method
variable todistro
.
Support separate oslo.messaging services for RPC and Notifications to enable operation of separate and different messaging backend servers in swift.
The service setup in keystone for swift will now be executed through delegation to the
swift_service_setup_host
which, by default, islocalhost
(the deploy host). Deployers can opt to rather change this to the utility container by implementing the following override inuser_variables.yml
.swift_service_setup_host: "{{ groups['utility_all'][0] }}"
Deprecation Notes¶
The rabbitmq server parameters have been replaced by corresponding oslo.messaging Notify parameters in order to abstract the messaging service from the actual backend server deployment. - swift_oslomsg_notify_servers replaces swift_rabbitmq_telemetry_servers - swift_oslomsg_notify_port replaces swift_rabbitmq_telemetry_port - swift_oslomsg_notify_use_ssl replaces swift_rabbitmq_telemetry_use_ssl - swift_oslomsg_notify_userid replaces swift_rabbitmq_telemetry_userid - swift_oslomsg_notify_vhost replaces swift_rabbitmq_telemetry_vhost - swift_oslomsg_notify_password replaces swift_rabbitmq_telemetry_password
The variable
swift_requires_pip_packages
is no longer required and has therefore been removed.
Variable swift_gnocchi_enabled has been removed and won’t have any effect
16.0.0.0b3¶
New Features¶
The os_swift role now supports the swift3 middleware, allowing access to swift via the Amazon S3 API. This feature can enabled by setting
swift_swift3_enabled
totrue
.
16.0.0.0b2¶
New Features¶
New variables have been added to allow a deployer to customize a swift systemd unit file to their liking.
The task dropping the swift 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.
For the
os_swift
role, the systemd unitTimeoutSec
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. TheRestartSec
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 theswift_*_init_config_overrides
variables which use theconfig_template
task to change template defaults.
Upgrade Notes¶
For the
os_swift
role, the systemd unitTimeoutSec
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. TheRestartSec
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 theswift_*_init_config_overrides
variables which use theconfig_template
task to change template defaults.
16.0.0.0b1¶
New Features¶
Capping the default value for the variable
swift_proxy_server_workers
to 16 when the user doesn’t configure this variable and if the swift proxy is in a container. Default value is half the number of vCPUs available on the machine if the swift proxy is not in a container. Default value is half the number of vCPUs available on the machine with a capping value of 16 if the proxy is in a container.
Swift container-sync has been updated to use
internal-client
. This means a new configuration fileinternal-client.conf
has been added. Configuration can be overridden using the variableswift_internal_client_conf_overrides
.
Deprecation Notes¶
The
swift_keystone_auth_plugin
variable has been deprecated.swift_keystone_auth_type
should be used instead to configure authentication type.
15.0.0.0b2¶
New Features¶
When using the pypy python interpreter you can configure the garbage collection (gc) settings for pypy. Set the minimum GC value using the
swift_pypy_gc_min
variable. GC will only happen when the memory size is above this value. Set the maximum GC value using theswift_pypy_gc_max
variable. This is the maximum memory heap size for pypy. Both variables are not defined by default, and will only be used if the values are defined andswift_pypy_enabled
is set toTrue
.
Swift tempauth users now be specified. The
swift_tempauth_users
variable can be defined as a list of tempauth users, and their permissions. You will still need to specify the appropriate Swift middleware using theswift_middleware_list
variable, in order to utilise tempauth.
Swift
versioned_writes
middleware is added to the pipeline by default. Additionally theallow_versioned_writes
settings in the middleware configuration is set toTrue
. This follows the Swift defaults, and enables the use of theX-History-Location
metadata Header.
15.0.0.0b1¶
New Features¶
CentOS7/RHEL support has been added to the os_swift role.
The
swift_rsync_reverse_lookup
option has been added. This setting will handle whether rsync performs reverse lookups on client IP addresses, and will default toFalse
. We recommend leaving this option atFalse
, unless DNS or host entries exist for each swift host’s replication address.
Upgrade Notes¶
The variables
swift_requirements_git_repo
andswift_requirements_git_install_branch
have been removed in favour of using the URL/path to the upper-constraints file using the variablepip_install_upper_constraints
instead.
The default behaviour of rsync, to perform reverse lookups, has been changed to
False
. This can be set toTrue
by setting theswift_rsync_reverse_lookup
variable toTrue
.
14.0.0.0rc1¶
New Features¶
The
openstack-ansible-os_swift
role will now prevent deployers from changing theswift_hash_path_prefix
andswift_hash_path_suffix
variables on clusters that already have a value set in/etc/swift/swift.conf
. You can set the newswift_force_change_hashes
variable toTrue
to force theswift_hash_path_
variables to be changed. We recommend setting this by running the os-swift.yml playbook with-e swift_force_change_hashes=True
, to avoid changing theswift_hash_path_
variables unintentionally. Use with caution, changing theswift_hash_path_
values causes end-user impact.
Change the port for devices in the ring by adjusting the port value for services, hosts, or devices. This will not involve a rebalance of the ring.
Changing the port for a device, or group of devices, carries a brief period of downtime to the swift storage services for those devices. The devices will be unavailable during period between when the storage service restarts after the port update, and the ring updates to match the new port.
Upgrade Notes¶
The variable
swift_apt_packages
has been renamed toswift_distro_packages
.
14.0.0.0b3¶
New Features¶
The os_swift 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
swift_package_state
topresent
.
The os_swift role now allows the permissions for the log files created by the swift account, container and object servers to be set. The variable is
swift_syslog_log_perms
and is set to0644
by default.
Upgrade Notes¶
The os_swift 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
swift_package_state
should be set topresent
.
14.0.0.0b2¶
New Features¶
The
os_swift
role has 3 new variables that will allow a deployer to change the hard, soft and fs.file-max limits. the hard and soft limits are being added to the limits.conf file for the swift system user. The fs.file-max settings are added to storage hosts via kernel tuning. The new options areswift_hard_open_file_limits
with a default of 10240swift_soft_open_file_limits
with a default of 4096swift_max_file_limits
with a default of 24 times the value ofswift_hard_open_file_limits
.
The
pretend_min_part_hours_passed
option can now be passed to swift-ring-builder prior to performing a rebalance. This is set by theswift_pretend_min_part_hours_passed
boolean variable. The default for this variable is False. We recommend setting this by running the os-swift.yml playbook with-e swift_pretend_min_part_hours_passed=True
, to avoid resettingmin_part_hours
unintentionally on every run. Settingswift_pretend_min_part_hours_passed
to True will reset the clock on the last time a rebalance happened, thus circumventing the min_part_hours check. This should only be used with extreme caution. If you run this command and deploy rebalanced rings before a replication pass completes, you may introduce unavailability in your cluster. This has an end-user imapct.
Upgrade Notes¶
Installation of swift and its dependent pip packages will now only occur within a Python virtual environment. The
swift_venv_enabled
,swift_venv_bin
variables have been removed.
Bug Fixes¶
Previously, the
ansible_managed
var was being used to insert a header into theswift.conf
that contained date/time information. This meant that swift.conf across different nodes did not have the same MD5SUM, causingswift-recon --md5
to break. We now insert a piece of static text instead to resolve this issue.
14.0.0.0b1¶
New Features¶
The
fallocate_reserve` option can now be set (in bytes or as a percentage) for swift by using the ``swift_fallocate_reserve
variable in/etc/openstack_deploy/user_variables.yml
. This value is the amount of space to reserve on a disk to prevent a situation where swift is unable to remove objects due to a lack of available disk space to work with. The default value is 1% of the total disk size.
While default python interpreter for swift is cpython, pypy is now an option. This change adds the ability to greatly improve swift performance without the core code modifications. These changes have been implemented using the documentation provided by Intel and Swiftstack. Notes about the performance increase can be seen here.
Enable rsync module per object server drive by setting the
swift_rsync_module_per_drive
setting toTrue
. Set this to configure rsync and swift to utilise individual configuration per drive. This is required when disabling rsyncs to individual disks. For example, in a disk full scenario.
The
os_swift
role will now include the swift “staticweb” middleware by default.
Upgrade Notes¶
The
swift_fallocate_reserve
default value has changed from 10737418240 (10GB) to 1% in order to match the OpenStack swift default setting.
A new option swift_pypy_enabled has been added to enable or disable the pypy interpreter for swift. The default is “false”.
A new option swift_pypy_archive has been added to allow a pre-built pypy archive to be downloaded and moved into place to support swift running under pypy. This option is a dictionary and contains the URL and SHA256 as keys.
The
swift_max_rsync_connections
default value has changed from 2 to 4 in order to match the OpenStack swift documented value.
When upgrading a Swift deployment from Mitaka to Newton it should be noted that the enabled middleware list has changed. In Newton the “staticweb” middleware will be loaded by default. While the change adds a feature it is non-disruptive in upgrades.
Bug Fixes¶
The XFS filesystem is excluded from the daily mlocate crond job in order to conserve disk IO for large IOPS bursts due to updatedb/mlocate file indexing.