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
例
[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 の 2 つのインスタンスの場合、
rgw_d3n_l1_datacache_persistent_path
の下に 2 つの個別の キャッシュディレクトリー、/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 Object Gateway がインストールされている。
- 管理ノードへのルートレベルのアクセス。
- キャッシュストレージとして機能する高速 NVMe。
必要な D3N 関連の設定の追加
既存の RGW で D3N を有効にするには、各 Rados Gateways クライアントに対して次の設定を設定する必要があります。
構文
# 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_size=max_size_of_cache_in_bytes
例
rgw_d3n_l1_datacache_size=10737418240
手順の例
テストオブジェクトを作成します。
注記テストオブジェクトはキャッシュするには 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
オブジェクトの
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
内のオブジェクト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
オブジェクトのキャッシュが作成されると、そのオブジェクトに対する次の
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 ログについて セクションを参照してください。