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 ドライブは、ローカルキャッシュストレージとして機能する。

手順

  1. NVMe ドライブのマウントポイントを作成します。

    構文

    mkfs.ext4 nvme-drive-path

    [ceph: root@host01 /]# mkfs.ext4 /dev/nvme0n1
    mount /dev/nvme0n1 /mnt/nvme0n1/

  2. キャッシュディレクトリーのパスを作成します。

    構文

    mkdir <nvme-mount-path>/cache-directory-name

    [ceph: root@host01 /]# mkdir /mnt/nvme0n1/rgw_datacache

  3. 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/

  4. extra_container_args を使用して RGW 仕様ファイルを作成または変更し、rgw_d3n_l1_datacache_persistent_pathpodman 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/"
  5. 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

手順の例

  1. テストオブジェクトを作成します。

    注記

    テストオブジェクトはキャッシュするには 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

  2. オブジェクトの 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

  3. キャッシュの作成を確認します。キャッシュは、設定された 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

  4. オブジェクトのキャッシュが作成されると、そのオブジェクトに対する次の 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 logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.