Performing default reads

Perform a default read on a pool to retrieve data from primary data centers.

Before you begin

  • A stretch cluster with two data centers and Ceph Object Gateway configured on both.
  • A user created with a bucket and OSDs - primary and replicated OSDs.

About this task

When a default READ is issued on a pool, the IO operations are retrieved directly from each OSD in the data center.

Procedure

  1. To perform a default read, set rados_replica_read_policy to default in the OSD daemon configuration by using the ceph config set command.
    [ceph: root@host01 /]#ceph config set
    
    client.rgw.rgw.1 advanced rados_replica_read_policy default
    The IO operations from the closest OSD in a data center are retrieved when a GET operation is performed.
  2. Verification: Perform the below steps to verify the localized read from an OSD set.
    1. Run the ceph osd tree command to view the OSDs and the data centers.

      For example,

      [ceph: root@host01 /]# ceph osd tree
      
      ID  CLASS  WEIGHT   TYPE NAME                                 STATUS  REWEIGHT  PRI-AFF
      -1         0.58557  root default
      -3         0.29279      datacenter DC1
      -2         0.09760          host ceph-ci-fbv67y-ammmck-node2
       2    hdd  0.02440              osd.2                             up   1.00000  1.00000
      11    hdd  0.02440              osd.11                            up   1.00000  1.00000
      17    hdd  0.02440              osd.17                            up   1.00000  1.00000
      22    hdd  0.02440              osd.22                            up   1.00000  1.00000
      -4         0.09760          host ceph-ci-fbv67y-ammmck-node3
       0    hdd  0.02440              osd.0                             up   1.00000  1.00000
       6    hdd  0.02440              osd.6                             up   1.00000  1.00000
      12    hdd  0.02440              osd.12                            up   1.00000  1.00000
      18    hdd  0.02440              osd.18                            up   1.00000  1.00000
      -5         0.09760          host ceph-ci-fbv67y-ammmck-node4
       5    hdd  0.02440              osd.5                             up   1.00000  1.00000
      10    hdd  0.02440              osd.10                            up   1.00000  1.00000
      16    hdd  0.02440              osd.16                            up   1.00000  1.00000
      23    hdd  0.02440              osd.23                            up   1.00000  1.00000
      -7         0.29279      datacenter DC2
      -6         0.09760          host ceph-ci-fbv67y-ammmck-node5
       3    hdd  0.02440              osd.3                             up   1.00000  1.00000
       8    hdd  0.02440              osd.8                             up   1.00000  1.00000
      14    hdd  0.02440              osd.14                            up   1.00000  1.00000
      20    hdd  0.02440              osd.20                            up   1.00000  1.00000
      -8         0.09760          host ceph-ci-fbv67y-ammmck-node6
       4    hdd  0.02440              osd.4                             up   1.00000  1.00000
       9    hdd  0.02440              osd.9                             up   1.00000  1.00000
      15    hdd  0.02440              osd.15                            up   1.00000  1.00000
      21    hdd  0.02440              osd.21                            up   1.00000  1.00000
      -9         0.09760          host ceph-ci-fbv67y-ammmck-node7
       1    hdd  0.02440              osd.1                             up   1.00000  1.00000
       7    hdd  0.02440              osd.7                             up   1.00000  1.00000
      13    hdd  0.02440              osd.13                            up   1.00000  1.00000
      19    hdd  0.02440              osd.19                            up   1.00000  1.00000
      
    2. Run the ceph orch command to identify the Ceph Object Gateway daemons in the data centers.

      For example,

      ceph orch ps | grep rg
      
      rgw.rgw.1.ceph-ci-fbv67y-ammmck-node4.dmsmex         ceph-ci-fbv67y-ammmck-node4            *:80              running (4h)     10m ago  22h    93.3M        -  19.1.0-55.el9cp  0ee0a0ad94c7  34f27723ccd2
      rgw.rgw.1.ceph-ci-fbv67y-ammmck-node7.pocecp         ceph-ci-fbv67y-ammmck-node7            *:80              running (4h)     10m ago  22h    96.4M        -  19.1.0-55.el9cp  0ee0a0ad94c7  40e4f2a6d4c4
      
    3. Verify if a default read has happened by running the vim command on the Ceph Object Gateway logs.

      For example,

      [ceph: root@host01 /]# vim /var/log/ceph/<fsid>/<ceph-client-rgw>.log
      
      2024-08-28T10:26:05.155+0000 7fe6b03dd640  1 ====== starting new request req=0x7fe6879674a0 =====
      2024-08-28T10:26:05.156+0000 7fe6b03dd640  1 -- 10.0.64.251:0/2235882725 --> [v2:10.0.65.171:6800/4255735352,v1:10.0.65.171:6801/4255735352] -- osd_op(unknown.0.0:1123 11.6d 11:b69767fc:::699c2d80-5683-43c5-bdcd-e8912107c176.24827.3_f1:head [getxattrs,stat] snapc 0=[] ondisk+read+known_if_redirected+supports_pool_eio e4513) -- 0x5639da653800 con 0x5639d804d800

      You can see in the logs that a default read has taken place.

      Important: To be able to view the debug logs, you must first enable debug_ms 1 in the configuration by running the ceph config set command.
      [ceph: root@host01 /]#ceph config set client.rgw.rgw.1.ceph-ci-gune2w-mysx73-node4.dgvrmx    advanced  debug_ms    1/1
      
      [ceph: root@host01 /]#ceph config set client.rgw.rgw.1.ceph-ci-gune2w-mysx73-node7.rfkqqq    advanced  debug_ms    1/1