Merge lp:~annegentle/swift/docup into lp:~hudson-openstack/swift/trunk

Proposed by Anne Gentle
Status: Merged
Approved by: gholt
Approved revision: 134
Merged at revision: 134
Proposed branch: lp:~annegentle/swift/docup
Merge into: lp:~hudson-openstack/swift/trunk
Diff against target: 75 lines (+40/-4)
1 file modified
doc/source/howto_installmultinode.rst (+40/-4)
To merge this branch: bzr merge lp:~annegentle/swift/docup
Reviewer Review Type Date Requested Status
gholt (community) Approve
Chuck Thier (community) Approve
Review via email: mp+41665@code.launchpad.net

Description of the change

Adding a section about adding proxy servers to the multi-node install. I used https://answers.launchpad.net/swift/+question/134585 as a reference point so I might not have enough detail in the section - feel free to offer suggested edits.

To post a comment you must log in.
Revision history for this message
Chuck Thier (cthier) wrote :

Thanks for digging into this! A couple of thoughts:

In the first section I would add reliability as a reason why you would have more than one proxy.

For the default cluster url we can probably drop the port since it is more likely that with a load balancer, they would be running it on the default port:

default_cluster_url = https://<LOAD_BALANCER_HOSTNAME>/v1

We also need to make note that if they change the default_cluster_url, that they will have to delete the auth db, and recreate their users, or manually update the auth db with the correct url for each account.

I would drop the paragraph about ways to distribute the rings, and instead just mention to make sure that the rings are copied to the new proxy. We do need this type of information in docs, but it should be somewhere else (and a bit more well covered).

lp:~annegentle/swift/docup updated
134. By Anne Gentle

Edits based on input

Revision history for this message
Chuck Thier (cthier) wrote :

looks pretty good to me know

review: Approve
Revision history for this message
gholt (gholt) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'doc/source/howto_installmultinode.rst'
2--- doc/source/howto_installmultinode.rst 2010-11-04 19:25:23 +0000
3+++ doc/source/howto_installmultinode.rst 2010-11-24 16:58:16 +0000
4@@ -48,6 +48,8 @@
5 power, even geography). The ring guarantees that every replica is stored
6 in a separate zone. For more information about the ring and zones, see: :doc:`The Rings <overview_ring>`.
7
8+To increase reliability, you may want to add additional Proxy servers for performance which is described in :ref:`add-proxy-server`.
9+
10 Network Setup Notes
11 -------------------
12
13@@ -81,6 +83,7 @@
14 used as a salt when hashing to determine mappings in the ring. This
15 file should be the same on every node in the cluster!
16
17+.. _config-proxy:
18
19 Configure the Proxy node
20 ------------------------
21@@ -349,10 +352,12 @@
22 swift-init account-replicator start
23 swift-init account-auditor start
24
25-Create Swift admin account and test (run commands from Auth node)
26------------------------------------------------------------------
27-
28-#. Create a user with administrative priviledges (account = system,
29+Create Swift admin account and test
30+-----------------------------------
31+
32+You run these commands from the Auth node.
33+
34+#. Create a user with administrative privileges (account = system,
35 username = root, password = testpass). Make sure to replace
36 ``devauth`` with whatever super_admin key you assigned in the
37 auth-server.conf file above. *Note: None of the values of
38@@ -381,6 +386,37 @@
39
40 st -A https://<AUTH_HOSTNAME>:11000/v1.0 -U system:root -K testpass download myfiles
41
42+.. _add-proxy-server:
43+
44+Adding a Proxy Server
45+---------------------
46+
47+For reliability's sake you may want to have more than one proxy server. You can set up the additional proxy node in the same manner that you set up the first proxy node but with additional configuration steps.
48+
49+Once you have more than two proxies, you also want to load balance between the two, which means your storage endpoint also changes. You can select from different strategies for load balancing. For example, you could use round robin dns, or an actual load balancer (like pound) in front of the two proxies, and point your storage url to the load balancer.
50+
51+See :ref:`config-proxy` for the initial setup, and then follow these additional steps.
52+
53+#. Update the list of memcache servers in /etc/swift/proxy-server.conf for all the added proxy servers. If you run multiple memcache servers, use this pattern for the multiple IP:port listings: `10.1.2.3:11211,10.1.2.4:11211` in each proxy server's conf file.::
54+
55+ [filter:cache]
56+ use = egg:swift#memcache
57+ memcache_servers = <PROXY_LOCAL_NET_IP>:11211
58+
59+#. Change the default_cluster_url to point to the load balanced url, rather than the first proxy server you created in /etc/swift/auth-server.conf::
60+
61+ [app:auth-server]
62+ use = egg:swift#auth
63+ default_cluster_url = https://<LOAD_BALANCER_HOSTNAME>/v1
64+ # Highly recommended to change this key to something else!
65+ super_admin_key = devauth
66+
67+#. After you change the default_cluster_url setting, you have to delete the auth database and recreate the Swift users, or manually update the auth database with the correct URL for each account.
68+
69+#. Next, copy all the ring information to all the nodes, including your new proxy nodes, and ensure the ring info gets to all the storage nodes as well.
70+
71+#. After you sync all the nodes, make sure the admin has the keys in /etc/swift and the ownership for the ring file is correct.
72+
73 Troubleshooting Notes
74 ---------------------
75 If you see problems, look in var/log/syslog (or messages on some distros).