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
=== modified file 'doc/source/howto_installmultinode.rst'
--- doc/source/howto_installmultinode.rst 2010-11-04 19:25:23 +0000
+++ doc/source/howto_installmultinode.rst 2010-11-24 16:58:16 +0000
@@ -48,6 +48,8 @@
48power, even geography). The ring guarantees that every replica is stored48power, even geography). The ring guarantees that every replica is stored
49in a separate zone. For more information about the ring and zones, see: :doc:`The Rings <overview_ring>`.49in a separate zone. For more information about the ring and zones, see: :doc:`The Rings <overview_ring>`.
5050
51To increase reliability, you may want to add additional Proxy servers for performance which is described in :ref:`add-proxy-server`.
52
51Network Setup Notes53Network Setup Notes
52-------------------54-------------------
5355
@@ -81,6 +83,7 @@
81 used as a salt when hashing to determine mappings in the ring. This83 used as a salt when hashing to determine mappings in the ring. This
82 file should be the same on every node in the cluster!84 file should be the same on every node in the cluster!
8385
86.. _config-proxy:
8487
85Configure the Proxy node88Configure the Proxy node
86------------------------89------------------------
@@ -349,10 +352,12 @@
349 swift-init account-replicator start352 swift-init account-replicator start
350 swift-init account-auditor start353 swift-init account-auditor start
351354
352Create Swift admin account and test (run commands from Auth node)355Create Swift admin account and test
353-----------------------------------------------------------------356-----------------------------------
354357
355#. Create a user with administrative priviledges (account = system,358You run these commands from the Auth node.
359
360#. Create a user with administrative privileges (account = system,
356 username = root, password = testpass). Make sure to replace 361 username = root, password = testpass). Make sure to replace
357 ``devauth`` with whatever super_admin key you assigned in the 362 ``devauth`` with whatever super_admin key you assigned in the
358 auth-server.conf file above. *Note: None of the values of 363 auth-server.conf file above. *Note: None of the values of
@@ -381,6 +386,37 @@
381386
382 st -A https://<AUTH_HOSTNAME>:11000/v1.0 -U system:root -K testpass download myfiles387 st -A https://<AUTH_HOSTNAME>:11000/v1.0 -U system:root -K testpass download myfiles
383388
389.. _add-proxy-server:
390
391Adding a Proxy Server
392---------------------
393
394For 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.
395
396Once 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.
397
398See :ref:`config-proxy` for the initial setup, and then follow these additional steps.
399
400#. 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.::
401
402 [filter:cache]
403 use = egg:swift#memcache
404 memcache_servers = <PROXY_LOCAL_NET_IP>:11211
405
406#. 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::
407
408 [app:auth-server]
409 use = egg:swift#auth
410 default_cluster_url = https://<LOAD_BALANCER_HOSTNAME>/v1
411 # Highly recommended to change this key to something else!
412 super_admin_key = devauth
413
414#. 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.
415
416#. 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.
417
418#. 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.
419
384Troubleshooting Notes420Troubleshooting Notes
385---------------------421---------------------
386If you see problems, look in var/log/syslog (or messages on some distros). 422If you see problems, look in var/log/syslog (or messages on some distros).