Commit Graph
39 Commits
Author SHA1 Message Date
Blaine Gardner 91ec1ac4db docs: ceph: add peer spec migration to upgrade doc
Add a section to the upgrade doc instructing users to (and how to)
migrate `CephRBDMirror` `peers` spec to individual `CephBlockPools`.
Adjust the pending release notes to refer to the upgrade section now,
and clean up a few references in related docs to make sure users don't
miss important documentation.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-09-09 11:46:29 -06:00
Santosh Pillai 3b50f5fd00 ceph: add MirroringPeerSpec to CephBlockPool.Spec.Mirroring
Instead of having the RBDMirroringPeerSpec in the RBDMirror CRD we want
to move it on the CephBlockPool CRD so that each pool can have its own peer.
This enables pool to re-use an existing peer secret if it points to the
same cluster peer.So we don't need to duplicate secret peer anymore.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2021-07-28 17:47:36 +05:30
Sébastien Han b578f916e7 ceph: add fs mirror config
Similarly to block volume replication, Ceph is capable of replicating the
content of a Ceph Filesystem from one cluster to another.
For this, during the 1.6 cycle, we introduced a new CRD called
CephFilesystemMirror which effectively deploys a cephfs-mirror daemon.
However, configuring peers to enable replication between two clusters
had to be done manually.
Also various bug fix made it in Ceph eventually and the minimum required
version for this to work is to run on Ceph Pacific 16.2.5 at least.

So the automatic configuration of Ceph Filesystem peers is now possible.

By editing the CephFilesystem CRD, you can now turn on mirroring:

```yaml
  mirroring:
    enabled: false
    # list of Kubernetes Secrets containing the peer token
    # for more details see: https://docs.ceph.com/en/latest/dev/cephfs-mirroring/#bootstrap-peers
    peers:
      secretNames:
        - secondary-cluster-peer
```

Also, the mirroring status is displayed in the CR status:

```
status:
  info:
    fsMirrorBootstrapPeerSecretName: fs-peer-token-myfs
  mirroringStatus:
    daemonsStatus:
    - daemon_id: 4186
      filesystems:
      - filesystem_id: 2
        name: myfs
    lastChecked: "2021-07-01T14:16:29Z"
  phase: Ready
  snapshotScheduleStatus:
    lastChecked: "2021-07-01T14:16:29Z"
    snapshotSchedules:
    - fs: myfs
      path: /
      rel_path: /
      retention: {}
      schedule: 24h
```

Closes: https://github.com/rook/rook/issues/7063
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-01 17:35:19 +02:00
Santosh Pillai 4041868e2e ceph: hybrid Storage Pools
Creates hybrid crush rule for choosing Primary OSD for
high performing SSD devices and remaining OSD for low performance HDD devices.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2021-07-01 11:16:54 +05:30
Frank Ritchie 9ae699d632 ceph: set pool quota with k8s quantity format
This is a follow up to:

https://github.com/rook/rook/pull/7264

which added pool quotas. It was stated that it would be nice to
be able to set pool max_bytes quotas using standard k8s quantity
formats rather than an integer representing the number of bytes.

I was too busy at the time to make the changes. This PR adds the
functionality.

Signed-off-by: Frank Ritchie <12985912+fritchie@users.noreply.github.com>
2021-03-15 19:26:41 -04:00
subhamkrai 51910d0fed docs: updating according to the markdown convention
this commit update all the docs according to the
markdown convention for the command.

[skip ci]

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-05 10:45:04 +05:30
Frank Ritchie a0488dac73 ceph: add ability to set pool quotas
This will allow setting ceph pool quotas in bytes and/or objects.

Ceph documentation: https://docs.ceph.com/en/latest/rados/operations/pools/#set-pool-quotas

Signed-off-by: Frank Ritchie <12985912+fritchie@users.noreply.github.com>
2021-02-19 13:49:25 -05:00
Sébastien Han afc7ecff31 ceph: add snapshot scheduling for mirrored pools
Now, we can schedule snapshots on pools from the CephBlockPool CR when
the pool is mirrored.
It can be enabled like this:

```
mirroring:
  enabled: true
  mode: pool
  snapshotSchedules:
    - interval: 24h # daily snapshots
      startTime: 14:00:00-05:00
```

Multiple schedules are supported since snapshotSchedules is a list.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-18 09:50:09 +01:00
Sébastien Han b70b098405 ceph: add support for stretched cluster crush rule
The pool spec has now a new property called "replicasPerFailureDomain"
which essentially represents the number of replicas to store in each
failure domain.
Assuming the failure domain is a datacenter (if the cluster is
stretched) then you will have 2 replicas per datacenter where each
replica ends up on a different host. This gives you a total of 4
replicas and for this, the "size" must be set to 4.

Closes: https://github.com/rook/rook/issues/5591
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-13 16:33:34 +02:00
Madhu Rajanna 0faa076859 ceph: fix example rbdMirrorBootstrapPeerSecretName in mirror doc
The rbdMirrorBootstrapPeerSecretName always starts with
pool-peer-token- when we pool is created with mirroring
enabled.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-10-08 13:51:38 +05:30
Sébastien Han 451622a955 ceph: add rbd-mirror configuration
Rook is now capable of configuring mirroring between sites. The
implementation works at different levels:

* CephBlockPool: which introduces a new `mirroring` configuration as well
as `statusCheck`. When turned on, Rook will enable mirroring on the
pool. It will also create a bootstrap peer token and store it in a
Kubernetes Secret. The name of that Secret can be found in the Status
field of the CephBlockPool CRD. This token can be fetched and used by
other clusters to configure the site as a peer. Mirroring can be
configured either at the pool or the image level.

* CephRBDMirror: which introduces a new `peers` configuration allowing
Rook to connect to peers by passing a Secret name. The administrator will
create a Kubernetes Secret with 2 keys: 'token' for the bootstrap peer
token and 'pool' for the name of pool. Once detected the rbd-mirror
controller will go ahead and import the peer configuration.

Pool mirroring status example:

```
status:
  info:
    rbdMirrorBootstrapPeerSecretName: pool-peer-token-test
  mirroringInfo:
    lastChanged: "2020-09-17T14:47:27Z"
    lastChecked: "2020-09-17T14:48:27Z"
    summary:
      summary:
        mode: image
        peers:
        - client_name: client.rbd-mirror-peer
          direction: rx-tx
          mirror_uuid: ""
          site_name: rhcs
          uuid: c50522a4-28a4-4bd3-ba68-e11780308882
        site_name: 91eae0dd-06b1-4d2c-91f3-1311c9df382b-rook-ceph
  mirroringStatus:
    lastChecked: "2020-09-17T14:48:27Z"
    summary:
      summary:
        daemon_health: OK
        health: OK
        image_health: OK
        states:
          replaying: 1
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-09-17 19:05:04 +02:00
Umanga Chapagain da1910840a ceph: add CRD changes and documentation
adds `enableRBDStats` to CRD manifets and updates documentation
on its usage.

Signed-off-by: Umanga Chapagain <chapagainumanga@gmail.com>
2020-08-06 12:11:55 +05:30
Blaine Gardner 0a08480c3a docs: fix placement of param in ceph pool crd
`requireSafeReplicaSize` is now a sub-param of `replicated` and not of
Ceph's `parameters`.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2020-07-21 09:37:59 -06:00
Sébastien Han c7f255a0e8 ceph: add the ability to set any pool property
We can now explicitly set any property on a given pool by using the new
Property field in the CephBlockPool Spec.

Also, this fixes the case where both `CephBlockPool` and `CephCluster`
are created at the same time. When Rook creates the pool, the cluster is
still being bootstrapped and the global option
`osd_pool_default_pg_autoscale_mode` has not bee set yet. So the pool
gets created but its `pg_autoscale_mode` property is set to `warn`
instead of `on`.

Closes: https://github.com/rook/rook/issues/5608V
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-17 10:08:00 +02:00
ShyamsundarR de97b6a1d6 ceph: Add ability to specify compression mode for pools
This commit enables configuring a compression_mode for pools
that takes the values as specified for bluestore OSD
compression_mode values,
https://docs.ceph.com/docs/master/rados/configuration/bluestore-config-ref/#inline-compression

Signed-off-by: ShyamsundarR <srangana@redhat.com>
2020-04-01 14:24:30 -04:00
Travis Nielsen a251959061 docs: restructure prerequisites and clarify ceph docs
The docs were in need of some restructuring wrt prerequisites. They
were mingled with general k8s and Ceph requirements. For clarity,
we need to separate the ceph prereqs from general k8s requirements.

There is now only a single prereqs page. All other topics should be
found under other sections, such as specific to Ceph. Having subtopics
under the general prereqs caused users to frequently not even notice
the main prereqs topic.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-16 15:15:44 -06:00
Travis Nielsen 8a19c73036 ceph: clarify docs for erasure coding
Setting up the topology for the CRUSH map was outdated in the EC doc.
Now a link to the node labels is provided for the configuration.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-16 15:13:52 -06:00
Sébastien Han dab9233c8b ceph: add CRD setting for pool size 1
As of Octopus, Ceph will prevent you from creating a pool with a
replica size of 1. Allowing such pool could lead to data loss, so enable
the new option: requireSafeReplicaSize: false if you are **ABSOLUTELY**
certain that is what you want.

Closes: https://github.com/rook/rook/issues/4889
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-25 16:28:58 +01:00
Sébastien Han cface95317 ceph: ability to set target_size_ratio
target_size_ratio is used the tell the Ceph cluster the excepted
occupancy of a pool in the cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-06 09:13:47 +01:00
Alexander Trost 98217272be ceph: docs: unified formatting and style
This is the first phase Ceph part of three phases to improve and rework
the Rook documentation for better user accessibility to the Rook
projects and  with that the storage providers.
Phase two is about automatic generation of CRD documentation and phase
three is about reworking the docs themselves and, e.g., examples for
CRDs and certain use cases.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2019-11-01 18:10:32 +01:00
Travis Nielsen b240c30050 Merge pull request #3597 from mgfritch/wip-ceph-pool-doc
docs: Add Clarity to Ceph CRDs
2019-08-13 14:59:24 -06:00
Michael Fritch fbf9f95378 docs: Add Clarity to Ceph CRDs
- Improve readability of 'Replicated' and 'Erasure Coded' sections
- Clarify replicated sample requires 1 OSD located on 3 different nodes
- Add whitespace to 'Pool Settings' section
- Add link to the k8s 'StorageClass' concept
- Rename instances of 'object store' as literal
`CephObjectStore`
- Rename instances of 'object store user' as literal
`CephObjectStoreUser`
- Other minor verbiage and syntax clean-up

Signed-off-by: Michael Fritch <mfritch@suse.com>
2019-08-13 10:24:19 -06:00
travisn 9a3dc52a11 ceph: minimum version allowed is mimic 13.2.4
With the 1.1 release we should not be creating bluestore OSDs
with rook's legacy partitioning scheme. All new bluestore OSDs
should be created with ceph-volume. Therefore, the miminum
version allowed is a version of mimic supporting ceph-volume.

This commit also adds consistent version checking between
the Add and Update methods for the operator handling the
CR events.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:22:59 -06:00
Santosh Pillai 7d5afa29b8 added device class pool property
- Updated code to use deviceClass property when a pool is created for both "replicated" and "erasure code".
- Updated "ceph crush rule create-..." command to use "create-replicated" instead of "create-simple"
- Updated unit tests
- Updated (ceph-pool-crd.md) documentation to reflect the changes.
- Updated pending release notes.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2019-05-15 16:45:39 +05:30
Christian Hüning 6fc8b9d3c5 added documentation for custom CRUSH location settings
added comment about location to CephFS CRD docs

Signed-off-by: Christian Hüning <christianhuening@googlemail.com>
2019-02-09 12:57:09 +01:00
Dmitry Yusupov 90ad28475c add 00 to all the weights in *.md files
Signed-off-by: Dmitry Yusupov <dmitry@nexenta.com>
2019-02-04 09:46:00 -08:00
Blaine Gardner d7d9b2736a doc: clarify Ceph pool failureDomain setting
Based on discussion in issue #2411, clarify Rook and Ceph's behavior
around allowing the user to create a cluster where data replication
cannot tolerate the cluster's failure domain safely.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-01-07 12:04:29 -07:00
travisn 0524084592 docs: table of contents with a storage provider organization
Signed-off-by: travisn <tnielsen@redhat.com>
2018-12-08 08:07:03 -07:00
Jared Watts 99379308ba Merge pull request #2325 from yanniszark/cassandra-operator-scale-down-implementation
[cassandra operator] Scale Down Implementation
2018-12-07 12:28:06 -08:00
Alexander Trost 4296167ffe doc: added count of nodes with some info
doc: added note about cert cluster-admin steps only needed when no
cluster-admin in K8S cluster yet.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2018-12-07 20:18:28 +01:00
Yannis Zarkadas 68f2c4e5d5 cassandra: documentation for scale down action
Signed-off-by: Yannis Zarkadas <yanniszarkadas@gmail.com>
2018-12-07 13:46:46 +02:00
travisn a29b876337 rename ceph v1 crds with the ceph prefix
Signed-off-by: travisn <tnielsen@redhat.com>
2018-12-05 16:23:55 -07:00
travisn 62f7e5d6ea ceph: update docs, code, and tests to use v1 crd types
Signed-off-by: travisn <tnielsen@redhat.com>
2018-12-05 14:33:11 -07:00
Alexander Trost 2080330539 Add dataPool parameter to StorageClass
This change allows block storage to use a given Ceph pool for it's data.

Fixes #1733

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2018-08-17 16:28:08 +02:00
travisn 4ac9792e45 docs: clarify pool replication samples
Signed-off-by: travisn <tnielsen@redhat.com>
2018-08-06 09:31:13 -06:00
Jared Watts c4400ca6b1 docs: update docs, guides and examples for ceph.rook.io/v1beta1 types
Signed-off-by: Jared Watts <jbw976@gmail.com>
2018-07-11 09:23:58 -07:00
Alexander Trost d7795f30d0 documentation/design: Removed unnecessary whitespaces/new lines
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2018-06-24 18:39:07 +02:00
Jared Watts db5b3bda62 cockroachdb: Documentation, user guides, examples
Signed-off-by: Jared Watts <jbw976@gmail.com>
2018-06-18 19:19:15 -07:00
travisn 221dc3ec8b docs: User docs/guides updates for multiple storage type support
Signed-off-by: travisn <tnielsen@redhat.com>
2018-05-18 14:29:01 -07:00