4.2. 확장 클러스터에서 선호도 읽기
Read Affinity는 해당 데이터 센터 내에 데이터 액세스를 유지하여 영역 간 트래픽을 줄입니다.
다중 영역 환경에 배포된 확장된 클러스터의 경우 읽기 선호도 토폴로지 구현에서는 시작된 데이터 센터 내에서 트래픽을 유지하는 데 도움이 되는 메커니즘을 제공합니다. Ceph Object Gateway 볼륨은 노드의 CRUSH 맵 및 토폴로지 레이블에 정의된 OSD 위치에 따라 OSD에서 클라이언트와 근접하여 데이터를 읽을 수 있습니다.
예를 들어 확장 클러스터에는 Ceph Object Gateway 기본 OSD와 두 데이터 센터 A 및 B에 걸쳐 복제된 OSD가 포함되어 있습니다. 데이터 센터 A의 Object에서 GET
작업을 수행하면 데이터 센터 A의 클라이언트와 가장 가까운 OSD 데이터에서 READ
작업이 수행됩니다.
4.2.1. 지역화된 읽기 수행 링크 복사링크가 클립보드에 복사되었습니다!
확장 클러스터의 복제 풀에서 지역화된 읽기를 수행할 수 있습니다. 복제 풀에서 지역화된 읽기 요청이 생성되면 Ceph는 crush_location에 지정된 클라이언트 위치를 기반으로 클라이언트에 가장 가까운 로컬 OSD를 선택합니다.
사전 요구 사항
- 두 개의 데이터 센터와 Ceph Object Gateway가 둘 다 구성된 확장 클러스터입니다.
- 버킷에 기본 및 복제 OSD가 있는 사용자가 생성되었습니다.
프로세스
지역화된 읽기를 수행하려면
ceph config set
명령을 사용하여 OSD 데몬 구성에서rados_replica_read_policy
를 'localize'로 설정합니다.[ceph: root@host01 /]# ceph config set client.rgw.rgw.1 rados_replica_read_policy localize
[ceph: root@host01 /]# ceph config set client.rgw.rgw.1 rados_replica_read_policy localize
Copy to Clipboard Copied! Toggle word wrap Toggle overflow verification: 다음 단계를 수행하여 OSD 세트에서 지역화된 읽기를 확인합니다.
ceph osd tree
명령을 실행하여 OSD 및 데이터 센터를 확인합니다.예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph orch
명령을 실행하여 데이터 센터의 Ceph Object Gateway 데몬을 식별합니다.예
[ceph: root@host01 /]# 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
[ceph: root@host01 /]# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 로그에서
vim
명령을 실행하여 기본 읽기가 수행되었는지 확인합니다.예
[ceph: root@host01 /]# vim /var/log/ceph/<fsid>/<ceph-client-rgw>.log 2024-08-26T08:07:45.471+0000 7fc623e63640 1 ====== starting new request req=0x7fc5b93694a0 ===== 2024-08-26T08:07:45.471+0000 7fc623e63640 1 -- 10.0.67.142:0/279982082 --> [v2:10.0.66.23:6816/73244434,v1:10.0.66.23:6817/73244434] -- osd_op(unknown.0.0:9081 11.55 11:ab26b168:::3acf4091-c54c-43b5-a495-c505fe545d25.27842.1_f1:head [getxattrs,stat] snapc 0=[] ondisk+read+localize_reads+known_if_redirected+supports_pool_eio e3533) -- 0x55f781bd2000 con 0x55f77f0e8c00
[ceph: root@host01 /]# vim /var/log/ceph/<fsid>/<ceph-client-rgw>.log 2024-08-26T08:07:45.471+0000 7fc623e63640 1 ====== starting new request req=0x7fc5b93694a0 ===== 2024-08-26T08:07:45.471+0000 7fc623e63640 1 -- 10.0.67.142:0/279982082 --> [v2:10.0.66.23:6816/73244434,v1:10.0.66.23:6817/73244434] -- osd_op(unknown.0.0:9081 11.55 11:ab26b168:::3acf4091-c54c-43b5-a495-c505fe545d25.27842.1_f1:head [getxattrs,stat] snapc 0=[] ondisk+read+localize_reads+known_if_redirected+supports_pool_eio e3533) -- 0x55f781bd2000 con 0x55f77f0e8c00
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 지역화된 읽기가 발생한 로그에서 확인할 수 있습니다.
중요디버그 로그를 보려면
ceph config set
명령을 실행하여 구성에서debug_ms 1
을 활성화해야 합니다.[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. 균형 잡힌 읽기 수행 링크 복사링크가 클립보드에 복사되었습니다!
풀에서 균형 잡힌 읽기를 수행하여 데이터 센터에서 균등하게 분산된 OSD를 검색할 수 있습니다. 균형 잡힌 READ가 풀에서 발행되면 읽기 작업이 데이터 센터에 분배되는 모든 OSD에 균등하게 배포됩니다.
사전 요구 사항
- 두 개의 데이터 센터와 Ceph Object Gateway가 둘 다 구성된 확장 클러스터입니다.
- 버킷 및 OSD로 생성된 사용자(기본 및 복제된 OSD)입니다.
프로세스
균형 있는 읽기를 수행하려면
ceph config set
명령을 사용하여 OSD 데몬 구성에서rados_replica_read_policy
를 'balance'로 설정합니다.[ceph: root@host01 /]# ceph config set client.rgw.rgw.1 rados_replica_read_policy balance
[ceph: root@host01 /]# ceph config set client.rgw.rgw.1 rados_replica_read_policy balance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow verification: 다음 단계를 수행하여 OSD 세트에서 읽은 균형을 확인합니다.
ceph osd tree
명령을 실행하여 OSD 및 데이터 센터를 확인합니다.예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph orch
명령을 실행하여 데이터 센터의 Ceph Object Gateway 데몬을 식별합니다.예
[ceph: root@host01 /]# 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
[ceph: root@host01 /]# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 로그에서
vim
명령을 실행하여 균형 잡힌 읽기가 수행되었는지 확인합니다.예
[ceph: root@host01 /]# vim /var/log/ceph/<fsid>/<ceph-client-rgw>.log 2024-08-27T09:32:25.510+0000 7f2a7a284640 1 ====== starting new request req=0x7f2a31fcf4a0 ===== 2024-08-27T09:32:25.510+0000 7f2a7a284640 1 -- 10.0.67.142:0/3116867178 --> [v2:10.0.64.146:6816/2838383288,v1:10.0.64.146:6817/2838383288] -- osd_op(unknown.0.0:268731 11.55 11:ab26b168:::3acf4091-c54c-43b5-a495-c505fe545d25.27842.1_f1:head [getxattrs,stat] snapc 0=[] ondisk+read+balance_reads+known_if_redirected+supports_pool_eio e3554) -- 0x55cd1b88dc00 con 0x55cd18dd6000
[ceph: root@host01 /]# vim /var/log/ceph/<fsid>/<ceph-client-rgw>.log 2024-08-27T09:32:25.510+0000 7f2a7a284640 1 ====== starting new request req=0x7f2a31fcf4a0 ===== 2024-08-27T09:32:25.510+0000 7f2a7a284640 1 -- 10.0.67.142:0/3116867178 --> [v2:10.0.64.146:6816/2838383288,v1:10.0.64.146:6817/2838383288] -- osd_op(unknown.0.0:268731 11.55 11:ab26b168:::3acf4091-c54c-43b5-a495-c505fe545d25.27842.1_f1:head [getxattrs,stat] snapc 0=[] ondisk+read+balance_reads+known_if_redirected+supports_pool_eio e3554) -- 0x55cd1b88dc00 con 0x55cd18dd6000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그에서 균형 잡힌 읽기가 수행되었음을 확인할 수 있습니다.
중요디버그 로그를 보려면
ceph config set
명령을 실행하여 구성에서debug_ms 1
을 활성화해야 합니다.[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. 기본 읽기 수행 링크 복사링크가 클립보드에 복사되었습니다!
풀에서 기본 읽기를 수행하여 기본 데이터 센터에서 데이터를 검색할 수 있습니다. 기본 READ가 풀에서 발행되면 데이터 센터의 각 OSD에서 직접 IO 작업이 검색됩니다.
사전 요구 사항
- 두 개의 데이터 센터와 Ceph Object Gateway가 둘 다 구성된 확장 클러스터입니다.
- 버킷 및 OSD로 생성된 사용자(기본 및 복제된 OSD)입니다.
프로세스
기본 읽기를 수행하려면
ceph config set
명령을 사용하여 OSD 데몬 구성에서rados_replica_read_policy
를 'default'로 설정합니다.예
[ceph: root@host01 /]#ceph config set client.rgw.rgw.1 advanced rados_replica_read_policy default
[ceph: root@host01 /]#ceph config set client.rgw.rgw.1 advanced rados_replica_read_policy default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 센터에서 가장 가까운 OSD의 IO 작업은 GET 작업이 수행될 때 검색됩니다.
verification: 다음 단계를 수행하여 OSD 세트에서 지역화된 읽기를 확인합니다.
ceph osd tree
명령을 실행하여 OSD 및 데이터 센터를 확인합니다.예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph orch
명령을 실행하여 데이터 센터의 Ceph Object Gateway 데몬을 식별합니다.예
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway 로그에서 vim 명령을 실행하여 기본 읽기가 수행되었는지 확인합니다.
예
[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그에서 기본 읽기가 수행되었음을 확인할 수 있습니다.
중요디버그 로그를 보려면
ceph config set
명령을 실행하여 구성에서debug_ms 1
을 활성화해야 합니다.[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow