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
mkfs.ext4 nvme-drive-path
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# mkfs.ext4 /dev/nvme0n1 mount /dev/nvme0n1 /mnt/nvme0n1/
[ceph: root@host01 /]# mkfs.ext4 /dev/nvme0n1 mount /dev/nvme0n1 /mnt/nvme0n1/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시 디렉터리 경로를 만듭니다.
구문
mkdir <nvme-mount-path>/cache-directory-name
mkdir <nvme-mount-path>/cache-directory-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# mkdir /mnt/nvme0n1/rgw_datacache
[ceph: root@host01 /]# mkdir /mnt/nvme0n1/rgw_datacache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
chmod a+rwx nvme-mount-path ; chmod a+rwx rgw_d3n_l1_datacache_persistent_path
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# chmod a+rwx /mnt/nvme0n1 ; chmod a+rwx /mnt/nvme0n1/rgw_datacache/
[ceph: root@host01 /]# chmod a+rwx /mnt/nvme0n1 ; chmod a+rwx /mnt/nvme0n1/rgw_datacache/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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" "
"extra_container_args: "-v" "rgw_d3n_l1_datacache_persistent_path:rgw_d3n_l1_datacache_persistent_path" "
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고단일 호스트에 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"를 예로 들 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rgw-spec.yml의 예::
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RGW 서비스를 재배포합니다.
예제
[ceph: root@host01 /]# ceph orch apply -i rgw-spec.yml
[ceph: root@host01 /]# ceph orch apply -i rgw-spec.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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>
# 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_persistent_path=/mnt/nvme/rgw_datacache/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_d3n_l1_datacache_size=max_size_of_cache_in_bytes
예제
rgw_d3n_l1_datacache_size=10737418240
rgw_d3n_l1_datacache_size=10737418240
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차 예
테스트 오브젝트를 생성합니다.
참고테스트 오브젝트는 캐시하려면 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
[ceph: root@host01 /]# fallocate -l 1G ./1G.dat [ceph: root@host01 /]# s3cmd mb s3://bkt [ceph: root@host01 /]# s3cmd put ./1G.dat s3://bkt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시 생성을 확인합니다. 캐시는 구성된
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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트에 대한 캐시가 생성되면 해당 오브젝트에 대한 다음
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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 예제에서는 캐시 가속을 설명하기 위해 RAM 드라이브(
/dev/shm
)에 씁니다.