4.5. D3N データキャッシュ
データセンターデータ配信ネットワーク (D3N) は、NVMe
などの高速ストレージを使用して、アクセス側でデータセットをキャッシュします。このようなキャッシュにより、ビッグデータジョブは、エッジサイトの各 Rados Gateway ノードで利用可能なコンピューティングリソースと高速ストレージリソースを使用できるようになります。Rados ゲートウェイは、バックエンドオブジェクトストア (OSD) のキャッシュサーバーとして機能し、再利用のためにデータをローカルに保存します。
Rados ゲートウェイが再起動されるたびに、キャッシュディレクトリーの内容が消去されます。
4.5.1. D3N キャッシュディレクトリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
RGW で D3N キャッシュを有効にするには、podman unit.run
に D3N キャッシュディレクトリーを含める必要もあります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- 管理ノードへのルートレベルのアクセス。
- 各 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 の 2 つのインスタンスの場合、
rgw_d3n_l1_datacache_persistent_path
の下に 2 つの個別の キャッシュディレクトリー、/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 Object Gateway がインストールされている。
- 管理ノードへのルートレベルのアクセス。
- キャッシュストレージとして機能する高速 NVMe。
必要な D3N 関連の設定の追加
既存の RGW で D3N を有効にするには、各 Rados Gateways クライアントに対して次の設定を設定する必要があります。
構文
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=path to the cache directory
例
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
手順の例
テストオブジェクトを作成します。
注記テストオブジェクトはキャッシュするには 4 MB より大きい必要があります。
例
[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
内のオブジェクトkey-name
で構成される名前で作成されます。例
[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
) に書き込みを行っています。