53027de8c8
This PR sets up rsync module per drive for swift object servers. This improves resource distribution, and also allows us to utilise rsync module changes to prevent disk writes to specific drives when they begin filling up. Enable this option by setting "swift_rsync_module_per_drive: True", this will still default to False to match upstream defaults. Additionally the rsync max connections has been increased to match upstream defaults. Additionally we include rsync.d/*.conf files by default and set this directory up, so that we can add individual configuration to disable specific drives. Change-Id: I2019cade5bf5f2878497d30ce738dff07786fa64
29 lines
874 B
Django/Jinja
29 lines
874 B
Django/Jinja
# {{ ansible_managed }}
|
|
|
|
{% set _api_threads = ansible_processor_vcpus|default(2) // 2 %}
|
|
{% set api_threads = _api_threads if _api_threads > 0 else 1 %}
|
|
|
|
[DEFAULT]
|
|
{% set repl_bridge = 'ansible_' + swift.replication_network|replace('-', '_') %}
|
|
bind_ip = {{ hostvars[inventory_hostname][repl_bridge]['ipv4']['address'] }}
|
|
bind_port = {{ swift_object_port }}
|
|
devices = {{ swift_vars.mount_point | default(swift.mount_point) }}
|
|
workers = {{ swift_object_replicator_workers | default(api_threads) }}
|
|
log_facility = LOG_LOCAL4
|
|
{% include "statsd.j2" %}
|
|
|
|
[pipeline:main]
|
|
pipeline = object-server
|
|
|
|
[app:object-server]
|
|
use = egg:swift#object
|
|
replication_server = True
|
|
|
|
[object-replicator]
|
|
log_facility = LOG_LOCAL4
|
|
concurrency = 6
|
|
reclaim_age = {{ reclaim_age | default(604800) }}
|
|
{% if swift_rsync_module_per_drive %}
|
|
rsync_module = {replication_ip}::object_{device}
|
|
{% endif %}
|