Ceph - Test object replication across hosts

This document captures steps to validate object replcation is happening across hosts or not .

Setup:

  • Follow OSH single node or multinode guide to bring up OSH envronment.

Step 1: Setup the OSH environment and check ceph cluster health

Note

Make sure we have healthy ceph cluster running

Ceph status:

ubuntu@mnode1:/opt/openstack-helm$ kubectl exec -n ceph ceph-mon-5qn68 -- ceph -s
  cluster:
    id:     54d9af7e-da6d-4980-9075-96bb145db65c
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum mnode1,mnode2,mnode3
    mgr: mnode2(active), standbys: mnode3
    mds: cephfs-1/1/1 up  {0=mds-ceph-mds-6f66956547-c25cx=up:active}, 1 up:standby
    osd: 3 osds: 3 up, 3 in
    rgw: 2 daemons active

  data:
    pools:   19 pools, 101 pgs
    objects: 354 objects, 260 MB
    usage:   77807 MB used, 70106 MB / 144 GB avail
    pgs:     101 active+clean

  io:
    client:   48769 B/s wr, 0 op/s rd, 12 op/s wr
  • Ceph cluster is in HEALTH_OK state with 3 MONs and 3 OSDs.

Step 2: Run validation script

Note

Exec into ceph mon pod and execute the validation script by giving pool name as first argument, as shown below rbd is the pool name .

ubuntu@mnode1:/opt/openstack-helm$ /tmp/checkObjectReplication.py rbd
Test object got replicated on these osds: [1, 0, 2]
Test object got replicated on these hosts: [u'mnode1', u'mnode2', u'mnode3']
Hosts hosting multiple copies of a placement groups are:[]
  • If there are any objects replicated on same host then we will see them in the last line of the script output