Configuring OpenStack Object Storage
Adding an Additional Proxy Server
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.
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.
See Configure the Proxy node for the initial
setup, and then follow these additional
steps.
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.:
[filter:cache]
use = egg:swift#memcache
memcache_servers = <PROXY_LOCAL_NET_IP>:11211
Change the default_cluster_url
to point to the load balanced url,
rather than the first proxy server
you created in
/etc/swift/proxy-server.conf:
[app:auth-server]
use = egg:swift#auth
default_cluster_url = https://<LOAD_BALANCER_HOSTNAME>/v1
# Highly recommended to change this key to something else!
super_admin_key = devauth
After you change the
default_cluster_url setting, you
have to delete the auth database
and recreate the OpenStack Object
Storage users, or manually update
the auth database with the correct
URL for each account.
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.
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.
Troubleshooting Notes
If you see problems, look in var/log/syslog (or
messages on some distros).
Also, at Rackspace we have seen hints at drive
failures by looking at error messages in
/var/log/kern.log.