Installation guide

Package installation

Archipelago consists of the following packages:

  • archipelago: user space tools and peers for the archipelago management and volume composition. This package depends on:
    • libxseg0: libxseg used to communicate over shared memory segments
    • python-xseg: python bindings for libxseg
    • python-archipelago: archipelago python module. Includes archipelago and vlmc python modules.
  • archipelago-rados: user space storage driver to enable RADOS support
  • archipelago-ganeti: ganeti ext storage scripts, that enable ganeti to provision VMs over archipelago
  • blktap-archipelago-utils: blktap utilities to support presenting an Archipelago resource as a blktap block device. Currently this package is custom patched to support archipelago and it is provided by the Synnefo Apt repository.
  • xseg-tools: xseg utility that is used to dig into the shared memory segment communication mechanism.

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 wheezy/
deb-src http://apt.dev.grnet.gr wheezy/

and import our repository’s GPG key:

curl https://dev.grnet.gr/files/apt-grnetdev.pub | apt-key add -

Then install the Archipelago packages. Installing archipelago and archipelago-ganeti packages from the APT repository should fetch all the necessary dependencies. Install also archipelago-rados if you want to install the RADOS backend driver. Bare in mind that archipelago-rados package requires ceph packages which can be found on the wheezy-backports or the ceph’s provided repository.

$ apt-get install archipelago archipelago-ganeti archipelago-rados

To present Archipelago resources as block devices, the blktap-archipelago-utils and blktap-dkms packages are required. Please note that you need to install the latest version of blktap-archipelago-utils from the aforementioned GRNet repo, since it contains extra patches to support Archipelago. You should use your distro provided blktap-dkms package.

# apt-get install blktap-archipelago-utils blktap-dkms

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.

Tip

For those users who do not wish to install all the dependencies of blktap-dkms package the Synnefo apt repository provides a patched version of the dkms package that is able to provide a binary kernel module. The patched dkms aims to facilitate the process of building kernel modules from source. It uses source code from apt repositories and produces binary .deb packages.

After installing the patched version of dkms from Synnefo apt repository to the build machine, the process of producing a binary .deb package from blktap-dkms is really simple:

# apt-get install blktap-dkms
# dkms mkbmdeb blktap/2.0.91

The last command produces the final binary package under the directory /var/lib/dkms/blktap/2.0.91/bmdeb/ which can be installed without installing the blktap-dkms dependencies.

With backports kernel a newer blktap-dkms package should be fetched from unstable/SID. The version option used in dkms that denotes the blktap-dkms version should change accordingly.

Warning

Archipelago currently does not provide any garbage collection functionality. Make sure your storage capacity can meet your data needs when using Archipelago.

Setup data storage

Archipelago over RADOS

If you plan to run Archipelago over RADOS, you need to create two RADOS pools to host Archipelago data. One pool is meant to host the Archipelago map files (e.g. the maps pool) and the other one is used to host the actual data (e.g. the blocks pool).

Archipelago over NFS

If you plan to run Archipelago over NFS, you need to create an NFS share and mount it on all nodes that run Archipelago. Three subdirectories are needed. A subdirectory where Archipelago mapfiles will be placed (e.g. maps), a subdirectory where Archipelago data files will be stored (e.g. blocks), and a separate directory where Archipelago places lock files (e.g. locks).

Archipelago by default creates an archipelago user and group and the default configuration executes Archipelago with these permissions. Make sure that the Archipelago user and group have the same permissions on the NFS share accross all nodes. That means for example that archipelago UID and GID are consistent across all Archipelago nodes for NFSv3 or there is a proper name mapping for NFSv4.

# mkdir /srv/archip/
# cd /srv/archip/
# mkdir -p {maps,blocks,locks}
# chown archipelago:archipelago {maps,blocks,locks}
# chmod 770 {maps,blocks,locks}
# chmod g+s {maps,blocks,locks}

Warning

Each subdirectory of the /srv/archip/ (i.e. maps, blocks, locks) must be a single filesystem and contain no mountpoints or symbolic links to other filesystems.

Basic Archipelago configuration

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).

For a filed based setup, you should adjust the blockerm and blockerb settings to point to the directories exported by the NFS server. More specifically: * Adjust the archip_dir of blockerb to point to the

/srv/archip/blocks directory.
  • Adjust the archip_dir of blockerm to point to the /srv/archip/maps directory.
  • Set the lock_dir of blockerm to point to the /srv/archip/locks directory.

If you wish to start with a RADOS setup, a default archipelago-rados configuration file ships with the package. You can use it as your base configuration file. The basic thing you need to adjust to your setup are the pools of blockerm and blockerb where the map and data objects will be stored.

You might also want to setup the cephx_id option, to point to your client keyring.

Configuration section contains a full list of the configuration settings.

Table Of Contents

Previous topic

Archipelago

Next topic

Administrator’s guide

This Page