arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
71 lines (44 loc) • 5.77 kB
Markdown
Ceph is a storage platform with a focus on being distributed, resilient, and having good performance and high reliability. Ceph can also be used as a block storage solution for [virtual machines](https://en.wikipedia.org/wiki/Virtual_Machine "wikipedia:Virtual Machine") or through the use of [FUSE](/index.php/FUSE "FUSE"), a conventional filesystem. Ceph is extremely configurable, with administrators being able to control virtually all aspects of the system. A command line interface is used to monitor and control the cluster. The platform also contains authentication & authorization features, and various gateways to make it compatible with systems such as [OpenStack Swift](https://en.wikipedia.org/wiki/OpenStack#Swift "wikipedia:OpenStack") and [Amazon S3](https://en.wikipedia.org/wiki/Amazon_S3 "wikipedia:Amazon S3").
From [Wikipedia: Ceph (software)](https://en.wikipedia.org/wiki/Ceph_(software) "wikipedia:Ceph (software)"):
Ceph is a free software storage platform designed to present object, block, and file storage from a single distributed computer cluster. Ceph's main goals are to be completely distributed without a single point of failure, scalable to the exabyte level, and freely-available. The data is replicated, making it fault tolerant.
From [Ceph.com](https://ceph.com/):
Ceph is a distributed object store and file system designed to provide excellent performance, reliability and scalability.
**Warning:** The recommended installation method for Ceph is via an [upstream tool](https://github.com/ceph/ceph-deploy) which uses [SSH](/index.php/SSH "SSH") to connect to machines with the purpose of automatically installing, configuring, and managing Ceph. The upstream tool (ceph-deploy) does not currently support [Arch Linux](/index.php/Arch_Linux "Arch Linux"). Until ceph-deploy includes support for Arch Linux, it is not possible to use the [quick installation method](http://ceph.com/docs/master/start/) due to the extensive use of the tool. The only other officially documented installation method is the [manual deployment guide](http://ceph.com/docs/master/install/manual-deployment/). This article therefore documents the manual procedure until Arch Linux is supported by the quick method.
The official documentation [states](http://ceph.com/docs/master/install/#deploy-a-cluster-manually) "the manual procedure is primarily for exemplary purposes for those developing deployment scripts with Chef, Juju, Puppet, etc.".
## Contents
* [1 Terminology](#Terminology)
* [2 Installation](#Installation)
* [2.1 Packages](#Packages)
* [2.2 NTP Client](#NTP_Client)
* [3 Bootstrapping a storage cluster](#Bootstrapping_a_storage_cluster)
* [3.1 Starting a monitor](#Starting_a_monitor)
* [4 See also](#See_also)
## Terminology
**Note:** A full glossary is available in the [official documentation](http://ceph.com/docs/master/glossary/).
* **Client** : Something which connects to a Ceph cluster to access data but is not part of the Ceph cluster itself.
* **MONs** : Also known as monitors, these store cluster state and maps containing information about the cluster such as running services and data locations.
* **MDSs** : Also known as metadata servers, these store metadata for the Ceph filesystem to reduce load on the storage cluster (e.g. information for commands such as `ls`).
* **Node** : A machine which is running Ceph services, such as OSDs or MONs.
* **OSDs** : Also known as OSD daemons, these are responsible for the storage of data within the cluster and also conduct various related operations such as replication, recovery, and rebalancing.
* **Storage cluster** : The core set of software responsible for storing data (OSDs+MONs).
## Installation
### Packages
Install it with the package [ceph](https://www.archlinux.org/packages/?name=ceph), available in the [official repositories](/index.php/Official_repositories "Official repositories"). You may instead install [ceph-git](https://aur.archlinux.org/packages/ceph-git/) if you want a bleeding-edge installation.
Install [ceph](https://www.archlinux.org/packages/?name=ceph) on all nodes that will be in the cluster.
### NTP Client
**Warning:** You should synchronise the clocks on your monitor nodes to prevent clock drift (see [Time#Time skew](/index.php/Time#Time_skew "Time") for details), which can degrade the performance of your cluster or stop it from functioning entirely. The [official documentation](http://docs.ceph.com/docs/master/rados/configuration/mon-config-ref/#clock:) recommends that nodes run some form of clock synchronisation.
Install and run a time synchronisation client on the node. See [Time#Time synchronization](/index.php/Time#Time_synchronization "Time") for details.
## Bootstrapping a storage cluster
Before a storage cluster can operate, the monitors for that cluster must be bootstrapped with several identifiers and keyrings.
The upstream Ceph documentation is well-written and kept updated with the latest releases.
To boostrap a storage cluster, follow the steps documented in the [official manual deployment guide](http://ceph.com/docs/master/install/manual-deployment/#monitor-bootstrapping).
### Starting a monitor
Since your system most likely uses [systemd](/index.php/Systemd "Systemd"), you can enable a monitor as a systemd unit.
As an example, for a monitor named `node1` start and enable `ceph-mon@node1.service` as detailed in [Systemd#Using units](/index.php/Systemd#Using_units "Systemd").
## See also
* Official site
* [Homepage](https://ceph.com)
* [Documentation](http://ceph.com/docs/master/)
* Official source code
* [GitHub organization](https://github.com/ceph)
* [Ceph](https://github.com/ceph/ceph)