4.5. D3N 데이터 캐시
datacenter-Data-Delivery Network(D3N)는 NVMe
와 같은 고속 스토리지를 사용하여 액세스 측의 데이터 집합을 캐시합니다. 이러한 캐싱을 사용하면 빅 데이터 작업에서 엣지의 각 Rados Gateway 노드에서 사용할 수 있는 컴퓨팅 및 빠른 저장소 리소스를 사용할 수 있습니다. Rados 게이트웨이는 백엔드 오브젝트 저장소(OSD)의 캐시 서버 역할을 하며 재사용을 위해 로컬로 데이터를 저장합니다.
Rados 게이트웨이를 다시 시작할 때마다 캐시 디렉터리의 콘텐츠가 제거됩니다.
4.5.1. D3N 캐시 디렉토리 추가
RGW에서 D3N 캐시를 활성화하려면 podman unit.run
에 D3N 캐시 디렉토리도 포함해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 개체 게이트웨이가 설치되어 있어야 합니다.
- 관리 노드에 대한 루트 수준 액세스.
- 각 RGW 노드에 있는 빠른 NVMe 드라이브로 로컬 캐시 스토리지 역할을 합니다.
프로세스
NVMe 드라이브의 마운트 지점을 생성합니다.
구문
mkfs.ext4 nvme-drive-path
예
[ceph: root@host01 /]# mkfs.ext4 /dev/nvme0n1 mount /dev/nvme0n1 /mnt/nvme0n1/
캐시 디렉터리 경로를 만듭니다.
구문
mkdir <nvme-mount-path>/cache-directory-name
예
[ceph: root@host01 /]# mkdir /mnt/nvme0n1/rgw_datacache
nvme-mount-path
및rgw_d3n_l1_datacache_persistent_path
에 +rwx 권한을 제공합니다.구문
chmod a+rwx nvme-mount-path ; chmod a+rwx rgw_d3n_l1_datacache_persistent_path
예
[ceph: root@host01 /]# chmod a+rwx /mnt/nvme0n1 ; chmod a+rwx /mnt/nvme0n1/rgw_datacache/
extra_container_args
를 사용하여 RGW 사양 파일을 생성/수정하여rgw_d3n_l1_datacache_persistent_path
를podman unit.run
에 추가합니다.구문
"extra_container_args: "-v" "rgw_d3n_l1_datacache_persistent_path:rgw_d3n_l1_datacache_persistent_path" "
예
[ceph: root@host01 /]# cat rgw-spec.yml service_type: rgw service_id: rgw.test placement: hosts: host1 host2 extra_container_args: "-v" "/mnt/nvme0n1/rgw_datacache/:/mnt/nvme0n1/rgw_datacache/"
참고단일 호스트에 RGW 인스턴스가 여러 개인 경우 각 인스턴스에 대해 별도의
rgw_d3n_l1_datacache_persistent_path
를 생성해야 하며extra_container_args
에 각 경로를 추가해야 합니다.예:
각 호스트의 RGW 두 개의 인스턴스에 대해
rgw_d3n_l1_data cache_persistent_path:
만듭니다./mnt/nvme0n1/rgw_datacache/rgw1
및/mnt/nvme0n1/rgw_datacache/rgw2
아래에 두 개의 별도의 캐시 디렉토리를rgw 사양 파일의 "extra_container_args"를 예로 들 수 있습니다.
"extra_container_args: "-v" "/mnt/nvme0n1/rgw_datacache/rgw1/:/mnt/nvme0n1/rgw_datacache/rgw1/" "-v" "/mnt/nvme0n1/rgw_datacache/rgw2/:/mnt/nvme0n1/rgw_datacache/rgw2/" "
rgw-spec.yml의 예::
[ceph: root@host01 /]# cat rgw-spec.yml service_type: rgw service_id: rgw.test placement: hosts: host1 host2 count_per_host: 2 extra_container_args: "-v" "/mnt/nvme0n1/rgw_datacache/rgw1/:/mnt/nvme0n1/rgw_datacache/rgw1/" "-v" "/mnt/nvme0n1/rgw_datacache/rgw2/:/mnt/nvme0n1/rgw_datacache/rgw2/"
RGW 서비스를 재배포합니다.
예
[ceph: root@host01 /]# ceph orch apply -i rgw-spec.yml
4.5.2. rados 게이트웨이에서 D3N 구성
기존 RGW에 D3N 데이터 캐시를 구성하여 Red Hat Ceph Storage 클러스터에서 실행되는 빅 데이터 작업의 성능을 향상시킬 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 개체 게이트웨이가 설치되어 있어야 합니다.
- 관리 노드에 대한 루트 수준 액세스.
- 캐시 스토리지 역할을 하는 빠른 NVMe입니다.
필요한 D3N 관련 구성 추가
기존 RGW에서 D3N을 활성화하려면 각 Rados 게이트웨이 클라이언트에 대해 다음 구성을 설정해야 합니다.
구문
# ceph config set <client.rgw> <CONF-OPTION> <VALUE>
-
rgw_d3n_l1_local_datacache_enabled=true
rgw_d3n_l1_datacache_persistent_path= 캐시 디렉터리의경로
예
rgw_d3n_l1_datacache_persistent_path=/mnt/nvme/rgw_datacache/
rgw_d3n_l1_datacache_size=max_size_of_cache_in_bytes
예
rgw_d3n_l1_datacache_size=10737418240
절차 예
테스트 오브젝트를 생성합니다.
참고테스트 오브젝트는 캐시하려면 4MB보다 커야 합니다.
예
[ceph: root@host01 /]# fallocate -l 1G ./1G.dat [ceph: root@host01 /]# s3cmd mb s3://bkt [ceph: root@host01 /]# s3cmd put ./1G.dat s3://bkt
GET
오브젝트를 수행합니다.예
[ceph: root@host01 /]# s3cmd get s3://bkt/1G.dat /dev/shm/1G_get.dat download: 's3://bkt/1G.dat' -> './1G_get.dat' [1 of 1] 1073741824 of 1073741824 100% in 13s 73.94 MB/s done
캐시 생성을 확인합니다. 캐시는 구성된
rgw_d3n_l1_datacache_persistent_path
내에 오브젝트키-이름으로
구성된 이름으로 생성됩니다.예
[ceph: root@host01 /]# ls -lh /mnt/nvme/rgw_datacache rw-rr. 1 ceph ceph 1.0M Jun 2 06:18 cc7f967c-0021-43b2-9fdf-23858e868663.615391.1_shadow.ZCiCtMWeu_19wb100JIEZ-o4tv2IyA_1
오브젝트에 대한 캐시가 생성되면 해당 오브젝트에 대한 다음
GET
작업에서 캐시에서 액세스하면 더 빠르게 액세스할 수 있습니다.예
[ceph: root@host01 /]# s3cmd get s3://bkt/1G.dat /dev/shm/1G_get.dat download: 's3://bkt/1G.dat' -> './1G_get.dat' [1 of 1] 1073741824 of 1073741824 100% in 6s 155.07 MB/s done
위 예제에서는 캐시 가속을 설명하기 위해 RAM 드라이브(
/dev/shm
)에 씁니다.
추가 리소스
- 고가용성 사용에 대한 자세한 내용은 Red Hat Ceph Storage 문제 해결 가이드의 Ceph 하위 시스템 기본 로깅 수준 값 섹션을 참조하십시오.
- 고가용성 사용에 대한 자세한 내용은 Red Hat Ceph Storage 문제 해결 가이드 의 Ceph 로그 이해 섹션을 참조하십시오.