CanonicalLtd/ceph-mon

Name: ceph-mon

Owner: Canonical Ltd

Description: Ceph Monitor Juju Charm

Created: 2015-12-15 13:30:11.0

Updated: 2015-12-15 13:32:34.0

Pushed: 2015-12-15 13:36:52.0

Homepage: null

Size: 97

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Overview

Ceph is a distributed storage and network file system designed to provide excellent performance, reliability, and scalability.

This charm deploys a Ceph cluster.

Usage

Boot things up by using:

juju deploy -n 3 ceph-mon

By default the ceph cluster will not bootstrap until 3 service units have been deployed and started; this is to ensure that a quorum is achieved prior to adding storage devices.

Scale Out Usage

You can use the Ceph OSD and Ceph Radosgw charms:

Contact Information

Authors

Report bugs on Launchpad

Ceph

Technical Footnotes

This charm uses the new-style Ceph deployment as reverse-engineered from the Chef cookbook at https://github.com/ceph/ceph-cookbooks, although we selected a different strategy to form the monitor cluster. Since we don't know the names or addresses of the machines in advance, we use the relation-joined hook to wait for all three nodes to come up, and then write their addresses to ceph.conf in the “mon host” parameter. After we initialize the monitor cluster a quorum forms quickly, and OSD bringup proceeds.

The osds use so-called “OSD hotplugging”. ceph-disk-prepare is used to create the filesystems with a special GPT partition type. udev is set up to mount such filesystems and start the osd daemons as their storage becomes visible to the system (or after udevadm trigger).

The Chef cookbook mentioned above performs some extra steps to generate an OSD bootstrapping key and propagate it to the other nodes in the cluster. Since all OSDs run on nodes that also run mon, we don't need this and did not implement it.

See the documentation for more information on Ceph monitor cluster deployment strategies and pitfalls.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.