From cd222e8cff2dafe6f6ae5d67f95b5ed35e246e41 Mon Sep 17 00:00:00 2001 From: Andy McCrae Date: Wed, 19 Oct 2016 18:12:28 +0100 Subject: [PATCH] Add object-reconstructor for swift EC Swift Erasure Coding requires the object-reconstructor to be running, this PR adds the object-reconstructor configuration and systemd/upstart file. Additionally, this PR adds testing for an erasure-coding policy as well as for multiple policies in 1 deployment. Change-Id: I71fe3d77e93112b9d27c93b37b59e6242cb3e00e Closes-Bug: #1634859 --- defaults/main.yml | 4 +++ templates/object-server-replicator.conf.j2 | 5 ++++ templates/object-server.conf.j2 | 5 ++++ tests/os_swift-overrides.yml | 29 ++++++++++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/defaults/main.yml b/defaults/main.yml index be47d7e5..9a4eda70 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -365,6 +365,10 @@ swift_services: group: swift_obj program_name: "swift-object-expirer" program_config_options: "/etc/swift/object-server/object-expirer.conf" + swift-object-reconstructor: + group: swift_obj + program_name: "swift-object-reconstructor" + program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/object-server/object-server-replicator.conf', '/etc/swift/object-server/object-server.conf') }}" swift-proxy-server: group: swift_proxy program_name: "swift-proxy-server" diff --git a/templates/object-server-replicator.conf.j2 b/templates/object-server-replicator.conf.j2 index 589e913c..6873c46b 100644 --- a/templates/object-server-replicator.conf.j2 +++ b/templates/object-server-replicator.conf.j2 @@ -30,3 +30,8 @@ rsync_module = {replication_ip}::object_{device} [object-auditor] log_facility = LOG_LOCAL4 + +[object-reconstructor] +log_facility = LOG_LOCAL4 +concurrency = 6 +reclaim_age = {{ reclaim_age | default(604800) }} diff --git a/templates/object-server.conf.j2 b/templates/object-server.conf.j2 index 34e8e36b..f9ece71d 100644 --- a/templates/object-server.conf.j2 +++ b/templates/object-server.conf.j2 @@ -47,6 +47,11 @@ rsync_module = {replication_ip}::object_{device} [object-auditor] log_facility = LOG_LOCAL4 + +[object-reconstructor] +log_facility = LOG_LOCAL4 +concurrency = 6 +reclaim_age = {{ reclaim_age | default(604800) }} {% endif %} [object-updater] diff --git a/tests/os_swift-overrides.yml b/tests/os_swift-overrides.yml index 70abc8e1..c60e4b8b 100644 --- a/tests/os_swift-overrides.yml +++ b/tests/os_swift-overrides.yml @@ -20,3 +20,32 @@ bridges: ip_addr: "10.1.2.1" - name: "br-repl" ip_addr: "10.1.3.1" + +swift: + storage_network: "{{ test_swift_storage_network | default('eth2') }}" + replication_network: "{{ test_swift_repl_network | default('eth3') }}" + part_power: 8 + repl_number: "{{ test_swift_repl_number | default(3) }}" + region: "{{ test_swift_region | default(1) }}" + groups: + - account + - container + - gold + - ec-tests + drives: + - name: swift1 + - name: swift2 + mount_point: /openstack + storage_policies: + - policy: + name: gold + index: 0 + default: True + - policy: + name: ec-tests + index: 1 + policy_type: erasure_coding + ec_type: liberasurecode_rs_vand + ec_num_data_fragments: 3 + ec_num_parity_fragments: 2 + ec_object_segment_size: 1048576