charm-ceph-mon/README.md

4.4 KiB

Overview

Ceph is a unified, distributed storage system designed for excellent performance, reliability, and scalability.

The ceph-mon charm deploys Ceph monitor nodes, allowing one to create a monitor cluster. It is used in conjunction with the ceph-osd charm. Together, these charms can scale out the amount of storage available in a Ceph cluster.

Usage

Deployment

A cloud with three MON nodes is a typical design whereas three OSD nodes are considered the minimum. For example, to deploy a Ceph cluster consisting of three OSDs and three MONs:

juju deploy -n 3 --config ceph-osd.yaml ceph-osd
juju deploy --to lxd:0 ceph-mon
juju add-unit --to lxd:1 ceph-mon
juju add-unit --to lxd:2 ceph-mon
juju add-relation ceph-osd ceph-mon

Here, a containerised MON is running alongside each OSD.

By default, the monitor cluster will not be complete until three ceph-mon units have been deployed. This is to ensure that a quorum is achieved prior to the addition of storage devices.

See the Ceph documentation for notes on monitor cluster deployment strategies.

Note: Refer to the Install OpenStack page in the OpenStack Charms Deployment Guide for instructions on installing a monitor cluster for use with OpenStack.

Network spaces

This charm supports the use of Juju network spaces (Juju v.2.0). This feature optionally allows specific types of the application's network traffic to be bound to subnets that the underlying hardware is connected to.

Note: Spaces must be configured in the backing cloud prior to deployment.

The ceph-mon charm exposes the following Ceph traffic types (bindings):

  • 'public' (front-side)
  • 'cluster' (back-side)

For example, providing that spaces 'data-space' and 'cluster-space' exist, the deploy command above could look like this:

juju deploy -n 3 --config ceph-mon.yaml ceph-mon \
   --bind "public=data-space cluster=cluster-space"

Alternatively, configuration can be provided as part of a bundle:

    ceph-mon:
      charm: cs:ceph-mon
      num_units: 1
      bindings:
        public: data-space
        cluster: cluster-space

Refer to the Ceph Network Reference to learn about the implications of segregating Ceph network traffic.

Note: Existing ceph-mon units configured with the ceph-public-network or ceph-cluster-network options will continue to honour them. Furthermore, these options override any space bindings, if set.

Monitoring

The charm supports Ceph metric monitoring with Prometheus. Add relations to the prometheus application in this way:

juju deploy prometheus2
juju add-relation ceph-mon prometheus2

Note: Prometheus support is available starting with Ceph Luminous (xenial-queens UCA pocket).

Actions

This section lists Juju actions supported by the charm. Actions allow specific operations to be performed on a per-unit basis. To display action descriptions run juju actions ceph-mon. If the charm is not deployed then see file actions.yaml.

  • copy-pool
  • create-cache-tier
  • create-crush-rule
  • create-erasure-profile
  • create-pool
  • crushmap-update
  • delete-erasure-profile
  • delete-pool
  • get-erasure-profile
  • get-health
  • list-erasure-profiles
  • list-pools
  • pause-health
  • pool-get
  • pool-set
  • pool-statistics
  • remove-cache-tier
  • remove-pool-snapshot
  • rename-pool
  • resume-health
  • security-checklist
  • set-noout
  • set-pool-max-bytes
  • show-disk-free
  • snapshot-pool
  • unset-noout

Bugs

Please report bugs on Launchpad.

For general charm questions refer to the OpenStack Charm Guide.