xseg: Add support for "dynamic" port allocation
[archipelago] / docs / archipelago_deploy.rst
index 37135a8..434ed74 100644 (file)
@@ -22,12 +22,24 @@ Archipelago consists of the following packages:
 * ``archipelago-ganeti``: ganeti ext storage scripts, that enable ganeti to
   provision VMs over archipelago
 
+To be able to download all Archipelago components you need to add the following
+lines in your ``/etc/apt/sources.list`` file:
 
+.. code-block:: console
 
-Installing ``archipelago-ganeti`` from the apt repository should fetch all the
-necessary dependencies, based on the dkms infrastructure. Install also
-``archipelago-rados`` to enable RADOS storage backend.
+   deb http://apt.dev.grnet.gr unstable/
+   deb-src http://apt.dev.grnet.gr unstable/
 
+and import the our repository's GPG key:
+
+.. code-block:: console
+
+   curl https://dev.grnet.gr/files/apt-grnetdev.pub | apt-key add -
+
+Then install the Archipelago packages. Installing ``archipelago-ganeti`` from
+the apt repository should fetch all the necessary dependencies, based on the
+dkms infrastructure. Install also ``archipelago-rados`` if you want to enable
+the RADOS backend driver:
 
 .. code-block:: console
 
@@ -52,9 +64,18 @@ package by installing archipelago-modules-source and performing:
 Archipelago configuration
 *************************
 
-Archipelago configuration file is located to :
+The Archipelago configuration file is:
 ``/etc/archipelago/archipelago.conf``
 
+If your machine features < 6GB of RAM you need to set the ``SEGMENT_SIZE``
+accordingly to a lower value. (e.g., for a machine with 2GB of RAM, you can set
+it to 1GB). You should also create the two directories to store maps and blocks
+and define them accordingly inside the ``blockerb`` and ``blockerm`` settings
+of the configuration file (these are needed for the File backend driver to
+work). These are the minimum settings you need to change before starting
+Archipelago.
+
+Below is a list of all configuration settings:
 
 ``SEGMENT_PORTS``
     **Description** : Max number of ports in the segment.
@@ -114,7 +135,9 @@ Vlmc specific options:
 Archipelago commands
 ********************
 
-``archipelago`` provides basic functionality for archipelago.
+Once you configure Archipelago, you are then ready to start it.
+
+The ``archipelago`` tool provides the basic commands to control Archipelago.
 
 Usage:
 
@@ -122,7 +145,6 @@ Usage:
 
   $ archipelago [-u] command
 
-
 Currently it supports the following commands:
 
 * ``start [role]``
@@ -136,14 +158,13 @@ Currently it supports the following commands:
 
 ``role`` is one of the roles defined on the configuration file.
 
+``start``, ``stop``, ``restart`` can be combined with the ``-u / --user``
+option to affect only the userspace peers supporting Archipelago.
 
-``start``, ``stop``, ``restart`` can be combined with the ``-u / --user`` option
-to affect only the userspace peers supporting archipelago.
-
-Archipelago advanced commands
-*****************************
+Archipelago volume commands
+***************************
 
-The ``vlmc`` tool provides a way to interact with archipelago volumes
+The ``vlmc`` tool provides a way to interact with Archipelago volumes
 
 Usage:
 
@@ -153,48 +174,57 @@ Usage:
 
 Available commands:
 
+* **showmapped**: Shows the mapped volumes and the archipelago devices on that
+  node.
+
+  Usage: ``$ vlmc showmapped``
+
 * **map**: maps the volume to a xsegbd device
 
   Usage: ``$ vlmc map <volumename>``
 
 * **unmap**: unmaps the specified device from the system.
 
-  Usage: ``vlmc unmap </dev/xsegbd[1-..]>``
+  Usage: ``$ vlmc unmap </dev/xsegbd[1-..]>``
 
 * **create**: creates a new volume with an optional specified size from an optional
   specified snapshot
 
-  Usage: ``vlmc create <volumename> --snap <snapname> --size <size>``
+  Usage: ``$ vlmc create <volumename> --snap <snapname> --size <size>``
 
-  Usage: ``vlmc create <volumename> --snap <snapname>``
+  Usage: ``$ vlmc create <volumename> --snap <snapname>``
 
-  Usage: ``vlmc create <volumename> --size <size>``
+  Usage: ``$ vlmc create <volumename> --size <size>``
 
   The ``--snap`` and ``--size`` are both optional, but at least one of them is
   mandatory. If snap is not specified, then a blank volume with the specified
   size is created. If size is not specified, the new volume inherits the size
   from the snapshot.
 
+* **snapshot**: create a snapshot with the given name from the specified volume.
+
+  Usage: ``$ vlmc snapshot <volumename> <snapshotname>``
+
 * **remove**: removes the volume.
 
-  Usage: ``vlmc remove <volumename>``
+  Usage: ``$ vlmc remove <volumename>``
 
   This does not actually delete the blocks, just make the volume inaccessible
   for usage. The actual blocks are removed later, when a garbage collection is
   invoked.
 
-* **list**: Provides a list of archipelago volume currently found on storage
-
-  Usage: ``vlmc list``
+.. * **list**: Provides a list of archipelago volume currently found on storage
+..
+..   Usage: ``$ vlmc list``
 
 * **info**: shows volume information. Currently returns only the volume size.
 
-  Usage: ``vlmc info <volumename>``
+  Usage: ``$ vlmc info <volumename>``
 
 * **open**: opens an archipelago volume. That is, taking all the necessary locks
   and also make the rest of the infrastructure aware of the operation.
 
-  Usage: ``vlmc open <volumename>``
+  Usage: ``$ vlmc open <volumename>``
 
   This operation succeeds if the volume is alread opened by the current host.
 
@@ -202,7 +232,7 @@ Available commands:
   functions in the insfrastrure to successfully release the volume. Also
   releases all the acquired locks.
 
-  Usage: ``vlmc close <volumename>``
+  Usage: ``$ vlmc close <volumename>``
 
   A explicit ``close`` command should be invoked an explicit ``open``, to
   release the volume, unless another action triggered an implicit ``close``.
@@ -210,7 +240,7 @@ Available commands:
 * **lock**: locks a volume. This step allow the administrator to lock an
   archipelago volume, independently from the rest of the infrastructure.
 
-  Usage: ``vlmc lock <volumename>``
+  Usage: ``$ vlmc lock <volumename>``
 
   The locks are idempotent for the current owner of the lock. That is, a lock
   operation will succeed when the volume is already locked by the same blocker.
@@ -218,7 +248,7 @@ Available commands:
 * **unlock**: unlocks a volume. This allow the administrator to unlock a volume,
   independently from the rest of the infrastructure.
 
-  Usage: ``vlmc unlock [-f] <volumename>``
+  Usage: ``$ vlmc unlock [-f] <volumename>``
 
   The unlock option can be performed only by the blocker that acquired the lock
   in the first place. To unlock a volume from another blocker, ``-f`` option