* ``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
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.
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:
$ archipelago [-u] command
-
Currently it supports the following commands:
* ``start [role]``
``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:
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.
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``.
* **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.
* **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