Prerequisites and Network setup
- Each machine should have 2NICs. one for public network & one for storage/management network.
- 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
Identity Services Installation
Please use the below link to install the Openstack Identity Service (Keystone) http://docs.openstack.org/havana/install-guide/install/apt/content/keystone-install.html
Keystone provides the following functions:
- User management. Tracks users and their permissions.
- Service catalog. Provides a catalog of available services with their API endpoints.
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)
Object Storage Installation
The Object Storage service is a highly scalable and durable multi-tenant object storage system for large amounts of unstructured data at low cost through a RESTful HTTP API.
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
- Before begin the 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)
Customized HAproxy Installation for Swift
HAproxy is a best solution for Load balancing and high availability for HTTP based applications. We have customized the HAproxy configuration to work for our standalone swift setup. Please refer the HAproxy setup in this link (http://docs.openstack.org/high-availability-guide/content/ha-aa-haproxy.html)
We have also configured KeepAlived to make sure the HAproxy service gets the VIP based on the priority assigned.
Advantages of the HAproxy and KeepAlived are :
- Failure of a component does not lead to failure of new requests
- Surviving application service failures
- Scaling and Redundancy
- Efficiently collects the metering data about the storage containers, objects, incoming and outgoing data.
- Collects data by monitoring notifications sent from services or by polling the infrastructure.
- It uses a separate database to store the values due to high utilization.
Please refer the below link to install ceilometer. (http://docs.openstack.org/havana/install-guide/install/apt/content/ceilometer-install.html)
Please 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, you have to verify the meter-list (http://docs.openstack.org/havana/install-guide/install/apt/content/ceilometer-verify.html)
Customized Dashboard for Standalone Swift
The OpenStack dashboard, also known as Horizon, is a Web interface that enables cloud administrators and users to manage various OpenStack resources and services. Since you cannot use dashboard, when you install only the Object Storage and Identity Service, we have customized the setup by configuring Nova-api to make it work with the standalone swift setup.
Install openstack dashboard (http://docs.openstack.org/havana/install-guide/install/apt/content/install_dashboard.html)
We have customized the panels and quotas to align for standalone swift. We have also included the additional feature of temp_url generation from the dashboard itself.
Every object will have Generate URL option.
You can set the TempURL expiry time in seconds and enter the Temp-URL-Key which should be predefined in the CLI using the below command for every tenant.
$ swift post -m “Temp-URL-Key: MYKEY”
Finally, it generates a Temp_URL which is accessible from public internet without any authentication.
Testing the setup
We have completed the Sanity Testing, Replication Testing, Load balance testing and storage testing.