Because Swift is a distributed system that is controlled by software, does not rely on RAID, and writes multiple copies of each object (file), operating a Swift cluster is fundamentally different from operating traditional storage systems such as storage area networks (SAN) or using network-attached storage (NAS) equipment.
We consider, a zone as a group of nodes that is as isolated as possible from other nodes (separate servers, network, power, even geography). A Swift ring functions like a cereal box decoder ring, allowing the swift services to locate each objects. The ring guarantees that every replica is stored in a separate zone. To increase capacity in our environment, we can add an extra zone, to which data will then replicate. In this example, we will add an extra storage node with IP 172.16.0.212, with its second disk, /dev/sdb, used for our OpenStack with IP 172.16.0.212 Storage. This node makes up the only node in this zone.
To add additional capacity to existing zones, we repeat the instructions for each existing zone in our cluster. For example, the following steps assume zone 5 (z5) does not exist, so this gets created when we build the rings. To simply add additional capacity to existing zones, we specify the new servers in the existing zones (zones 1-4). The instructions remain the same throughout.
Log in to the OpenStack Object storage Proxy Server node as well as a new storage node (that will form the basis of our new zone).
To add an extra zone to our OpenStack Object Storage cluster, carry out the following steps:
Prepare the storage on this node, as described in the section Preparing Drives FOR Openstack Object Storage.
How it works…
Adding extra capacity by adding additional nodes or zones is done in the following two steps:
* Configuring the zones and nodes on the proxy server
* Configuring the storage node(s)
For each storage node and the devices on those storage nodes, we run the following command, which adds the storage node and device to our new zone:
Once this has been configured on our proxy node, we rebalance the rings. This updates the object, account, and container rings. We copy the updated gzipped files as well as the swift hash key used within our environment, to all our storage node(s).
On the storage node, we simply run through the following steps:
* Configure the disk (partition and format with XFS)
* Configure and start rsyncd
* Configure the account, container, and object services
* Start the OpenStack Object Storage services on the storage node(s)
Data is then redistributed within our OpenStack Object Storage environment onto this new zone’s node.
Openstack Interview Questions
Get Updates on Tech posts, Interview & Certification questions and training schedules