docs: Fix some typos
[archipelago] / docs / index.rst
1 Archipelago
2 ^^^^^^^^^^^
3
4 Archipelago is a distributed software defined storage solution that decouples
5 cloning and snapshotting logic from the actual storage used.
6
7 Every Volume inside a VM can be thought of as a linearly addressable set of
8 fixed-size blocks. The storage of the actual blocks is orthogonal to the task of
9 exposing a single block device for use by each VM. Bridging the gap between the
10 VMs performing random access to Volumes and the storage of actual blocks is
11 Archipelago: a custom storage handling layer which handled volumes as set of
12 distinct blocks in the backend, a process we call volume composition.
13
14 For the actual storage of blocks, Archipelago is agnostic to the storage backend
15 used. Through plugable storage drivers, Archipelago can support multiple storage
16 backends to suit the needs of each deployment. We currently provide two storage
17 drivers. One for simple files, where each object is stored as a single file on the
18 (shared) filesystem, and one for objects backed by RADOS. RADOS is the
19 distributed object store which supports the Ceph parallel filesystem. With RADOS,
20 we can solve the problem of reliable, fault-tolerant object storage through
21 replication on multiple storage nodes.
22
23 As mentioned before, Archipelago composes the volume through individual blocks.
24 This is accomplished by maintaining a map for each volume, to map offset in a
25 volume with a single object. The exact offset inside the object, is calculated
26 statically from the fixed object size and the offset in the volume. But having
27 this map and the composition subsystems, allow us to do much more than simple
28 volume composition.  Archipelago offers Copy-On-Write snapshottable volumes.
29 Furthermore, each snapshot can be hashed, to allow deduplication to play its
30 part, reducing the storage cost of each hashed object. Furthermore, Archipelago
31 can integrate with Pithos, and use Pithos images to provision a volume with
32 Copy-On-Write semantics (i.e. a clone). Since Pithos images are already hashed,
33 we can store Archipelago hashed volumes, which are indistinguishable from a Pithos
34 image, along with the Pithos images, to enable further deduplication, or even
35 registering an archipelago hashed snapshot as Pithos image file.
36
37 Archipelago is used by Cyclades and Ganeti for fast VM provisioning based on CoW
38 volumes. Moreover, it enables live migration of thinly-provisioned VMs with no
39 physically shared storage.
40
41
42 Contents:
43 *********
44
45 .. toctree::
46    :maxdepth: 2
47    :numbered:
48    :glob:
49
50    archipelago
51    archipelago_deploy