7.7. エンドポイントの追加による Multicloud Object Gateway パフォーマンスのスケーリング [テクノロジープレビュー]

Multicloud Object Gateway のパフォーマンスは環境によって異なる場合があります。特定のアプリケーションでは、高速なパフォーマンスを必要とする場合があり、これは S3 エンドポイントをスケーリングして簡単に対応できます。

Multicloud Object Gateway リソースプールは、デフォルトで有効にされる 2 種類のサービスを提供する NooBaa デーモンコンテナーのグループです。

  • ストレージサービス
  • S3 エンドポイントサービス

7.7.1. Multicloud Object Gateway での S3 エンドポイント [テクノロジープレビュー]

S3 エンドポイントは、すべての Multicloud Object Gateway がデフォルトで提供するサービスであり、これは Multicloud Object Gateway で負荷の高いデータ消費タスクの大部分を処理します。エンドポイントサービスは、データチャンク、重複排除、圧縮、および暗号化を処理し、Multicloud Object Gateway からのデータ配置の指示を受け入れます。

7.7.2. ストレージノードを使用したスケーリング [テクノロジープレビュー]

前提条件

  • Multicloud Object Gateway へのアクセスのある実行中の OpenShift Container Storage Platform

Multicloud Object Gateway のストレージノードは 1 つ以上の永続ボリュームに割り当てられた NooBaa デーモンコンテナーであり、ローカルオブジェクトサービスデータストレージに使用されます。NooBaa デーモンは Kubernetes ノードにデプロイできます。これは、StatefulSet Pod で構成される Kubernetes プールを作成して実行できます。

手順

  1. Mult-Cloud Object Gateway ユーザーインターフェースの Overview ページで、 Add Storage Resources をクリックします。

    MCG add storage resources button
  2. ウィンドウから Deploy Kubernetes Pool をクリックします。

    MCG deploy kubernetes pool
  3. Create Pool 手順で、今後インストールされるノードのターゲットプールを作成します。

    MCG deploy kubernetes pool create pool
  4. Configure 手順で、要求される Pod 数と各 PV のサイズを設定します。新規 Pod ごとに、1 つの PV が作成されます。

    MCG deploy kubernetes pool configure
  5. Review 手順で、新規プールの詳細を検索し、ローカルまたは外部デプロイメントのいずれかの使用するデプロイメント方法を選択します。ローカルデプロイメントが選択されている場合、Kubernetes ノードはクラスター内にデプロイされます。外部デプロイメントが選択されている場合、外部で実行するための YAML ファイルが提供されます。
  6. すべてのノードは最初の手順で選択したプールに割り当てられ、ResourcesStorage resourcesResource name の下で確認できます。

    MCG storage resources overview

7.7.3. 2 つの異なるクラスター間でのバケットの展開 [テクノロジープレビュー]

前提条件

  • Multicloud Object Gateway へのアクセスのある実行中の OpenShift Container Storage Platform
  • ネットワークアクセスがあり、他のクラスターの Multicloud Object Gateway と通信できる追加の実行中の OpenShift Container Platform

以下の手順では、クラスター A とクラスター B の 2 つのクラスター間でバケットを展開する方法について説明します。2 つの異なるクラスター間でバケットを展開するには、以下を行います。

7.7.3.1. クラスター B での外部 NooBaa デーモンプールの作成

  1. クラスター A の Mult-Cloud Object Gateway ユーザーインターフェースから、Overview ページで Add Storage Resources をクリックします。

    MCG add storage resources button
  2. ウィンドウから Deploy Kubernetes Pool をクリックします。

    MCG deploy kubernetes pool
  3. Create Pool 手順で、今後インストールされるノードのターゲットプールを作成します。

    MCG deploy kubernetes pool create pool
  4. Configure 手順で、要求される Pod 数と各 PV のサイズを設定します。新規 Pod ごとに、1 つの PV が作成されます。

    MCG deploy kubernetes pool configure
  5. Review 手順で Deploy external to the Kubernetes cluster を選択し、Download YAML をクリックします。
  6. クラスター B に接続し、以下のコマンドを実行して NooBaa デーモン Pod をクラスター A にデプロイします。

    oc create namespace external
    oc apply -f <YAML file> -n external

    <YAML file> を直前の手順の YAML ファイルに置き換えます。

7.7.3.2. クラスター B のクラスター A へのバッキングストアとしての追加

  1. クラスター B から以下のコマンドを実行します。

    noobaa status
  2. スクロールダウンして S3 情報を探します: AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY。次の手順のためにこの情報を保持します。

    INFO[0000] #----------------#
    INFO[0000] #- S3 Addresses -#
    INFO[0000] #----------------#
    INFO[0000]
    INFO[0000] ExternalDNS : [s3-noobaa.apps.aa.example.open.com]
    INFO[0000] ExternalIP  : [https://172.29.225.78:443 https://172.29.225.78:443]
    INFO[0000] NodePorts   : [https://192.168.0.11:32530]
    INFO[0000] InternalDNS : [https://s3.noobaa:443]
    INFO[0000] InternalIP  : [https://172.30.147.221:443]
    INFO[0000] PodPorts    : [https://10.1.4.21:6443]
    INFO[0000]
    INFO[0000] #------------------#
    INFO[0000] #- S3 Credentials -#
    INFO[0000] #------------------#
    INFO[0000]
    INFO[0000] AWS_ACCESS_KEY_ID: aTKel9GdBEGs2kBmJszM
    INFO[0000] AWS_SECRET_ACCESS_KEY: 3JEzHc7pCZVOAAnTTTY5bZIG12T1I2a+lHkWlhQ8
    INFO[0000]
  3. クラスター A で、Resources 画面に移動し、Add Cloud Resource をクリックします。

    MCG stretching buckets add cloud resources
  4. Add new connection を選択します。

    MCG stretching buckets add new connection
  5. 直前の手順の Cluster B の S3 エンドポイント情報を入力します。

    MCG stretching buckets aws access info
  6. ウィンドウの手順に従って、クラウドリソースの作成を完了します。

7.7.3.3. クラスター B の NooBaa システムを使用したクラスター A でのフェデレーションされたバケットの作成

  1. Buckets に移動して Create Bucket をクリックしてから、バケット名を設定します。

    MCG stretching buckets create federated bucket
  2. クラスター A のローカルストレージのミラーを使用して作成したバッキングストアを選択します。

    MCG stretching buckets create federated bucket2
  3. フェデレーションされたバケットにアップロードされたオブジェクトは、クラスター A とクラスター B の間でミラーリングされます。

    MCG stretching buckets federated bucket mirroring

7.7.3.4. ローカリティーの最適化に向けたリージョンの割り当て

  1. クラスター A で、Resources に移動します。

    MCG stretching buckets assign resources
  2. 各リソースをクリックし、リージョンを割り当てます。

    MCG stretching buckets assing resources2
  3. 完了後は、以下の画像のようになります。クラスター B の外部エンドポイントおよび NooBaa システムはあるリージョンに置かれ、ローカルバッキングストアは別のリージョンに置かれます。

    MCG stretching buckets final overview

7.7.3.5. クラスターの管理

クラスター A 上のアプリケーションは、ローカル S3 エンドポイントを使用してフェデレーションされたバケットを使用します。

noobaa status
INFO[0000] #----------------#
INFO[0000] #- S3 Addresses -#
INFO[0000] #----------------#
INFO[0000]
INFO[0000] ExternalDNS : [s3-noobaa.apps.aa.example.open.com]
INFO[0000] ExternalIP  : [https://172.29.225.78:443 https://172.29.225.78:443]
INFO[0000] NodePorts   : [https://192.168.0.11:32530]
INFO[0000] InternalDNS : [https://s3.noobaa:443]
INFO[0000] InternalIP  : [https://172.30.147.221:443]
INFO[0000] PodPorts    : [https://10.1.4.21:6443]
INFO[0000]
INFO[0000] #------------------#
INFO[0000] #- S3 Credentials -#
INFO[0000] #------------------#
INFO[0000]
INFO[0000] AWS_ACCESS_KEY_ID: aTKel9GdBEGs2kBmJszM
INFO[0000] AWS_SECRET_ACCESS_KEY: 3JEzHc7pCZVOAAnTTTY5bZIG12T1I2a+lHkWlhQ8
INFO[0000]

クラスター B のアプリケーションは同じ認証情報を使用する必要がありますが、エンドポイント URL はローカルの S3 サービスである必要があります。

oc get service -n external
NAME      TYPE           CLUSTER-IP      EXTERNAL-IP                                           PORT(S)                                     AGE
s3        LoadBalancer   172.30.18.172   s3-external.apps.aa.example.opentlc.com 80:32741/TCP,443:30949/TCP   4m