Browse Source

Add spec for Multisite Ceph RADOS Gateway

Add specification for implementation of multisite replication
between Ceph RADOS Gateway deployments.

The primary intent of this feature is to support disaster recovery
capabilities between geographically distant data centers.

Change-Id: I15475f57e1931dcc3a6aefff9ed0192e11e02292
changes/84/616884/4
Dmitrii Shcherbakov 7 months ago
parent
commit
746876f818
1 changed files with 140 additions and 0 deletions
  1. 140
    0
      specs/stein/approved/radosgw-multi-site.rst

+ 140
- 0
specs/stein/approved/radosgw-multi-site.rst View File

@@ -0,0 +1,140 @@
1
+..
2
+  Copyright 2018 Canonical Ltd.
3
+
4
+  This work is licensed under a Creative Commons Attribution 3.0
5
+  Unported License.
6
+  http://creativecommons.org/licenses/by/3.0/legalcode
7
+
8
+..
9
+  This template should be in ReSTructured text. Please do not delete
10
+  any of the sections in this template.  If you have nothing to say
11
+  for a whole section, just write: "None". For help with syntax, see
12
+  http://sphinx-doc.org/rest.html To test out your formatting, see
13
+  http://www.tele3.cz/jbar/rest/rest.html
14
+
15
+====================================
16
+RadosGW Charm Multi-site Replication
17
+====================================
18
+
19
+Problem Description
20
+===================
21
+
22
+RadosGW `multi-site configuration <http://docs.ceph.com/docs/luminous/radosgw/multisite/>`__ can be set up to provide object sync for
23
+disaster recovery and other purposes such as using the same object data stored
24
+in a Ceph cluster local to a cloud region. A typical setup would look like
25
+this:
26
+
27
+* One zone per Zone Group (1 cluster per “region”);
28
+* Multiple Zone Groups (“regions”);
29
+* One Realm;
30
+* Mode of operation: active-active or active-passive.
31
+
32
+.. note::
33
+
34
+    Ceph does support active-passive configurations, but to simplify
35
+    deployment choice the charms will only support active-active.
36
+
37
+There could also be more complex configurations with multiple zones (clusters)
38
+per zone group.
39
+
40
+In order to set this up, independent radosgw application deployments in
41
+different Juju models have to be aware of each other and set up the
42
+necessary configuration:
43
+
44
+* Realm name for radosgw;
45
+* Master zone group and master zone configuration;
46
+* a system user for authentication between daemons;
47
+* Access key and secret key setup for master zone authentication;
48
+* A period needs to be updated after configuration changes to change an epoch.
49
+
50
+.. note::
51
+
52
+    Migration of an existing single site ceph-radosgw deployment to a
53
+    multi-zone deployment will not be supported by the charms.
54
+
55
+Proposed Change
56
+===============
57
+
58
+To be able to configure multi-site radosgw deployments it is necessary to
59
+modify the radosgw charm to support cross-model relations between multiple
60
+radosgw applications.  This relation will be used to exchange endpoint and
61
+authentication information between the RADOS gateway deployment for
62
+configuration of replication.
63
+
64
+The charms will target a fix topology with a single realm and zone group
65
+and two zones.  Its assumed that zones will be supported by separate
66
+Ceph clusters but this is not a hard requirement (but is recommended).
67
+
68
+Actions will be provided to promote and demote a RADOS gateway cluster
69
+to and from master status. No automatic failover will be provided and
70
+these operations must be performed by an operator in the event of site
71
+failover/failback.
72
+
73
+Alternatives
74
+------------
75
+
76
+As this is a RADOS gateway specific feature, no alternatives have been
77
+considered.
78
+
79
+Implementation
80
+==============
81
+
82
+Assignee(s)
83
+-----------
84
+
85
+Primary assignee:
86
+
87
+Gerrit Topic
88
+------------
89
+
90
+Use Gerrit topic "radosgw-multi-site" for all patches related to this spec.
91
+
92
+.. code-block:: bash
93
+
94
+    git-review -t radosgw-multi-site
95
+
96
+Work Items
97
+----------
98
+
99
+* Implement support for new (cross-model) relation 'rgw-peer' between radosgw
100
+  applications associated with different Ceph clusters.
101
+* Add support for additional configuration keys to set up realm, zonegroup and
102
+  zone for each ceph-radosgw deployment.
103
+* Implement functionality to set up a master zone and add secondary zones to
104
+  it.
105
+* Write unit tests for newly added features.
106
+* Write functional tests that include the deployment of multiple clusters and
107
+  verification of object synchronization.
108
+
109
+Repositories
110
+------------
111
+
112
+No new git repositories will be created.
113
+
114
+Documentation
115
+-------------
116
+
117
+The ``radosgw`` charm README should contain instructions on deploying the
118
+charm with new functionality enabled.
119
+
120
+Security
121
+--------
122
+
123
+- TLS termination can be enabled on any side and needs to be supported without
124
+  manual steps of synchronizing CA certificates between sites.  SSL CA certs
125
+  will be shared between RADOS peers using the new rgw-peer relation.
126
+
127
+Testing
128
+-------
129
+
130
+Code written or changed will be covered by unit tests; functional testing will
131
+be done using ``Zaza``.
132
+
133
+Dependencies
134
+============
135
+
136
+The ceph-radosgw charm currently uses the old-style radosgw systemd unit and
137
+a global cephx key for access to the underlying Ceph cluster.
138
+
139
+The charm should be migrated to use the new ceph-radosgw systemd units and
140
+switch to use of cephx keys which are specific to individual radosgw units.

Loading…
Cancel
Save