Object Storage as a Service using Openstack Swift (Stand alone)
The following Openstack projects are required for providing Object Storage as a service
- Keystone for indentify service
- Swift for Object storage
- Ceilometer for metering
- Horizon for dashboard
- Commodity hardware
- Each Server should have 2NICs. one for public network & one for storage/management network.
- Hardware RAID is not required for storage drives.
It includes the following components:
- Proxy servers (swift-proxy-server). Accepts Object Storage API and raw HTTP requests to upload files, modify metadata, and create containers. It also serves file or container listings to web browsers. To improve performance, the proxy server can use an optional cache usually deployed with memcache.
- Account servers (swift-account-server). Manage accounts defined with the Object Storage service.
- Container servers (swift-container-server). Manage a mapping of containers, or folders, within the Object Storage service.
- Object servers (swift-object-server). Manage actual objects, such as files, on the storage nodes.
- A number of periodic processes. Performs housekeeping tasks on the large data store. The replication services ensure consistency and availability through the cluster. Other periodic processes include auditors, updaters, and reapers.
- Configurable WSGI middleware that handles authentication. Usually the Identity Service.
Swift high Level Architecture
Swift hardware Reference Architecture
Openstack Swift Installation
- Install NTP (http://docs.openstack.org/havana/install-guide/install/apt/content/basics-ntp.html)
- Setup MySQL database (http://docs.openstack.org/havana/install-guide/install/apt/content/basics-database-controller.html)
- Install Openstack packages (http://docs.openstack.org/havana/install-guide/install/apt/content/basics-packages.html)
- Install Messaging Server (http://docs.openstack.org/havana/install-guide/install/apt/content/basics-queue.html)
- Install Openstack Keystone http://docs.openstack.org/havana/install-guide/install/apt/content/keystone-install.html
- Define Users, Tenants and Roles (http://docs.openstack.org/havana/install-guide/install/apt/content/keystone-users.html)
- Define Service and API endpoints (http://docs.openstack.org/havana/install-guide/install/apt/content/keystone-services.html)
- Verify the installation (http://docs.openstack.org/havana/install-guide/install/apt/content/keystone-verify.html)
- Before begin the Object Storage installation, create user and endpoint list in the Keystone http://docs.openstack.org/havana/install-guide/install/apt/content/general-installation-steps-swift.html
- Install and configure the storage nodes (http://docs.openstack.org/havana/install-guide/install/apt/content/installing-and-configuring-storage-nodes.html
- Install and configure the proxy node (http://docs.openstack.org/havana/install-guide/install/apt/content/installing-and-configuring-the-proxy-node.html)
- Start all the services of swift (http://docs.openstack.org/havana/install-guide/install/apt/content/start-storage-node-services.html
- After successful start of services, verify the installation of object storage setup (http://docs.openstack.org/havana/install-guide/install/apt/content/verify-object-storage-installation.html)
- If you want to add more proxy servers for the swift storage to make redundancy, you have to add load balance them. Use the below link for more configurations of multi swift proxy server (http://docs.openstack.org/havana/install-guide/install/apt/content/adding-proxy-server.html)
- HAproxy is used for Load balancing and providing high availability for HTTP based applications. Install HAproxy setup as per this link http://docs.openstack.org/high-availability-guide/content/ha-aa-haproxy.html
- KeepAlived needs to be configured to make sure HAproxy service gets the VIP based on the priority assigned.
The combination of HAproxy and KeepAlived provides the following advantages,
- Failure of a component does not lead to failure of new requests
- Surviving application service failures
- Scaling and Redundancy
Ceilometer efficiently collects the metering data about the storage containers, objects, incoming and outgoing data. It provides data by monitoring notifications sent from services or by polling the infrastructure and it uses a separate database to store the values due to high utilization.
- Install ceilometer by following link http://docs.openstack.org/havana/install-guide/install/apt/content/ceilometer-install.html
- Follow the below link to make it work for Object Storage (Swift) (http://docs.openstack.org/havana/install-guide/install/apt/content/ceilometer-install-swift.html)
- Once all set, verify the meter-list (http://docs.openstack.org/havana/install-guide/install/apt/content/ceilometer-verify.html)
The Openstack dashboard, also known as Horizon, is a Web interface that enables cloud administrators and users to manage various Openstack resources and services but this required Nova as a mandatory component to work. We have done the following changes to the Openstack Horizon code to work in Standalone Swift setup
- Decouple Horizon from the mandatory component Nova so that it can manage just Swift functions to provide Object storage as a service solution
- Swift access URL generation – Additional features into Horizon
- Install customized Openstack dashboard from source hosted in below GitHub url http://docs.openstack.org/havana/install-guide/install/apt/content/install_dashboard.html
- Refer Openstack dashboard developer documentation to install it from source and integrate it with apache