Remove DocBook XML files for Install Guide
Remove DocBook XML files and rename directory from install-guide-rst to install-guide. Adjust everything so that publishing works. Update README to remove DocBook XML Install Guide specific instructions. Implements: blueprint installguide-liberty Change-Id: If723c44c3c0383dc8ab8e53798d82e7f0ee2cc57
This commit is contained in:
259
doc/install-guide/source/swift-initial-rings.rst
Normal file
259
doc/install-guide/source/swift-initial-rings.rst
Normal file
@@ -0,0 +1,259 @@
|
||||
====================
|
||||
Create initial rings
|
||||
====================
|
||||
|
||||
Before starting the Object Storage services, you must create the initial
|
||||
account, container, and object rings. The ring builder creates configuration
|
||||
files that each node uses to determine and deploy the storage architecture.
|
||||
For simplicity, this guide uses one region and zone with 2^10 (1024) maximum
|
||||
partitions, 3 replicas of each object, and 1 hour minimum time between moving
|
||||
a partition more than once. For Object Storage, a partition indicates a
|
||||
directory on a storage device rather than a conventional partition table.
|
||||
For more information, see the
|
||||
`Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>`__.
|
||||
|
||||
Account ring
|
||||
~~~~~~~~~~~~
|
||||
|
||||
The account server uses the account ring to maintain lists of containers.
|
||||
|
||||
To create the ring perform the following steps on the controller node.
|
||||
|
||||
#. Change to the :file:`/etc/swift` directory.
|
||||
|
||||
#. Create the base :file:`account.builder` file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder account.builder create 10 3 1
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
#. Add each storage node to the ring:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder account.builder \
|
||||
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6002 \
|
||||
--device DEVICE_NAME --weight DEVICE_WEIGHT
|
||||
|
||||
Replace ``STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address
|
||||
of the management network on the storage node. Replace ``DEVICE_NAME`` with a
|
||||
storage device name on the same storage node. For example, using the first
|
||||
storage node in :doc:`swift-storage-node` with the :file:`/dev/sdb1` storage
|
||||
device and weight of 100:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder account.builder add \
|
||||
--region 1 --zone 1 --ip 10.0.0.51 --port 6002 --device sdb1 --weight 100
|
||||
|
||||
Repeat this command for each storage device on each storage node. In the
|
||||
example architecture, use the command in four variations:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder account.builder add \
|
||||
--region 1 --zone 1 --ip 10.0.0.51 --port 6002 --device sdb1 --weight 100
|
||||
Device d0r1z1-10.0.0.51:6002R10.0.0.51:6002/sdb1_"" with 100.0 weight got id 0
|
||||
# swift-ring-builder account.builder add \
|
||||
--region 1 --zone 2 --ip 10.0.0.51 --port 6002 --device sdc1 --weight 100
|
||||
Device d1r1z2-10.0.0.51:6002R10.0.0.51:6002/sdc1_"" with 100.0 weight got id 1
|
||||
# swift-ring-builder account.builder add \
|
||||
--region 1 --zone 3 --ip 10.0.0.52 --port 6002 --device sdb1 --weight 100
|
||||
Device d2r1z3-10.0.0.52:6002R10.0.0.52:6002/sdb1_"" with 100.0 weight got id 2
|
||||
# swift-ring-builder account.builder add \
|
||||
--region 1 --zone 4 --ip 10.0.0.52 --port 6002 --device sdc1 --weight 100
|
||||
Device d3r1z4-10.0.0.52:6002R10.0.0.52:6002/sdc1_"" with 100.0 weight got id 3
|
||||
|
||||
#. Verify the ring contents:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder account.builder
|
||||
account.builder, build version 4
|
||||
1024 partitions, 3.000000 replicas, 1 regions, 4 zones, 4 devices, 100.00 balance, 0.00 dispersion
|
||||
The minimum number of hours before a partition can be reassigned is 1
|
||||
The overload factor is 0.00% (0.000000)
|
||||
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
|
||||
0 1 1 10.0.0.51 6002 10.0.0.51 6002 sdb1 100.00 0 -100.00
|
||||
1 1 2 10.0.0.51 6002 10.0.0.51 6002 sdc1 100.00 0 -100.00
|
||||
2 1 3 10.0.0.52 6002 10.0.0.52 6002 sdb1 100.00 0 -100.00
|
||||
3 1 4 10.0.0.52 6002 10.0.0.52 6002 sdc1 100.00 0 -100.00</computeroutput></screen>
|
||||
|
||||
#. Rebalance the ring:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder account.builder rebalance
|
||||
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
|
||||
|
||||
|
|
||||
|
||||
Container ring
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The container server uses the container ring to maintain lists of objects.
|
||||
However, it does not track object locations.
|
||||
|
||||
To create the ring perform the following steps on the controller node.
|
||||
|
||||
#. Change to the :file:`/etc/swift` directory.
|
||||
|
||||
#. Create the base :file:`container.builder` file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder container.builder create 10 3 1
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
#. Add each storage node to the ring:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder container.builder \
|
||||
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6001 \
|
||||
--device DEVICE_NAME --weight DEVICE_WEIGHT
|
||||
|
||||
Replace ``STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address
|
||||
of the management network on the storage node. Replace ``DEVICE_NAME`` with a
|
||||
storage device name on the same storage node. For example, using the first
|
||||
storage node in :doc:`swift-storage-node` with the :file:`/dev/sdb1`
|
||||
storage device and weight of 100:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder container.builder add \
|
||||
--region 1 --zone 1 --ip 10.0.0.51 --port 6001 --device sdb1 --weight 100
|
||||
|
||||
Repeat this command for each storage device on each storage node. In the
|
||||
example architecture, use the command in four variations:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder container.builder add \
|
||||
--region 1 --zone 1 --ip 10.0.0.51 --port 6001 --device sdb1 --weight 100
|
||||
Device d0r1z1-10.0.0.51:6001R10.0.0.51:6001/sdb1_"" with 100.0 weight got id 0
|
||||
# swift-ring-builder container.builder add \
|
||||
--region 1 --zone 2 --ip 10.0.0.51 --port 6001 --device sdc1 --weight 100
|
||||
Device d1r1z2-10.0.0.51:6001R10.0.0.51:6001/sdc1_"" with 100.0 weight got id 1
|
||||
# swift-ring-builder container.builder add \
|
||||
--region 1 --zone 3 --ip 10.0.0.52 --port 6001 --device sdb1 --weight 100
|
||||
Device d2r1z3-10.0.0.52:6001R10.0.0.52:6001/sdb1_"" with 100.0 weight got id 2
|
||||
# swift-ring-builder container.builder add \
|
||||
--region 1 --zone 4 --ip 10.0.0.52 --port 6001 --device sdc1 --weight 100
|
||||
Device d3r1z4-10.0.0.52:6001R10.0.0.52:6001/sdc1_"" with 100.0 weight got id 3
|
||||
|
||||
#. Verify the ring contents:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder container.builder
|
||||
container.builder, build version 4
|
||||
1024 partitions, 3.000000 replicas, 1 regions, 4 zones, 4 devices, 100.00 balance, 0.00 dispersion
|
||||
The minimum number of hours before a partition can be reassigned is 1
|
||||
The overload factor is 0.00% (0.000000)
|
||||
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
|
||||
0 1 1 10.0.0.51 6001 10.0.0.51 6001 sdb1 100.00 0 -100.00
|
||||
1 1 2 10.0.0.51 6001 10.0.0.51 6001 sdc1 100.00 0 -100.00
|
||||
2 1 3 10.0.0.52 6001 10.0.0.52 6001 sdb1 100.00 0 -100.00
|
||||
3 1 4 10.0.0.52 6001 10.0.0.52 6001 sdc1 100.00 0 -100.00
|
||||
|
||||
#. Rebalance the ring:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder container.builder rebalance
|
||||
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
|
||||
|
||||
Object ring
|
||||
~~~~~~~~~~~
|
||||
|
||||
The object server uses the object ring to maintain lists of object locations
|
||||
on local devices.
|
||||
|
||||
To create the ring perform the following steps on the controller node.
|
||||
|
||||
#. Change to the :file:`/etc/swift` directory.
|
||||
|
||||
#. Create the base :file:`object.builder` file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder object.builder create 10 3 1
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
#. Add each storage node to the ring:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder object.builder \
|
||||
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6000 \
|
||||
--device DEVICE_NAME --weight DEVICE_WEIGHT
|
||||
|
||||
Replace ``STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address
|
||||
of the management network on the storage node. Replace ``DEVICE_NAME`` with
|
||||
a storage device name on the same storage node. For example, using the first
|
||||
storage node in :doc:`swift-storage-node` with the :file:`/dev/sdb1` storage
|
||||
device and weight of 100:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder object.builder add r1z1-10.0.0.51:6000/sdb1 100
|
||||
|
||||
Repeat this command for each storage device on each storage node. In the
|
||||
example architecture, use the command in four variations:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder object.builder add \
|
||||
--region 1 --zone 1 --ip 10.0.0.51 --port 6000 --device sdb1 --weight 100
|
||||
Device d0r1z1-10.0.0.51:6000R10.0.0.51:6000/sdb1_"" with 100.0 weight got id 0
|
||||
# swift-ring-builder object.builder add \
|
||||
--region 1 --zone 2 --ip 10.0.0.51 --port 6000 --device sdc1 --weight 100
|
||||
Device d1r1z2-10.0.0.51:6000R10.0.0.51:6000/sdc1_"" with 100.0 weight got id 1
|
||||
# swift-ring-builder object.builder add \
|
||||
--region 1 --zone 3 --ip 10.0.0.52 --port 6000 --device sdb1 --weight 100
|
||||
Device d2r1z3-10.0.0.52:6000R10.0.0.52:6000/sdb1_"" with 100.0 weight got id 2
|
||||
# swift-ring-builder object.builder add \
|
||||
--region 1 --zone 4 --ip 10.0.0.52 --port 6000 --device sdc1 --weight 100
|
||||
Device d3r1z4-10.0.0.52:6000R10.0.0.52:6000/sdc1_"" with 100.0 weight got id 3
|
||||
|
||||
#. Verify the ring contents:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder object.builder
|
||||
object.builder, build version 4
|
||||
1024 partitions, 3.000000 replicas, 1 regions, 4 zones, 4 devices, 100.00 balance, 0.00 dispersion
|
||||
The minimum number of hours before a partition can be reassigned is 1
|
||||
The overload factor is 0.00% (0.000000)
|
||||
Devices: id region zone ip address port replication ip replication port name weight partitions balance meta
|
||||
0 1 1 10.0.0.51 6000 10.0.0.51 6000 sdb1 100.00 0 -100.00
|
||||
1 1 2 10.0.0.51 6000 10.0.0.51 6000 sdc1 100.00 0 -100.00
|
||||
2 1 3 10.0.0.52 6000 10.0.0.52 6000 sdb1 100.00 0 -100.00
|
||||
3 1 4 10.0.0.52 6000 10.0.0.52 6000 sdc1 100.00 0 -100.00
|
||||
|
||||
#. Rebalance the ring:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# swift-ring-builder object.builder rebalance
|
||||
Reassigned 1024 (100.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
|
||||
|
||||
Distribute ring configuration files
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Copy the :file:`account.ring.gz`, :file:`container.ring.gz`, and
|
||||
:file:`object.ring.gz` files to the :file:`/etc/swift` directory
|
||||
on each storage node and any additional nodes running the proxy service.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user