This section describes basic Archipelago management and configuration.
Archipelago consists of the following packages:
To be able to download all Archipelago components you need to add the following lines in your /etc/apt/sources.list file:
deb http://apt.dev.grnet.gr unstable/
deb-src http://apt.dev.grnet.gr unstable/
and import the our repository’s GPG key:
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:
$ apt-get install archipelago-ganeti archipelago-rados
Tip
Archipelago does not start automatically after installation. Please review the configuration file, make any appropriate changes to the default configuration (e.g. default max segment size) and start it manually.
If a dkms based install is not desired, build your own archipelago-modules package by installing archipelago-modules-source and performing:
$ m-a build --text-mode --kvers-list "target kernel to build" archipelago-modules
Note
Kernel modules need linux-kernel >= 3.2
Warning
Archipelago currently supports only x86_64 architecture.
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:
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:
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.
The vlmc tool provides a way to interact with Archipelago volumes
Usage:
$ vlmc command [args]
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-..]>
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>
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>
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.
info: shows volume information. Currently returns only the volume size.
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>
This operation succeeds if the volume is alread opened by the current host.
close: closes an archipelago volume. That is, performing all the necessary functions in the insfrastrure to successfully release the volume. Also releases all the acquired locks.
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>
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>
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 must be used to break the lock.