Revision 44cc2a6a

b/docs/admin-guide.rst
494 494
:ref:`authenticate-api-label` API call from a private network or through HTTPS.
495 495

  
496 496

  
497

  
498 497
Compute/Network/Image Service (Cyclades)
499 498
========================================
500 499

  
......
858 857
requests to the Cyclades API, will retrieve the updated state from the DB.
859 858

  
860 859

  
861

  
862
Block Storage Service (Archipelago)
863
===================================
864

  
865
Overview
866
--------
867
Archipelago offers Copy-On-Write snapshotable volumes. Pithos images can be used
868
to provision a volume with Copy-On-Write semantics (i.e. a clone). Snapshots
869
offer a unique deduplicated image of a volume, that reflects the volume state
870
during snapshot creation and are indistinguishable from a Pithos image.
871

  
872
Archipelago is used by Cyclades and Ganeti for fast provisioning of VMs based on
873
CoW volumes. Moreover, it enables live migration of thinly-provisioned VMs with
874
no physically shared storage.
875

  
876
Archipelago Architecture
877
------------------------
878

  
879
.. image:: images/archipelago-architecture.png
880
   :width: 50%
881
   :target: _images/archipelago-architecture.png
882

  
883
.. _syn+archip+rados:
884

  
885
Overview of Synnefo + Archipelago + RADOS
886
-----------------------------------------
887

  
888
.. image:: images/synnefo-arch3.png
889
   :width: 100%
890
   :target: _images/synnefo-arch3.png
891

  
892
Prereqs
893
-------
894

  
895
The administrator must initialize the storage backend where archipelago volume
896
blocks will reside.
897

  
898
In case of a files backend, the administrator must create two directories. One
899
for the archipelago data blocks and one for the archipelago map blocks. These
900
should probably be over shared storage to enable sharing archipelago volumes
901
between multiple nodes. He or she, must also be able to supply a directory where
902
the pithos data and map blocks reside.
903

  
904
In case of a RADOS backend, the administrator must create two rados pools, one
905
for data blocks, and one for the map blocks. These pools, must be the same pools
906
used in pithos, in order to enable volume creation based on pithos images.
907

  
908
Installation
909
------------
910

  
911
Archipelago consists of
912

  
913
* ``libxseg0``: libxseg used to communicate over shared memory segments
914
* ``python-xseg``: python bindings for libxseg
915
* ``archipelago-kernel-dkms``: contains archipelago kernel modules to provide
916
  block devices to be used as vm disks
917
* ``python-archipelago``: archipelago python module. Includes archipelago and
918
  vlmc functionality.
919
* ``archipelago``: user space tools and peers for the archipelago management and
920
  volume composition
921
* ``archipelago-ganeti``: ganeti ext storage scripts, that enable ganeti to
922
  provision VMs over archipelago
923

  
924
Performing
925

  
926
.. code-block:: console
927

  
928
  $ apt-get install archipelago-ganeti 
929

  
930
should fetch all the required packages and get you up 'n going with archipelago
931

  
932
Bare in mind, that custom librados is required, which is provided in the apt
933
repo of GRNet.
934

  
935

  
936
For now, librados is a dependency of archipelago, even if you do not intend to
937
use archipelago over RADOS.
938

  
939
Configuration
940
-------------
941
Archipelago should work out of the box with a RADOS backend, but basic
942
configuration can be done in ``/etc/default/archipelago`` .
943

  
944
If you wish to change the storage backend to files, set
945

  
946
.. code-block:: console
947

  
948
   STORAGE="files"
949

  
950
and provide the appropriate settings for files storage backend in the conf file.
951

  
952
These are:
953

  
954
* ``FILED_IMAGES``: directory for archipelago data blocks.
955
* ``FILED_MAPS``: directory for archipelago map blocks.
956
* ``PITHOS``: directory of pithos data blocks.
957
* ``PITHOSMAPS``: directory of pithos map blocks.
958

  
959
The settings for RADOS storage backend are:
960

  
961
* ``RADOS_POOL_MAPS``: The pool where archipelago and pithos map blocks reside.
962
* ``RADOS_POOL_BLOCKS``: The pool where archipelago and pithos data blocks
963
  reside.
964

  
965
Examples can be found in the conf file.
966

  
967
Be aware that archipelago infrastructure doesn't provide default values for this
968
settings. If they are not set in the conf file, archipelago will not be able to
969
function.
970

  
971
Archipelago also provides ``VERBOSITY`` config options to control the output
972
generated by the userspace peers.
973

  
974
The available options are:
975

  
976
* ``VERBOSITY_BLOCKERB``
977
* ``VERBOSITY_BLOCKERM``
978
* ``VERBOSITY_MAPPER``
979
* ``VERBOSITY_VLMC``
980

  
981
and the available values are:
982

  
983
* 0 : Error only logging.
984
* 1 : Warning logging.
985
* 2 : Info logging.
986
* 3 : Debug logging. WARNING: This options produces tons of output, but the
987
  logrotate daemon should take care of it.
988

  
989
Working with Archipelago
990
------------------------
991

  
992
``archipelago`` provides basic functionality for archipelago.
993

  
994
Usage:
995

  
996
.. code-block:: console
997

  
998
  $ archipelago [-u] command
999

  
1000

  
1001
Currently it supports the following commands:
1002

  
1003
* ``start [peer]``
1004
  Starts archipelago or the specified peer.
1005
* ``stop [peer]``
1006
  Stops archipelago or the specified peer.
1007
* ``restart [peer]``
1008
  Restarts archipelago or the specified peer.
1009
* ``status``
1010
  Show the status of archipelago.
1011

  
1012
Available peers: ``blockerm``, ``blockerb``, ``mapperd``, ``vlmcd``.
1013

  
1014

  
1015
``start``, ``stop``, ``restart`` can be combined with the ``-u / --user`` option
1016
to affect only the userspace peers supporting archipelago.
1017

  
1018

  
1019

  
1020
Archipelago advanced operations
1021
-------------------------------
1022
The ``vlmc`` tool provides a way to interact with archipelago volumes
1023

  
1024
* ``vlmc map <volumename>``: maps the volume to a xsegbd device.
1025

  
1026
* ``vlmc unmap </dev/xsegbd[1-..]>``: unmaps the specified device from the
1027
  system.
1028

  
1029
* ``vlmc create <volumename> --snap <snapname> --size <size>``: creates a new
1030
  volume named <volumename> from snapshot name <snapname> with size <size>.
1031
  The ``--snap`` and ``--size`` are optional, but at least one of them is
1032
  mandatory. e.g:
1033

  
1034
  ``vlmc create <volumename> --snap <snapname>`` creates a volume named
1035
  volumename from snapshot snapname. The size of the volume is the same as
1036
  the size of the snapshot.
1037

  
1038
  ``vlmc create <volumename> --size <size>`` creates an empty volume of size
1039
  <size> named <volumename>.
1040

  
1041
* ``vlmc remove <volumename>``: removes the volume and all the related
1042
  archipelago blocks from storage.
1043

  
1044
* ``vlmc list``: provides a list of archipelago volumes. Currently only works
1045
  with RADOS storage backend.
1046

  
1047
* ``vlmc info <volumename>``: shows volume information. Currently returns only
1048
  volume size.
1049

  
1050
* ``vlmc open <volumename>``: opens an archipelago volume. That is, taking all
1051
  the necessary locks and also make the rest of the infrastructure aware of the
1052
  operation.
1053

  
1054
  This operation succeeds if the volume is alread opened.
1055

  
1056
* ``vlmc close <volumename>``: closes an archipelago volume. That is, performing
1057
  all the necessary functions in the insfrastrure to successfully release the
1058
  volume. Also releases all the acquired locks.
1059

  
1060
  ``vlmc close`` should be performed after a ``vlmc open`` operation.
1061

  
1062
* ``vlmc lock <volumename>``: locks a volume. This step allow the administrator
1063
  to lock an archipelago volume, independently from the rest of the
1064
  infrastrure.
1065

  
1066
* ``vlmc unlock [-f] <volumename>``: unlocks a volume. This allow the
1067
  administrator to unlock a volume, independently from the rest of the
1068
  infrastructure.
1069
  The unlock option can be performed only by the blocker that acquired the lock
1070
  in the first place. To unlock a volume from another blocker, ``-f`` option
1071
  must be used to break the lock.
1072

  
1073

  
1074 860
Synnefo management commands ("snf-manage")
1075 861
==========================================
1076 862

  
......
1223 1009
reconcile-resources-cyclades   Reconcile resource usage of Astakos with Cyclades DB.
1224 1010
============================== ===========================
1225 1011

  
1012

  
1226 1013
Astakos helper scripts
1227 1014
======================
1228 1015

  
......
1243 1030
which simulates the export of service and resource definitions of the
1244 1031
standard Synnefo components.
1245 1032

  
1033

  
1246 1034
Pithos managing accounts
1247 1035
========================
1248 1036

  

Also available in: Unified diff