Skip to content
Stefan Prodan edited this page Nov 11, 2015 · 7 revisions

OpenStack Swift standalone setup guide

Concepts

General configuration

Proxy node configuration

Storage node configuration

Testing configuration

Adding a new proxy node

Adding a new storage node

Achieve high availability and scalability with OpenStack Swift and SwiftClient

OpenStack Swift is an eventually consistent storage system designed to scale horizontally without any single point of failure. All objects are stored with multiple copies and are replicated across zones and regions making Swift withstand failures in storage and network hardware. Swift can be used as a stand-alone distributed storage system on top of Linux without the need of expensive hardware solutions like NAS or SAN. Because data is stored and served directly over HTTP makes Swift the ideal solution when dealing with applications running in Docker containers.

Lets assume you have an ASP.NET 5 MVC app that needs to manage documents, photos and video files uploaded by users. To achieve HA and scalability of your application you can host the app inside a container and lunch a minimum of two container with a load balancer in front. Now days this can be easily done with Docker and Nginx on Ubuntu Server. The same architecture can be applied to the storage with Swift, you'll need to set-up a minimum of two swift server each containing a proxy and a storage node, ideally these servers or VMs should be hosted in a different region/datacenter. Adding both swift proxy endpoints to SwfitClient config will ensure that any app instance will share the same storage and if a swift node becomes unreachable due to a restart or network failure all app instances will silently fail-over to the 2ed node.

Below is a schematic view of our HA setup:

Cluster