Browse Source

Merge "Add spec for Multisite Ceph RADOS Gateway"

changes/06/627506/1
Zuul 5 months ago
parent
commit
e4f93b041e
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