Red Hat OpenStack Platform を使用した OpenShift Data Foundation のデプロイおよび管理


Red Hat OpenShift Data Foundation 4.18

Red Hat OpenStack Platform での OpenShift Data Foundation のデプロイおよび管理手順

Red Hat Storage Documentation Team

概要

Red Hat OpenStack Platform (RHOSP) 上で Red Hat OpenShift Container Platform を使用して Red Hat OpenShift Data Foundation をインストールおよび管理する方法は、このドキュメントをお読みください。
重要
Deploying and managing OpenShift Data Foundation on Red Hat OpenStack Platform is a Technology Preview feature. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があれば、ぜひお知らせください。

フィードバックを送信するには、Jira チケットを作成します。

  1. Jira にログインします。
  2. 上部のナビゲーションバーで Create をクリックします。
  3. Summary フィールドにわかりやすいタイトルを入力します。
  4. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
  5. Components フィールドで Documentation を選択します。
  6. ダイアログの下部にある Create をクリックします。

はじめに

Red Hat OpenShift Data Foundation では、Red Hat OpenStack Platform を使用した既存の Red Hat OpenShift Container Platform (RHOCP) でのデプロイメントをサポートします。

注記

Red Hat OpenStack Platform では、内部および外部の OpenShift Data Foundation クラスターがサポートされます。デプロイメント要件の詳細は、Planning your deploymentを参照してください。

OpenShift Data Foundation をデプロイするには、OpenShift Data Foundation のデプロイの準備の章の要件を確認し、要件に応じて適切なデプロイメントプロセスを実行します。

第1章 OpenShift Data Foundation のデプロイの準備

動的ストレージデバイスを使用して OpenShift Data Foundation を OpenShift Container Platform にデプロイすると、内部クラスターリソースを作成するオプションが提供されます。これにより、ベースサービスの内部プロビジョニングが可能になり、追加のストレージクラスをアプリケーションで使用できるようになります。

OpenShift Data Foundation のデプロイを開始する前に、以下を実行します。

  1. オプション: 外部の鍵管理システム (KMS) HashiCorp Vault を使用してクラスター全体の暗号化を有効にする場合は、次の手順に従います。

  2. オプション: 外部の鍵管理システム (KMS) Thales CipherTrust Manager を使用してクラスター全体の暗号化を有効にする場合は、まず Key Management Interoperability Protocol (KMIP) を有効にして、サーバーで署名付き証明書を使用する必要があります。以下の手順に従ってください。

    1. KMIP クライアントが存在しない場合は作成します。ユーザーインターフェイスから、KMIPClient ProfileAdd Profile を選択します。

      1. プロファイルの作成中に、CipherTrust のユーザー名を Common Name フィールドに追加します。
    2. KMIPRegistration TokenNew Registration Token に移動してトークンを作成します。次のステップのためにトークンをコピーしておきます。
    3. クライアントを登録するために、KMIPRegistered ClientsAdd Client に移動します。Name を指定します。前のステップの Registration Token を貼り付けて、Save をクリックします。
    4. Save Private KeySave Certificate をクリックして、それぞれ秘密鍵とクライアント証明書をダウンロードします。
    5. 新しい KMIP インターフェイスを作成するために、Admin SettingsInterfacesAdd Interface に移動します。

      1. KMIP Key Management Interoperability Protocol を選択し、Next をクリックします。
      2. 空いている Port を選択します。
      3. Network Interfaceall を選択します。
      4. Interface ModeTLS, verify client cert, user name taken from client cert, auth request is optional を選択します。
      5. (オプション) 物理削除を有効にして、鍵が削除されたときにメタデータとマテリアルの両方を削除することができます。これはデフォルトでは無効になっています。
      6. 使用する CA を選択し、Save をクリックします。
    6. サーバー CA 証明書を取得するために、新しく作成されたインターフェイスの右側にあるアクションメニュー (⋮) をクリックし、Download Certificate をクリックします。
    7. オプション: デプロイ時に StorageClass 暗号化を有効にする場合は、キー暗号化キー (KEK) として機能するキーを作成します。

      1. KeysAdd Key に移動します。
      2. Key Name を入力します。
      3. AlgorithmSize をそれぞれ AES256 に設定します。
      4. Create a key in Pre-Active state を有効にして、アクティベーションの日時を設定します。
      5. Key UsageEncryptDecrypt が有効になっていることを確認します。
      6. 新しく作成した鍵の ID をコピーして、デプロイメント中に一意の識別子として使用します。
  3. ノードの最小要件

    OpenShift Data Foundation クラスターは、標準のデプロイメントリソース要件を満たしていない場合に、最小の設定でデプロイされます。プランニングガイドの リソース要件 セクションを参照してください。

  4. 障害復旧の要件

    Red Hat OpenShift Data Foundation でサポートされる障害復旧機能では、障害復旧ソリューションを正常に実装するために以下の前提条件をすべて満たす必要があります。

    詳細な要件は、OpenShift ワークロード用の OpenShift Data Foundation Disaster Recovery の設定 ガイド、および Red Hat Advanced Cluster Management for Kubernetes ドキュメントの インストールガイド要件と推奨事項 セクションを参照してください。

第2章 内部モードでの OpenShift Data Foundation の Red Hat OpenStack Platform へのデプロイ

Red Hat OpenStack Platform のインストーラーでプロビジョニングされるインフラストラクチャー (IPI) によって提供される動的ストレージデバイスを使用して内部モードで OpenShift Data Foundation を OpenShift Container Platform にデプロイすると、内部クラスターリソースを作成できます。これにより、ベースサービスの内部プロビジョニングが可能になり、追加のストレージクラスをアプリケーションで使用できるようになります。

動的ストレージデバイスを使用してデプロイするための以下の手順に進む前に、OpenShift Data Foundation のデプロイの準備 の章の要件を満たしていることを確認してください。

2.1. Red Hat OpenShift Data Foundation Operator のインストール

Red Hat OpenShift Data Foundation Operator は、Red Hat OpenShift Container Platform Operator Hub を使用してインストールできます。

前提条件

  • cluster-admin 権限および Operator インストール権限を持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。
  • Red Hat OpenShift Container Platform クラスターにワーカーノードまたはインフラストラクチャーノードが少なくとも 3 つある。
  • その他のリソース要件は、デプロイメントのプランニング ガイドを参照してください。
重要
  • OpenShift Data Foundation のクラスター全体でのデフォルトノードセレクターを上書きする必要がある場合は、以下のコマンドを使用して、openshift-storage namespace の空のノードセレクターを指定できます (この場合は openshift-storage を作成します)。

    $ oc annotate namespace openshift-storage openshift.io/node-selector=
  • ノードに Red Hat OpenShift Data Foundation リソースのみがスケジュールされるように infra のテイントを設定します。これにより、サブスクリプションコストを節約できます。詳細は、ストレージリソースの管理と割り当て ガイドの Red Hat OpenShift Data Foundation に専用のワーカーノードを使用する方法 セクションを参照してください。

手順

  1. OpenShift Web コンソールにログインします。
  2. Operators → OperatorHub をクリックします。
  3. スクロールするか、OpenShift Data FoundationFilter by keyword ボックスに入力し、OpenShift Data Foundation Operator を検索します。
  4. Install をクリックします。
  5. Install Operator ページで、以下のオプションを設定します。

    1. Channel を stable-4.18 として更新します。
    2. Installation Mode オプションで A specific namespace on the cluster を選択します。
    3. Installed Namespace に Operator recommended namespace openshift-storage を選択します。namespace openshift-storage が存在しない場合は、Operator のインストール時に作成されます。
    4. 承認ストラテジーを Automatic または Manual として選択します。

      Automatic (自動) 更新を選択すると、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。

      Manual 更新を選択すると、OLM は更新要求を作成します。クラスター管理者は、Operator を新しいバージョンに更新できるように更新要求を手動で承認する必要があります。

    5. Console プラグインEnable オプションが選択されていることを確認します。
    6. Install をクリックします。

検証手順

  • Operator が正常にインストールされると、Web console update is available メッセージを含むポップアップがユーザーインターフェイスに表示されます。このポップアップから Refresh web console をクリックして、反映するコンソールを変更します。
  • Web コンソールに移動します。

    • Installed Operators に移動し、OpenShift Data Foundation Operator に、インストールが正常に実行されたことを示す緑色のチェックマークが表示されていることを確認します。
    • Storage に移動し、Data Foundation ダッシュボードが使用可能かどうかを確認します。

2.2. トークン認証方式を使用した KMS でのクラスター全体の暗号化の有効化

トークン認証のために、Vault でキーと値のバックエンドパスおよびポリシーを有効にできます。

前提条件

手順

  1. Vault で Key/Value (KV) バックエンドパスを有効にします。

    Vault KV シークレットエンジン API の場合は、バージョン 1 です。

    $ vault secrets enable -path=odf kv

    Vault KV シークレットエンジン API の場合は、バージョン 2 を使用します。

    $ vault secrets enable -path=odf kv-v2
  2. シークレットに対して書き込み操作または削除操作を実行するようにユーザーを制限するポリシーを作成します。

    echo '
    path "odf/*" {
      capabilities = ["create", "read", "update", "delete", "list"]
    }
    path "sys/mounts" {
    capabilities = ["read"]
    }'| vault policy write odf -
  3. 上記のポリシーに一致するトークンを作成します。

    $ vault token create -policy=odf -format json

2.3. Kubernetes 認証方式を使用した KMS でのクラスター全体の暗号化の有効化

キー管理システム (KMS) を使用して、クラスター全体の暗号化に対して Kubernetes 認証方式を有効にできます。

前提条件

  • Vault への管理者アクセス。
  • 有効な Red Hat OpenShift Data Foundation Advanced サブスクリプション。詳細は、OpenShift Data Foundation サブスクリプションに関するナレッジベースの記事 を参照してください。
  • OpenShift Data Foundation Operator が Operator Hub からインストールされている。
  • バックエンド path として一意のパス名を選択する。これは命名規則に厳密に準拠する必要があります。このパス名は後で変更できません。

手順

  1. サービスアカウントを作成します。

    $ oc -n openshift-storage create serviceaccount <serviceaccount_name>

    ここで、<serviceaccount_name> はサービスアカウントの名前を指定します。

    以下に例を示します。

    $ oc -n openshift-storage create serviceaccount odf-vault-auth
  2. clusterrolebindingsclusterroles を作成します。

    $ oc -n openshift-storage create clusterrolebinding vault-tokenreview-binding --clusterrole=system:auth-delegator --serviceaccount=openshift-storage:_<serviceaccount_name>_

    以下に例を示します。

    $ oc -n openshift-storage create clusterrolebinding vault-tokenreview-binding --clusterrole=system:auth-delegator --serviceaccount=openshift-storage:odf-vault-auth
  3. serviceaccount トークンおよび CA 証明書のシークレットを作成します。

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: odf-vault-auth-token
      namespace: openshift-storage
      annotations:
        kubernetes.io/service-account.name: <serviceaccount_name>
    type: kubernetes.io/service-account-token
    data: {}
    EOF

    ここで、<serviceaccount_name> は、前の手順で作成したサービスアカウントです。

  4. シークレットからトークンと CA 証明書を取得します。

    $ SA_JWT_TOKEN=$(oc -n openshift-storage get secret odf-vault-auth-token -o jsonpath="{.data['token']}" | base64 --decode; echo)
    $ SA_CA_CRT=$(oc -n openshift-storage get secret odf-vault-auth-token -o jsonpath="{.data['ca\.crt']}" | base64 --decode; echo)
  5. OCP クラスターエンドポイントを取得します。

    $ OCP_HOST=$(oc config view --minify --flatten -o jsonpath="{.clusters[0].cluster.server}")
  6. サービスアカウントの発行者を取得します。

    $ oc proxy &
    $ proxy_pid=$!
    $ issuer="$( curl --silent http://127.0.0.1:8001/.well-known/openid-configuration | jq -r .issuer)"
    $ kill $proxy_pid
  7. 前の手順で収集した情報を使用して、Vault で Kubernetes 認証方法を設定します。

    $ vault auth enable kubernetes
    $ vault write auth/kubernetes/config \
              token_reviewer_jwt="$SA_JWT_TOKEN" \
              kubernetes_host="$OCP_HOST" \
              kubernetes_ca_cert="$SA_CA_CRT" \
              issuer="$issuer"
    重要

    発行者が空の場合は Vault で Kubernetes 認証方法を設定します。

    $ vault write auth/kubernetes/config \
              token_reviewer_jwt="$SA_JWT_TOKEN" \
              kubernetes_host="$OCP_HOST" \
              kubernetes_ca_cert="$SA_CA_CRT"
  8. Vault で Key/Value (KV) バックエンドパスを有効にします。

    Vault KV シークレットエンジン API の場合は、バージョン 1 を使用します。

    $ vault secrets enable -path=odf kv

    Vault KV シークレットエンジン API の場合は、バージョン 2 を使用します。

    $ vault secrets enable -path=odf kv-v2
  9. シークレットに対して write または delete 操作を実行するようにユーザーを制限するポリシーを作成します。

    echo '
    path "odf/*" {
      capabilities = ["create", "read", "update", "delete", "list"]
    }
    path "sys/mounts" {
    capabilities = ["read"]
    }'| vault policy write odf -
  10. ロールを作成します。

    $ vault write auth/kubernetes/role/odf-rook-ceph-op \
            bound_service_account_names=rook-ceph-system,rook-ceph-osd,noobaa \
            bound_service_account_namespaces=openshift-storage \
            policies=odf \
            ttl=1440h

    ロール odf-rook-ceph-op は、後でストレージシステムの作成中に KMS 接続の詳細を設定するときに使用されます。

    $ vault write auth/kubernetes/role/odf-rook-ceph-osd \
            bound_service_account_names=rook-ceph-osd \
            bound_service_account_namespaces=openshift-storage \
            policies=odf \
            ttl=1440h

2.3.1. KMS 使用時の鍵のローテーションの有効化と無効化

一般的なセキュリティープラクティスでは、定期的な暗号鍵のローテーションが求められます。KMS を使用する場合、鍵のローテーションを有効または無効にできます。

2.3.1.1. キーローテーションの有効化

鍵のローテーションを有効にするには、PersistentVolumeClaimsNamespace、または StorageClass (優先順位の降順) に keyrotation.csiaddons.openshift.io/schedule: <value> アノテーションを追加します。

<value>@hourly@daily@weekly@monthly、または @yearly のいずれかになります。<value> が空の場合、デフォルトは @weekly になります。以下の例では @weekly を使用しています。

重要

キーのローテーションは、RBD バックアップボリュームでのみサポートされます。

名前空間のアノテーション

$ oc get namespace default
NAME      STATUS   AGE
default   Active   5d2h
$ oc annotate namespace default "keyrotation.csiaddons.openshift.io/schedule=@weekly"
namespace/default annotated

StorageClass のアノテーション

$ oc get storageclass rbd-sc
NAME       PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
rbd-sc     rbd.csi.ceph.com   Delete          Immediate           true                   5d2h
$ oc annotate storageclass rbd-sc "keyrotation.csiaddons.openshift.io/schedule=@weekly"
storageclass.storage.k8s.io/rbd-sc annotated

PersistentVolumeClaims のアノテーション

$ oc get pvc data-pvc
NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
data-pvc  Bound    pvc-f37b8582-4b04-4676-88dd-e1b95c6abf74   1Gi        RWO            default           20h
$ oc annotate pvc data-pvc "keyrotation.csiaddons.openshift.io/schedule=@weekly"
persistentvolumeclaim/data-pvc annotated
$ oc get encryptionkeyrotationcronjobs.csiaddons.openshift.io
NAME                    SCHEDULE    SUSPEND   ACTIVE   LASTSCHEDULE   AGE
data-pvc-1642663516   @weekly                                     3s
$ oc annotate pvc data-pvc "keyrotation.csiaddons.openshift.io/schedule=*/1 * * * *" --overwrite=true
persistentvolumeclaim/data-pvc annotated
$ oc get encryptionkeyrotationcronjobs.csiaddons.openshift.io
NAME                  SCHEDULE    SUSPEND   ACTIVE   LASTSCHEDULE   AGE
data-pvc-1642664617   */1 * * * *                                   3s
2.3.1.2. 鍵のローテーションの無効化

次の鍵のローテーションを無効にできます。

  • ストレージクラスのすべての永続ボリューム要求 (PVC)
  • 特定の PVC

ストレージクラスのすべての PVC の鍵ローテーションを無効にする

すべての PVC の鍵ローテーションを無効にするには、ストレージクラスのアノテーションを更新します。

$ oc get storageclass rbd-sc
NAME       PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
rbd-sc     rbd.csi.ceph.com   Delete          Immediate           true                   5d2h
$ oc annotate storageclass rbd-sc "keyrotation.csiaddons.openshift.io/enable: false"
storageclass.storage.k8s.io/rbd-sc annotated

特定の永続ボリューム要求の鍵ローテーションを無効にする

  1. 鍵のローテーションを無効にする PVC の EncryptionKeyRotationCronJob CR を特定します。

    $ oc get encryptionkeyrotationcronjob -o jsonpath='{range .items[?(@.spec.jobTemplate.spec.target.persistentVolumeClaim=="<PVC_NAME>")]}{.metadata.name}{"\n"}{end}'

    <PVC_NAME> は、無効にする PVC の名前です。

  2. 鍵のローテーションを無効にするには、前の手順の EncryptionKeyRotationCronJob CR に以下を適用します。

    1. csiaddons.openshift.io/state アノテーションを managed から unmanaged に更新します。

      $ oc annotate encryptionkeyrotationcronjob <encryptionkeyrotationcronjob_name> "csiaddons.openshift.io/state=unmanaged" --overwrite=true

      ここで、<encryptionkeyrotationcronjob_name> は EncryptionKeyRotationCronJob CR の名前です。

    2. spec フィールドの下に suspend: true を追加します。

      $ oc patch encryptionkeyrotationcronjob <encryptionkeyrotationcronjob_name> -p '{"spec": {"suspend": true}}' --type=merge.
  3. 保存して終了します。PVC の鍵のローテーションは無効になります。

2.4. OpenShift Data Foundation クラスターの作成

OpenShift Data Foundation Operator のインストール後に OpenShift Data Foundation クラスターを作成します。

前提条件

手順

  1. OpenShift Web コンソールで、Operators → Installed Operators をクリックし、インストールされた Operator を表示します。

    選択された Projectopenshift-storage であることを確認します。

  2. OpenShift Data Foundation Operator をクリックした後、Create StorageSystem をクリックします。
  3. Backing storage ページで、以下を選択します。

    1. Deployment type オプションで Full Deployment を選択します。
    2. Use an existing StorageClass オプションを選択します。
    3. Storage Class を選択します。

      デフォルトでは standard に設定されます。

    4. オプション: 外部 PostgreSQL を使用するには、Use external PostgreSQL チェックボックスを選択します [テクノロジープレビュー]

      これにより、PostgreSQL Pod が単一障害点となるマルチクラウドオブジェクトゲートウェイの高可用性ソリューションが提供されます。

      1. 以下の接続の詳細を指定します。

        • ユーザー名
        • パスワード
        • サーバー名ポート
        • データベース名
      2. Enable TLS/SSL チェックボックスを選択して、Postgres サーバーの暗号化を有効にします。
    5. Next をクリックします。
  4. Capacity and nodes ページで、必要な情報を提供します。

    1. ドロップダウンリストから Requested Capacity の値を選択します。デフォルトで、これは 2 TiB に設定されます。

      注記

      初期ストレージ容量を選択すると、クラスターの拡張は、選択された使用可能な容量を使用してのみ実行されます (raw ストレージの 3 倍)。

    2. Select Nodes セクションで、少なくとも 3 つの利用可能なノードを選択します。
    3. Configure performance セクションで、以下のパフォーマンスプロファイルのいずれかを選択します。

      • Lean

        これは、最小リソースが推奨値よりも少ない、リソースに制約のある環境で使用します。このプロファイルでは、割り当てられる CPU とメモリーの数が少なくなり、リソースの消費が最小限に抑えられます。

      • balanced (デフォルト)

        推奨リソースが利用可能な場合にこれを使用します。このプロファイルは、さまざまなワークロードのリソース消費とパフォーマンスのバランスを提供します。

      • パフォーマンス

        最高のパフォーマンスを得るために十分なリソースがある環境でこれを使用してください。このプロファイルは、負荷の高いワークロードを最適に実行できるように十分なメモリーと CPU を割り当てることで、高いパフォーマンスを実現するように調整されています。

        注記

        StorageSystems タブのオプションメニューから Configure performance オプションを使用して、デプロイメント後にパフォーマンスプロファイルを設定するオプションがあります。

        重要

        リソースプロファイルを選択する前に、クラスター内のリソースの現在の可用性を必ず確認してください。リソースが不十分なクラスターでより高いリソースプロファイルを選択すると、インストールが失敗する可能性があります。

        リソース要件の詳細は、パフォーマンスプロファイルのリソース要件 を参照してください。

    4. オプション: 選択したノードを OpenShift Data Foundation 専用にする場合は、Taint nodes チェックボックスを選択します。

      複数のアベイラビリティーゾーンを持つクラウドプラットフォームの場合は、ノードが異なる場所/アベイラビリティーゾーンに分散されていることを確認します。

      選択したノードが集約された 30 CPU および 72 GiB の RAM の OpenShift Data Foundation クラスターの要件と一致しない場合は、最小クラスターがデプロイされます。ノードの最小要件は、プランニング ガイドの リソース要件 セクションを参照してください。

    5. Next をクリックします。
  5. オプション: Security and network ページで、要件に応じて以下を設定します。

    1. 暗号化を有効にするには、Enable data encryption for block and file storage を選択します。

      1. 暗号化レベルのいずれかまたは両方を選択します。

        • クラスター全体の暗号化

          クラスター全体を暗号化します (ブロックおよびファイル)。

        • StorageClass の暗号化

          暗号化対応のストレージクラスを使用して、暗号化された永続ボリューム (ブロックのみ) を作成します。

      2. オプション: Connect to an external key management service チェックボックスを選択します。これはクラスター全体の暗号化の場合はオプションになります。

        1. Key Management Service Provider ドロップダウンリストから、次のいずれかのプロバイダーを選択し、必要な詳細情報を入力します。

          • Vault

            1. Authentication Method を選択します。

              • トークン認証方式の使用

                • Vault ('https://<hostname or ip>') サーバーの一意の Connection Name、ホストの AddressPort 番号および Token を入力します。
                • Advanced Settings をデプロイメントして、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。

                  • OpenShift Data Foundation 専用かつ特有のキーと値のシークレットパスを Backend Path に入力します。
                • オプション: TLS Server Name および Vault Enterprise Namespace を入力します。
                • それぞれの PEM でエンコードされた証明書ファイルをアップロードし、CA 証明書クライアント証明書、および クライアントの秘密鍵 を提供します。
                • Save をクリックします。
              • Kubernetes 認証方式の使用

                • Vault ('https://<hostname or ip>') サーバーの一意の Connection Name、ホストの AddressPort 番号、および Role 名を入力します。
                • Advanced Settings をデプロイメントして、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。

                  • OpenShift Data Foundation 専用かつ特有のキーと値のシークレットパスを Backend Path に入力します。
                  • 該当する場合は、TLS Server Name および Authentication Path を入力します。
                  • PEM でエンコードされた、該当の証明書ファイルをアップロードし、CA CertificateClient Certificate、および Client Private Key を指定します。
                • Save をクリックします。

                  注記

                  Vault KMS のキーローテーションを有効にする必要がある場合は、ストレージクラスターの作成後に OpenShift Web コンソールで以下のコマンドを実行します。

                  oc patch storagecluster ocs-storagecluster -n openshift-storage --type=json -p '[{"op": "add", "path":"/spec/encryption/keyRotation/enable", "value": true}]'
          • Thales CipherTrust Manager (KMIP を使用)

            1. プロジェクト内のキー管理サービスの一意の Connection Name を入力します。
            2. Address および Port セクションで、Thales CipherTrust Manager の IP と、KMIP インターフェイスが有効になっているポートを入力します。以下に例を示します。

              • Address: 123.34.3.2
              • Port: 5696
            3. Client CertificateCA certificate、および Client Private Key をアップロードします。
            4. StorageClass 暗号化が有効になっている場合は、上記で生成された暗号化および復号化に使用する一意の識別子を入力します。
            5. TLS Server フィールドはオプションであり、KMIP エンドポイントの DNS エントリーがない場合に使用します。たとえば、kmip_all_<port>.ciphertrustmanager.local などです。
    2. 転送中の暗号化を有効にするには、In-transit encryption を選択します。

      1. Network を選択します。
      2. Next をクリックします。
  6. Review and create ページで、設定の詳細を確認します。

    設定を変更するには、Back をクリックします。

  7. Create StorageSystem をクリックします。
注記

デプロイメントに 5 つ以上のノード、ラック、またはルームがあり、デプロイメント内に 5 つ以上の障害ドメインが存在する場合、ラックまたはゾーンの数に基づいて Ceph モニター数を設定できます。OpenShift Web コンソールの通知パネルまたはアラートセンターにアラートが表示され、Ceph モニター数を増やすオプションが示されます。アラートで Configure オプションを使用して、Ceph モニター数を設定できます。詳細は、Ceph モニター数が少ないというアラートの解決 を参照してください。

検証手順

  • インストールされたストレージクラスターの最終ステータスを確認するには、以下を実行します。

    1. OpenShift Web コンソールで、Installed OperatorsOpenShift Data FoundationStorage Systemocs-storagecluster-storagesystemResources の順に移動します。
    2. StorageClusterStatusReady になっており、それの横に緑色のチェックマークが表示されていることを確認します。
  • OpenShift Data Foundation のすべてのコンポーネントが正常にインストールされていることを確認するには、OpenShift Data Foundation デプロイメントの確認 を参照してください。

関連情報

Overprovision Control アラートを有効にするには、モニタリングガイドの アラート を参照してください。

2.5. OpenShift Data Foundation デプロイメントの確認

このセクションを使用して、OpenShift Data Foundation が正しくデプロイされていることを確認します。

2.5.1. Pod の状態の確認

手順

  1. OpenShift Web コンソールから Workloads → Pods をクリックします。
  2. Project ドロップダウンリストから openshift-storage を選択します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

    各コンポーネントの予想される Pod 数と、それがノード数によってどのように変化するかは、次の表を参照してください。

  1. 実行中および完了した Pod のフィルターを設定して、次の Pod が Running および Completed 状態であることを確認します。

コンポーネント

対応する Pod

OpenShift Data Foundation Operator

  • ocs-operator-* (任意のストレージノードに 1 Pod)
  • ocs-metrics-exporter-* (任意のストレージノードに 1 Pod)
  • odf-operator-controller-manager-* (任意のストレージノードに 1 Pod)
  • odf-console-* (任意のストレージノードに 1 Pod)
  • csi-addons-controller-manager-* (任意のストレージノードに 1 Pod)
  • ux-backend-server-* (任意のストレージノードに 1 Pod)
  • * ocs-client-operator-* (任意のストレージノードに 1 Pod)
  • ocs-client-operator-console-* (任意のストレージノードに 1 Pod)
  • ocs-provider-server-* (任意のストレージノードに 1 Pod)

Rook-ceph Operator

rook-ceph-operator-*

(任意のストレージノードに 1 Pod)

Multicloud Object Gateway

  • noobaa-operator-* (任意のストレージノードに 1 Pod)
  • noobaa-core-* (任意のストレージノードに 1 Pod)
  • noobaa-db-pg-* (任意のストレージノードに 1 Pod)
  • noobaa-endpoint-* (任意のストレージノードに 1 Pod)

MON

rook-ceph-mon-*

(ストレージノードに分散する 3 Pod)

MGR

rook-ceph-mgr-*

(任意のストレージノードに 1 Pod)

MDS

rook-ceph-mds-ocs-storagecluster-cephfilesystem-*

(ストレージノードに分散する 2 Pod)

CSI

  • cephfs

    • csi-cephfsplugin-* (各ストレージノードに 1 Pod)
    • csi-cephfsplugin-provisioner-* (ストレージノードに分散する 2 Pod)
  • rbd

    • csi-rbdplugin-* (各ストレージノードに 1 Pod)
    • csi-rbdplugin-provisioner-* (ストレージノードに分散する 2 Pod)

rook-ceph-crashcollector

rook-ceph-crashcollector-*

(各ストレージノードに 1 Pod)

OSD

  • rook-ceph-osd-* (各デバイス用に 1 Pod)
  • rook-ceph-osd-prepare-ocs-deviceset-* (各デバイス用に 1 Pod)

ceph-csi-operator

ceph-csi-controller-manager-* (デバイスごとに 1 つの Pod)

2.5.2. OpenShift Data Foundation クラスターが正常であることを確認

手順

  1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
  2. Overview タブの Status カードで Storage System をクリックし、表示されたポップアップからストレージシステムリンクをクリックします。
  3. Block and File タブの Status カードで、Storage Cluster に緑色のチェックマークが表示されていることを確認します。
  4. Details カードで、クラスター情報が表示されていることを確認します。

ブロックおよびファイルダッシュボードを使用した OpenShift Data Foundation クラスターの正常性は、Monitoring OpenShift Data Foundation を参照してください。

2.5.3. Multicloud Object Gateway が正常であることを確認

手順

  1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
  2. Overview タブの Status カードで Storage System をクリックし、表示されたポップアップからストレージシステムリンクをクリックします。

    1. Object タブの Status card で、Object ServiceData Resiliency の両方に緑色のチェックマークが表示されていることを確認します。
    2. Details カードで、MCG 情報が表示されることを確認します。

ブロックおよびファイルダッシュボードを使用した OpenShift Data Foundation クラスターの健全性は、OpenShift Data Foundation の監視 を参照してください。

重要

Multicloud Object Gateway には、データベースのコピー (NooBaa DB) が 1 つだけあります。つまり、NooBaa DB PVC が破損し、回復できない場合は、Multicloud Object Gateway に存在するアプリケーションデータが完全に失われる可能性があります。このため、Red Hat では NooBaa DB PVC のバックアップを定期的に取ることを推奨しています。NooBaa DB に障害が発生して回復できない場合は、最新のバックアップバージョンに戻すことができます。NooBaa DB をバックアップする手順は、こちらのナレッジベースの記事 の手順に従ってください。

2.5.4. 特定のストレージクラスが存在することを確認

手順

  1. OpenShift Web コンソールの左側のペインから Storage → Storage Classes をクリックします。
  2. 以下のストレージクラスが OpenShift Data Foundation クラスターの作成時に作成されることを確認します。

    • ocs-storagecluster-ceph-rbd
    • ocs-storagecluster-cephfs
    • openshift-storage.noobaa.io

2.6. OpenShift Data Foundation のアンインストール

2.6.1. 内部モードでの OpenShift Data Foundation のアンインストール

内部モードで OpenShift Data Foundation をアンインストールするには、OpenShift Data Foundation のアンインストールに関するナレッジベース記事 を参照してください。

第3章 Deploying OpenShift Data Foundation on Red Hat OpenStack Platform in external mode

Red Hat OpenShift Data Foundation は、外部でホストされる Red Hat Ceph Storage (RHCS) クラスターを Red Hat OpenStack Platform のストレージプロバイダーとして使用できます。詳細は、デプロイメントのプランニング を参照してください。

RHCS クラスターのインストール方法は、インストールガイド を参照してください。

OpenShift Data Foundation を外部モードでデプロイするには、次の手順に従います。

3.1. Red Hat OpenShift Data Foundation Operator のインストール

Red Hat OpenShift Data Foundation Operator は、Red Hat OpenShift Container Platform Operator Hub を使用してインストールできます。

前提条件

  • cluster-admin 権限および Operator インストール権限を持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。
  • Red Hat OpenShift Container Platform クラスターにワーカーノードまたはインフラストラクチャーノードが少なくとも 3 つある。
  • その他のリソース要件は、デプロイメントのプランニング ガイドを参照してください。
重要
  • OpenShift Data Foundation のクラスター全体でのデフォルトノードセレクターを上書きする必要がある場合は、以下のコマンドを使用して、openshift-storage namespace の空のノードセレクターを指定できます (この場合は openshift-storage を作成します)。

    $ oc annotate namespace openshift-storage openshift.io/node-selector=
  • ノードに Red Hat OpenShift Data Foundation リソースのみがスケジュールされるように infra のテイントを設定します。これにより、サブスクリプションコストを節約できます。詳細は、ストレージリソースの管理と割り当て ガイドの Red Hat OpenShift Data Foundation に専用のワーカーノードを使用する方法 セクションを参照してください。

手順

  1. OpenShift Web コンソールにログインします。
  2. Operators → OperatorHub をクリックします。
  3. スクロールするか、OpenShift Data FoundationFilter by keyword ボックスに入力し、OpenShift Data Foundation Operator を検索します。
  4. Install をクリックします。
  5. Install Operator ページで、以下のオプションを設定します。

    1. Channel を stable-4.18 として更新します。
    2. Installation Mode オプションで A specific namespace on the cluster を選択します。
    3. Installed Namespace に Operator recommended namespace openshift-storage を選択します。namespace openshift-storage が存在しない場合は、Operator のインストール時に作成されます。
    4. 承認ストラテジーを Automatic または Manual として選択します。

      Automatic (自動) 更新を選択すると、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。

      Manual 更新を選択すると、OLM は更新要求を作成します。クラスター管理者は、Operator を新しいバージョンに更新できるように更新要求を手動で承認する必要があります。

    5. Console プラグインEnable オプションが選択されていることを確認します。
    6. Install をクリックします。

検証手順

  • Operator が正常にインストールされると、Web console update is available メッセージを含むポップアップがユーザーインターフェイスに表示されます。このポップアップから Refresh web console をクリックして、反映するコンソールを変更します。
  • Web コンソールに移動します。

    • Installed Operators に移動し、OpenShift Data Foundation Operator に、インストールが正常に実行されたことを示す緑色のチェックマークが表示されていることを確認します。
    • Storage に移動し、Data Foundation ダッシュボードが使用可能かどうかを確認します。

3.2. 外部モードでの OpenShift Data Foundation Cluster の作成

OpenShift Data Foundation Operator を Red Hat OpenStack プラットフォームの OpenShift Container Platform にインストールした後に、OpenShift Data Foundation クラスターを新規に作成する必要があります。

前提条件

  • OpenShift Data Foundation 4.18 をデプロイする前に OpenShift Container Platform のバージョンが 4.18 以上であることを確認する。
  • OpenShift Data Foundation Operator がインストールされている。詳細は、Operato Hub を使用した OpenShift Data Foundation Operator のインストール を参照してください。
  • Red Hat OpenShift Data Foundation サポートおよび相互運用性チェッカー のラボにアクセスして外部モードの Red Hat OpenShift Data Foundation および Red Hat Ceph Storage (RHCS) のサポートと相互運用性を確認する。

    • ODF as Self-Managed Service として Service Type を選択します。
    • ドロップダウンから適切な Version を選択します。
    • Versions タブで、Supported RHCS Compatibility タブをクリックします。
  • Red Hat Ceph Storage クラスターを 4.1.1 以前のバージョンから最新リリースに更新し、これが新規にデプロイされたクラスターではない場合は、Red Hat Ceph Storage クラスターで CephFS プールのアプリケーションタイプを手動で設定し、外部モードで CephFS PVC の作成を有効にする。

    詳細は、外部モードでの CephFS PVC 作成のトラブルシューティング を参照してください。

  • Red Hat Ceph Storage では、Ceph Dashboard がインストールされ、設定されている。詳細は、Ceph Dashboard のインストールおよびアクセス を参照してください。
  • Red Hat では、外部の Red Hat Ceph Storage クラスターでは、PG Autoscaler を有効にすることを推奨します。詳細は、Red Hat Ceph Storage ドキュメントの The placement group autoscaler セクションを参照してください。
  • 外部 Ceph クラスターには、既存の RBD プールを使用できるように事前に設定されている。これがない場合は、OpenShift Data Foundation のデプロイメントに進む前に、Red Hat Ceph Storage の管理者に問い合わせてこれを作成してください。Red Hat は、OpenShift Data Foundation クラスターごとに別個のプールを使用することを推奨します。

手順

  1. Operators → Installed Operators をクリックし、インストールされた Operator をすべて表示します。

    選択された Projectopenshift-storage であることを確認します。

  2. Storage Cluster の OpenShift Data FoundationCreate Instance リンクをクリックします。
  3. Mode を External に選択します。デフォルトでは、Internal はデプロイメントモードとして選択されます。

    図3.1 Create Storage Cluster 形式の外部クラスターへの接続

    Screenshot shows connect to external cluster section after you select mode as external where you can download the python script and then upload the RHCS json file.
  4. Connect to external cluster セクションで、Download Script リンクをクリックして、Ceph クラスターの詳細を抽出するために python スクリプトをダウンロードします。
  5. Red Hat Ceph Storage (RHCS) クラスターの詳細を抽出するには、RHCS 管理者に問い合わせた上で Red Hat Ceph Storage でダウンロードした python スクリプトを admin key を使用して実行します。

    1. RHCS ノードで以下のコマンドを実行し、利用可能な引数のリストを表示します。

      # python3 ceph-external-cluster-details-exporter.py --help
      重要

      Red Hat Ceph Storage 4.x クラスターが Red Hat Enterprise Linux 7.x (RHEL 7.x) クラスターにデプロイされている場合は、python3 ではなく python を使用します。

      注記

      MON コンテナー内 (コンテナー化されたデプロイメント) または MON ノード (rpm デプロイメント) からスクリプトを実行することもできます。

    2. RHCS クラスターから外部クラスターの詳細を取得するには、以下のコマンドを実行します。

      # python3 ceph-external-cluster-details-exporter.py \
      --rbd-data-pool-name <rbd block pool name>  [optional arguments]

      以下に例を示します。

      # python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name ceph-rbd --monitoring-endpoint xxx.xxx.xxx.xxx --monitoring-endpoint-port xxxx --rgw-endpoint xxx.xxx.xxx.xxx:xxxx --run-as-user client.ocs

      上記の例は、以下のようになります。

      • --rbd-data-pool-name は、OpenShift Data Foundation でブロックストレージを提供するために使用される必須のパラメーターです。
      • --rgw-endpoint は任意です。OpenShift Data Foundation の Ceph Rados Gateway でオブジェクトストレージをプロビジョニングする場合に、このパラメーターを指定します。<ip_address>:<port> の形式でエンドポイントを指定します。
      • --monitoring-endpoint は任意です。これは、OpenShift Container Platform クラスターから到達できるアクティブな ceph-mgr の IP アドレスです。指定しないと、値が自動的に入力されます。
      • --monitoring-endpoint-port は任意です。これは --monitoring-endpoint で指定された ceph-mgr Prometheus エクスポーターに関連付けられるポートです。指定しないと、値が自動的に入力されます。
      • -- run-as-user は、スクリプトで作成される Ceph ユーザーの名前を指定するために使用されるオプションのパラメーターです。このパラメーターを指定しないと、デフォルトのユーザー名 client.healthchecker が作成されます。新規ユーザーのパーミッションは以下のように設定されます。

        • caps: [mgr] はコマンド設定を許可します。
        • caps: [mon] は r を許可し、コマンド quorum_status を許可し、コマンド version を許可します。
        • caps: [osd] allow rwx pool=RGW_POOL_PREFIX.rgw.meta, allow r pool=.rgw.root, allow rw pool=RGW_POOL_PREFIX.rgw.control, allow rx pool=RGW_POOL_PREFIX.rgw.log, allow x pool=RGW_POOL_PREFIX.rgw.buckets.index

          python スクリプトを使用して生成された JSON 出力の例:

          [{"name": "rook-ceph-mon-endpoints", "kind": "ConfigMap", "data": {"data": "xxx.xxx.xxx.xxx:xxxx", "maxMonId": "0", "mapping": "{}"}}, {"name": "rook-ceph-mon", "kind": "Secret", "data": {"admin-secret": "admin-secret", "fsid": "<fs-id>", "mon-secret": "mon-secret"}}, {"name": "rook-ceph-operator-creds", "kind": "Secret", "data": {"userID": "client.healthchecker", "userKey": "<user-key>"}}, {"name": "rook-csi-rbd-node", "kind": "Secret", "data": {"userID": "csi-rbd-node", "userKey": "<user-key>"}}, {"name": "ceph-rbd", "kind": "StorageClass", "data": {"pool": "ceph-rbd"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxx", "MonitoringPort": "xxxx"}}, {"name": "rook-csi-rbd-provisioner", "kind": "Secret", "data": {"userID": "csi-rbd-provisioner", "userKey": "<user-key>"}}, {"name": "rook-csi-cephfs-provisioner", "kind": "Secret", "data": {"adminID": "csi-cephfs-provisioner", "adminKey": "<admin-key>"}}, {"name": "rook-csi-cephfs-node", "kind": "Secret", "data": {"adminID": "csi-cephfs-node", "adminKey": "<admin-key>"}}, {"name": "cephfs", "kind": "StorageClass", "data": {"fsName": "cephfs", "pool": "cephfs_data"}}, {"name": "ceph-rgw", "kind": "StorageClass", "data": {"endpoint": "xxx.xxx.xxx.xxx:xxxx", "poolPrefix": "default"}}]

    3. JSON 出力を .json 拡張のあるファイルに保存します。

      注記

      OpenShift Data Foundation がシームレスに機能するには、JSON ファイルを使用してアップロードされるパラメーター (RGW エンドポイント、CephFS の詳細、RBD プールなど) が、ストレージクラスターの作成後も RHCS 外部クラスターで変更されないままであることを確認します。

  6. External cluster metadata → Browse をクリックして、JSON ファイルを選択し、アップロードします。

    JSON ファイルの内容が入力され、テキストボックスに表示されます。

    図3.2 JSON ファイルの内容

    Screenshot shows the content of the credentials file after it is uploaded
  7. Create をクリックします。

    Create ボタンは、.json ファイルのアップロード後にのみ有効になります。

検証手順

  1. インストールされたストレージクラスターの最後の Status が緑色のチェックマークと共に Phase: Ready と表示されていることを確認します。

    • Operators → Installed Operators → Storage Cluster のリンクをクリックして、ストレージクラスターのインストールのステータスを表示します。
    • または、Operator Details タブで、Storage Cluster タブをクリックしてステータスを表示できます。
  2. OpenShift Data Foundation、Pod および StorageClass が正常にインストールされていることを確認するには、外部モードの OpenShift Data Foundation インストールの確認 を参照してください。

3.3. 外部モードの OpenShift Data Foundation インストールの確認

このセクションを使用して、OpenShift Data Foundation が正しくデプロイされていることを確認します。

3.3.1. Pod の状態の確認

  1. OpenShift Web コンソールの左側のペインから Workloads → Pods をクリックします。
  2. Project ドロップダウンリストから openshift-storage を選択します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

    各コンポーネントで予想される Pod 数や、これがノード数によってどのように異なるかの詳細は、表3.1「OpenShift Data Foundation コンポーネントに対応する Pod」 を参照してください。

  3. 以下の Pod が実行中であるを確認します。

    表3.1 OpenShift Data Foundation コンポーネントに対応する Pod
    コンポーネント対応する Pod

    OpenShift Data Foundation Operator

    • ocs-operator-* (任意のワーカーノードに 1 Pod)
    • ocs-metrics-exporter-*(任意のワーカーノードに 1 Pod)
    • odf-operator-controller-manager-*(任意のワーカーノードに 1 Pod)
    • odf-console-*(任意のワーカーノードに 1 Pod)
    • csi-addons-controller-manager- * (任意のワーカーノードに 1 つの Pod)

    Rook-ceph Operator

    rook-ceph-operator-*

    (任意のワーカーノードに 1 Pod)

    Multicloud Object Gateway

    • noobaa-operator-* (任意のワーカーノードに 1 Pod)
    • noobaa-core-* (任意のワーカーノードに 1 Pod)
    • noobaa-db-pg-* (任意のワーカーノードに 1 Pod)
    • noobaa-endpoint-* (任意のワーカーノードに 1 Pod)

    CSI

    • cephfs

      • csi-cephfsplugin-* (各ワーカーノードに 1 Pod)
      • csi-cephfsplugin-provisioner-* (ワーカーノードに分散する 2 Pod)
    注記

    MDS が外部クラスターにデプロイされていない場合、csi-cephfsplugin Pod は作成されません。

    • rbd

      • csi-rbdplugin-* (各ワーカーノードに 1 Pod)
      • csi-rbdplugin-provisioner-* (ストレージノードに分散する 2 Pod)

3.3.2. OpenShift Data Foundation クラスターが正常であることの確認

  1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
  2. Overview タブの Status カードで Storage System をクリックし、表示されたポップアップからストレージシステムリンクをクリックします。
  3. Block and File タブの Status カードで、Storage ClusterData Resiliency の両方に緑色のチェックマークが表示されていることを確認します。
  4. Details カードで、以下のようにクラスター情報が表示されていることを確認します。

    + Service Name:: OpenShift Data Foundation Cluster Name:: ocs-external-storagecluster Provider:: OpenStack Mode:: External Version:: ocs-operator-4.17.0

ブロックおよびファイルダッシュボードを使用した OpenShift Data Foundation クラスターの健全性に関する詳細は、OpenShift Data Foundation の監視 を参照してください。

3.3.3. Multicloud Object Gateway が正常であることの確認

  1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
  2. Overview タブの Status カードで Storage System をクリックし、表示されたポップアップからストレージシステムリンクをクリックします。

    1. Object タブの Status カードで、Object ServiceData Resiliency の両方に緑色のチェックマークが表示されていることを確認します。
    2. Details カード で、Multicloud Object Gateway (MCG) 情報が表示されることを確認します。
注記

RADOS Object Gateway は、OpenShift Data Foundation を外部モードでデプロイし、RADOS Object Gateway エンドポイントの詳細が含まれている場合にのみ表示されます。

オブジェクトダッシュボードを使用した OpenShift Data Foundation クラスターの健全性に関する詳細は、OpenShift Data Foundation の監視 を参照してください。

3.3.4. ストレージクラスの作成および一覧表示の確認

  • OpenShift Web コンソールの左側のペインから Storage → Storage Classes をクリックします。
  • 以下のストレージクラスが OpenShift Data Foundation クラスターの作成時に作成されることを確認します。

    • ocs-external-storagecluster-ceph-rbd
    • ocs-external-storagecluster-ceph-rgw
    • ocs-external-storagecluster-cephfs
    • openshift-storage.noobaa.io
注記
  • MDS が外部クラスターにデプロイされていない場合、ocs-external-storagecluster-cephfs ストレージクラスは作成されません。
  • RGW が外部クラスターにデプロイされていない場合、ocs-external-storagecluster-ceph-rgw ストレージクラスは作成されません。

MDS および RGW の詳細は、Red Hat Ceph Storage のドキュメント を参照してください。

3.3.5. Ceph クラスターが接続されていることの確認

以下のコマンドを実行して、OpenShift Data Foundation クラスターが外部の Red Hat Ceph Storage クラスターに接続されているかどうかを確認します。

$ oc get cephcluster -n openshift-storage
NAME                                      DATADIRHOSTPATH     MONCOUNT    AGE      PHASE       MESSAGE                         HEALTH
ocs-external-storagecluster-cephcluster                                   31m15s   Connected   Cluster connected successfully  HEALTH_OK

3.3.6. ストレージクラスターの準備状態の確認

以下のコマンドを実行して、ストレージクラスターが準備状態にあり、External オプションが true に設定されていることを確認します。

$ oc get storagecluster -n openshift-storage
NAME                        AGE      PHASE EXTERNAL  CREATED AT              VERSION
ocs-external-storagecluster 31m15s   Ready true      2021-02-29T20:43:04Z    4.17.0

3.4. OpenShift Data Foundation のアンインストール

3.4.1. 外部ストレージシステムからの OpenShift Data Foundation のアンインストール

このセクションの手順に従って OpenShift Data Foundation をアンインストールします。OpenShift Data Foundation をアンインストールしても、外部クラスターから RBD プールが削除されたり、外部の Red Hat Ceph Storage クラスターがアンインストールされたりしません。

アノテーションのアンインストール

Storage Cluster のアノテーションは、アンインストールプロセスの動作を変更するために使用されます。アンインストールの動作を定義するために、ストレージクラスターに以下の 2 つのアノテーションが導入されました。

  • uninstall.ocs.openshift.io/cleanup-policy: delete
  • uninstall.ocs.openshift.io/mode: graceful
注記

uninstall.ocs.openshift.io/cleanup-policy は外部モードには適用できません。

以下の表は、これらのアノテーションで使用できるさまざまな値に関する情報を示しています。

表3.2 uninstall.ocs.openshift.io アンインストールアノテーションの説明
アノテーションデフォルト動作

cleanup-policy

delete

はい

Rook は物理ドライブおよび DataDirHostPath をクリーンアップします。

cleanup-policy

Retain

いいえ

Rook は物理ドライブおよび DataDirHostPath をクリーンアップ しません

mode

graceful

はい

Rook および NooBaa は PVC および OBC が管理者/ユーザーによって削除されるまでアンインストールプロセスを一時停止します。

mode

forced

いいえ

Rook および NooBaa は、Rook および NooBaa を使用してプロビジョニングされた PVC/OBC がそれぞれ存在している場合でもアンインストールを続行します。

以下のコマンドを使用してアノテーションの値を編集し、アンインストールモードを変更できます。

$ oc annotate storagecluster ocs-external-storagecluster -n openshift-storage uninstall.ocs.openshift.io/mode="forced" --overwrite
storagecluster.ocs.openshift.io/ocs-external-storagecluster annotated

前提条件

  • OpenShift Data Foundation クラスターの状態が正常である。リソースまたはノードの不足により一部の Pod が正常に終了されないと、アンインストールプロセスに失敗する可能性があります。クラスターの状態が正常でない場合は、OpenShift Data Foundation をアンインストールする前に Red Hat カスタマーサポートにお問い合わせください。
  • アプリケーションが OpenShift Data Foundation によって提供されるストレージクラスを使用して永続ボリューム要求 (PVC) またはオブジェクトバケット要求 (OBC) を消費していない。

手順

  1. OpenShift Data Foundation を使用しているボリュームスナップショットを削除します。

    1. すべての namespace からボリュームスナップショットをリスト表示します。

      $ oc get volumesnapshot --all-namespaces
    2. 直前のコマンドの出力から、OpenShift Data Foundation を使用しているボリュームスナップショットを特定し、削除します。

      $ oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
  2. OpenShift Data Foundation を使用している PVC および OBC を削除します。

    デフォルトのアンインストールモード (graceful) では、アンインストーラーは OpenShift Data Foundation を使用するすべての PVC および OBC が削除されるまで待機します。

    PVC を事前に削除せずに Storage Cluster を削除する場合は、アンインストールモードのアノテーションを "forced" に設定し、この手順を省略できます。これを実行すると、孤立した PVC および OBC がシステムに作成されます。

    1. OpenShift Data Foundation を使用して、OpenShift Container Platform モニタリングスタック PVC を削除します。

      OpenShift Data Foundation からのモニタリングスタックの削除 を参照してください。

    2. OpenShift Data Foundation を使用して、OpenShift Container Platform レジストリー PVC を削除します。

      OpenShift Data Foundation からの OpenShift Container Platform レジストリーの削除を参照してください。

    3. OpenShift Data Foundation を使用して、OpenShift Container Platform ロギング PVC を削除します。

      OpenShift Data Foundation からのクラスターロギング Operator の削除を参照してください。

    4. OpenShift Data Foundation を使用してプロビジョニングした PVC および OBC を削除します。

      • 以下に、OpenShift Data Foundation を使用してプロビジョニングされる PVC および OBC を特定するサンプルスクリプトを示します。このスクリプトは、OpenShift Data Foundation により内部で使用される PVC および OBC を無視します。

        #!/bin/bash
        
        RBD_PROVISIONER="openshift-storage.rbd.csi.ceph.com"
        CEPHFS_PROVISIONER="openshift-storage.cephfs.csi.ceph.com"
        NOOBAA_PROVISIONER="openshift-storage.noobaa.io/obc"
        RGW_PROVISIONER="openshift-storage.ceph.rook.io/bucket"
        
        NOOBAA_DB_PVC="noobaa-db"
        NOOBAA_BACKINGSTORE_PVC="noobaa-default-backing-store-noobaa-pvc"
        
        # Find all the OCS StorageClasses
        OCS_STORAGECLASSES=$(oc get storageclasses | grep -e "$RBD_PROVISIONER" -e "$CEPHFS_PROVISIONER" -e "$NOOBAA_PROVISIONER" -e "$RGW_PROVISIONER" | awk '{print $1}')
        
        # List PVCs in each of the StorageClasses
        for SC in $OCS_STORAGECLASSES
        do
                echo "======================================================================"
                echo "$SC StorageClass PVCs and OBCs"
                echo "======================================================================"
                oc get pvc  --all-namespaces --no-headers 2>/dev/null | grep $SC | grep -v -e "$NOOBAA_DB_PVC" -e "$NOOBAA_BACKINGSTORE_PVC"
                oc get obc  --all-namespaces --no-headers 2>/dev/null | grep $SC
                echo
        done
      • OBC を削除します。

        $ oc delete obc <obc name> -n <project name>
      • PVC を削除します。

        $ oc delete pvc <pvc name> -n <project-name>

        クラスターに作成されているカスタムバッキングストア、バケットクラスなどを削除していることを確認します。

  3. Storage Cluster オブジェクトを削除し、関連付けられたリソースが削除されるのを待機します。

    $ oc delete -n openshift-storage storagesystem --all --wait=true
  4. namespace を削除し、削除が完了するまで待機します。openshift-storage がアクティブなプロジェクトである場合は、別のプロジェクトに切り替える必要があります。

    以下に例を示します。

    $ oc project default
    $ oc delete project openshift-storage --wait=true --timeout=5m

    以下のコマンドが NotFound エラーを返すと、プロジェクトが削除されます。

    $ oc get project openshift-storage
    注記

    OpenShift Data Foundation をアンインストールするときに、namespace が完全に削除されずに Terminating 状態のままになる場合は、トラブルシューティングおよびアンインストール時の残りのリソースの削除 の手順を実行して、namespace の終了をブロックしているオブジェクトを特定してください。

  5. OpenShift Data Foundation を使用してプロビジョニングした PV がすべて削除されていることを確認します。Released 状態のままの PV がある場合は、これを削除します。

    $ oc get pv
    $ oc delete pv <pv name>
  6. CustomResourceDefinitions を削除します。

    $ oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io storagesystems.odf.openshift.io --wait=true --timeout=5m
  7. OpenShift Data Foundation が完全にアンインストールされていることを確認するには、以下を実行します。

    1. OpenShift Container Platform Web コンソールで、Storage をクリックします。
    2. OpenShift Data Foundation が Storage に表示されていないことを確認します。

3.4.2. OpenShift Data Foundation からのモニタリングスタックの削除

このセクションでは、モニタリングスタックを OpenShift Data Foundation からクリーンアップします。

モニタリングスタックの設定の一部として作成される PVC は openshift-monitoring namespace に置かれます。

前提条件

  • PVC が OpenShift Container Platform モニタリングスタックを使用できるように設定されている。

    詳細は、モニタリングスタックの設定 を参照してください。

手順

  1. openshift-monitoring namespace で現在実行されている Pod および PVC をリスト表示します。

    $ oc get pod,pvc -n openshift-monitoring
    NAME                           READY   STATUS    RESTARTS   AGE
    pod/alertmanager-main-0         3/3     Running   0          8d
    pod/alertmanager-main-1         3/3     Running   0          8d
    pod/alertmanager-main-2         3/3     Running   0          8d
    pod/cluster-monitoring-
    operator-84457656d-pkrxm        1/1     Running   0          8d
    pod/grafana-79ccf6689f-2ll28    2/2     Running   0          8d
    pod/kube-state-metrics-
    7d86fb966-rvd9w                 3/3     Running   0          8d
    pod/node-exporter-25894         2/2     Running   0          8d
    pod/node-exporter-4dsd7         2/2     Running   0          8d
    pod/node-exporter-6p4zc         2/2     Running   0          8d
    pod/node-exporter-jbjvg         2/2     Running   0          8d
    pod/node-exporter-jj4t5         2/2     Running   0          6d18h
    pod/node-exporter-k856s         2/2     Running   0          6d18h
    pod/node-exporter-rf8gn         2/2     Running   0          8d
    pod/node-exporter-rmb5m         2/2     Running   0          6d18h
    pod/node-exporter-zj7kx         2/2     Running   0          8d
    pod/openshift-state-metrics-
    59dbd4f654-4clng                3/3     Running   0          8d
    pod/prometheus-adapter-
    5df5865596-k8dzn                1/1     Running   0          7d23h
    pod/prometheus-adapter-
    5df5865596-n2gj9                1/1     Running   0          7d23h
    pod/prometheus-k8s-0            6/6     Running   1          8d
    pod/prometheus-k8s-1            6/6     Running   1          8d
    pod/prometheus-operator-
    55cfb858c9-c4zd9                1/1     Running   0          6d21h
    pod/telemeter-client-
    78fc8fc97d-2rgfp                3/3     Running   0          8d
    
    NAME                                                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-0   Bound    pvc-0d519c4f-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-1   Bound    pvc-0d5a9825-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-2   Bound    pvc-0d6413dc-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-prometheus-claim-prometheus-k8s-0        Bound    pvc-0b7c19b0-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-prometheus-claim-prometheus-k8s-1        Bound    pvc-0b8aed3f-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
  2. モニタリング configmap を編集します。

    $ oc -n openshift-monitoring edit configmap cluster-monitoring-config

    以下の例が示すように、OpenShift Data Foundation ストレージクラスを参照する config セクションを削除し、これを保存します。

    Before editing

    .
    .
    .
    apiVersion: v1
    data:
      config.yaml: |
        alertmanagerMain:
          volumeClaimTemplate:
            metadata:
              name: my-alertmanager-claim
            spec:
              resources:
                requests:
                  storage: 40Gi
              storageClassName: ocs-external-storagecluster-ceph-rbd
        prometheusK8s:
          volumeClaimTemplate:
            metadata:
              name: my-prometheus-claim
            spec:
              resources:
                requests:
                  storage: 40Gi
              storageClassName: ocs-external-storagecluster-ceph-rbd
    kind: ConfigMap
    metadata:
      creationTimestamp: "2019-12-02T07:47:29Z"
      name: cluster-monitoring-config
      namespace: openshift-monitoring
      resourceVersion: "22110"
      selfLink: /api/v1/namespaces/openshift-monitoring/configmaps/cluster-monitoring-config
      uid: fd6d988b-14d7-11ea-84ff-066035b9efa8
    
    
    .
    .
    .

    After editing

    .
    .
    .
    apiVersion: v1
    data:
      config.yaml: |
    kind: ConfigMap
    metadata:
      creationTimestamp: "2019-11-21T13:07:05Z"
      name: cluster-monitoring-config
      namespace: openshift-monitoring
      resourceVersion: "404352"
      selfLink: /api/v1/namespaces/openshift-monitoring/configmaps/cluster-monitoring-config
      uid: d12c796a-0c5f-11ea-9832-063cd735b81c
    .
    .
    .

    この例では、alertmanagerMain および prometheusK8s モニタリングコンポーネントは OpenShift Data Foundation PVC を使用しています。

  3. PVC を使用する Pod をリスト表示します。

    この例では、PVC を使用していた alertmanagerMain および prometheusK8s Pod は Terminating 状態にあります。これらの Pod が OpenShift Data Foundation PVC を使用しなくなった後に PVC を削除できます。

    $ oc get pod,pvc -n openshift-monitoring
    NAME                                               READY   STATUS      RESTARTS AGE
    pod/alertmanager-main-0                            3/3     Terminating   0      10h
    pod/alertmanager-main-1                            3/3     Terminating   0      10h
    pod/alertmanager-main-2                            3/3     Terminating   0      10h
    pod/cluster-monitoring-operator-84cd9df668-zhjfn   1/1     Running       0      18h
    pod/grafana-5db6fd97f8-pmtbf                       2/2     Running       0      10h
    pod/kube-state-metrics-895899678-z2r9q             3/3     Running       0      10h
    pod/node-exporter-4njxv                            2/2     Running       0      18h
    pod/node-exporter-b8ckz                            2/2     Running       0      11h
    pod/node-exporter-c2vp5                            2/2     Running       0      18h
    pod/node-exporter-cq65n                            2/2     Running       0      18h
    pod/node-exporter-f5sm7                            2/2     Running       0      11h
    pod/node-exporter-f852c                            2/2     Running       0      18h
    pod/node-exporter-l9zn7                            2/2     Running       0      11h
    pod/node-exporter-ngbs8                            2/2     Running       0      18h
    pod/node-exporter-rv4v9                            2/2     Running       0      18h
    pod/openshift-state-metrics-77d5f699d8-69q5x       3/3     Running       0      10h
    pod/prometheus-adapter-765465b56-4tbxx             1/1     Running       0      10h
    pod/prometheus-adapter-765465b56-s2qg2             1/1     Running       0      10h
    pod/prometheus-k8s-0                               6/6     Terminating   1      9m47s
    pod/prometheus-k8s-1                               6/6     Terminating   1      9m47s
    pod/prometheus-operator-cbfd89f9-ldnwc             1/1     Running       0      43m
    pod/telemeter-client-7b5ddb4489-2xfpz              3/3     Running       0      10h
    
    NAME                                                      STATUS  VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    persistentvolumeclaim/ocs-alertmanager-claim-alertmanager-main-0   Bound    pvc-2eb79797-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-alertmanager-claim-alertmanager-main-1   Bound    pvc-2ebeee54-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-alertmanager-claim-alertmanager-main-2   Bound    pvc-2ec6a9cf-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-prometheus-claim-prometheus-k8s-0        Bound    pvc-3162a80c-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-prometheus-claim-prometheus-k8s-1        Bound    pvc-316e99e2-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
  4. 関連する PVC を削除します。ストレージクラスを使用するすべての PVC を削除してください。

    $ oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m

3.4.3. OpenShift Data Foundation からの OpenShift Container Platform レジストリーの削除を参照してください。

このセクションを使用して、OpenShift Data Foundation から OpenShift Container Platform レジストリーをクリーンアップします。代替ストレージを設定する必要がある場合は、イメージレジストリーを参照してください。

OpenShift Container Platform レジストリーの設定の一部として作成される PVC は openshift-image-registry namespace に置かれます。

前提条件

  • イメージレジストリーは OpenShift Data Foundation PVC を使用するように設定されている。

手順

  1. configs.imageregistry.operator.openshift.io オブジェクトを編集し、storage セクションのコンテンツを削除します。

    $ oc edit configs.imageregistry.operator.openshift.io

    編集前

    .
    .
    .
    storage:
      pvc:
        claim: registry-cephfs-rwx-pvc
    .
    .
    .

    編集後

    .
    .
    .
    storage:
      emptyDir: {}
    .
    .
    .

    この例では、PVC は registry-cephfs-rwx-pvc と呼ばれ、これは安全に削除できます。

  2. PVC を削除します。

    $ oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5m

3.4.4. OpenShift Data Foundation からのクラスターロギング Operator の削除を参照してください。

このセクションでは、クラスターロギング Operator を OpenShift Data Foundation からクリーンアップします。

クラスターロギング Operator の設定の一部として作成される永続ボリューム要求 (PVC) は openshift-logging namespace にあります。

前提条件

  • クラスターロギングインスタンスは、OpenShift Data Foundation PVC を使用するように設定されている。

手順

  1. namespace の ClusterLogging インスタンスを削除します。

    $ oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5m

    openshift-logging namespace の PVC は安全に削除できます。

  2. PVC を削除します。

    $ oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5m
    <pvc-name>
    PVC の名前です。

第4章 内部モードでのスタンドアロンの Multicloud Object Gateway のデプロイ

OpenShift Data Foundation で Multicloud Object Gateway コンポーネントのみをデプロイすると、デプロイメントで柔軟性が高まり、リソース消費を減らすことができます。MCG コンポーネントをデプロイした後、MCG オブジェクトブラウザーを使用してバケットを作成および管理できます。詳細は、MCG オブジェクトブラウザーを使用したバケットの作成と管理 を参照してください。

このセクションでは、以下のステップで、内部モードでスタンドアロンの Multicloud Object Gateway コンポーネントのみをデプロイします。

  • Red Hat OpenShift Data Foundation Operator のインストール
  • スタンドアロンの Multicloud Object Gateway の作成
注記

スタンドアロンの Multicloud Object Gateway コンポーネントのデプロイは、外部モードのデプロイメントではサポートされません。

4.1. Red Hat OpenShift Data Foundation Operator のインストール

Red Hat OpenShift Data Foundation Operator は、Red Hat OpenShift Container Platform Operator Hub を使用してインストールできます。

前提条件

  • cluster-admin 権限および Operator インストール権限を持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。
  • Red Hat OpenShift Container Platform クラスターにワーカーノードまたはインフラストラクチャーノードが少なくとも 3 つある。
  • その他のリソース要件は、デプロイメントのプランニング ガイドを参照してください。
重要
  • OpenShift Data Foundation のクラスター全体でのデフォルトノードセレクターを上書きする必要がある場合は、以下のコマンドを使用して、openshift-storage namespace の空のノードセレクターを指定できます (この場合は openshift-storage を作成します)。

    $ oc annotate namespace openshift-storage openshift.io/node-selector=
  • ノードに Red Hat OpenShift Data Foundation リソースのみがスケジュールされるように infra のテイントを設定します。これにより、サブスクリプションコストを節約できます。詳細は、ストレージリソースの管理と割り当て ガイドの Red Hat OpenShift Data Foundation に専用のワーカーノードを使用する方法 セクションを参照してください。

手順

  1. OpenShift Web コンソールにログインします。
  2. Operators → OperatorHub をクリックします。
  3. スクロールするか、OpenShift Data FoundationFilter by keyword ボックスに入力し、OpenShift Data Foundation Operator を検索します。
  4. Install をクリックします。
  5. Install Operator ページで、以下のオプションを設定します。

    1. Channel を stable-4.18 として更新します。
    2. Installation Mode オプションで A specific namespace on the cluster を選択します。
    3. Installed Namespace に Operator recommended namespace openshift-storage を選択します。namespace openshift-storage が存在しない場合は、Operator のインストール時に作成されます。
    4. 承認ストラテジーを Automatic または Manual として選択します。

      Automatic (自動) 更新を選択すると、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。

      Manual 更新を選択すると、OLM は更新要求を作成します。クラスター管理者は、Operator を新しいバージョンに更新できるように更新要求を手動で承認する必要があります。

    5. Console プラグインEnable オプションが選択されていることを確認します。
    6. Install をクリックします。

検証手順

  • Operator が正常にインストールされると、Web console update is available メッセージを含むポップアップがユーザーインターフェイスに表示されます。このポップアップから Refresh web console をクリックして、反映するコンソールを変更します。
  • Web コンソールに移動します。

    • Installed Operators に移動し、OpenShift Data Foundation Operator に、インストールが正常に実行されたことを示す緑色のチェックマークが表示されていることを確認します。
    • Storage に移動し、Data Foundation ダッシュボードが使用可能かどうかを確認します。

4.2. スタンドアロンの Multicloud Object Gateway の作成

OpenShift Data Foundation のデプロイ時には、スタンドアロンの Multicloud Object Gateway (MCG) コンポーネントのみを作成できます。MCG コンポーネントを作成したら、MCG オブジェクトブラウザーを使用してバケットを作成および管理できます。詳細は、MCG オブジェクトブラウザーを使用したバケットの作成と管理 を参照してください。

前提条件

  • OpenShift Data Foundation Operator がインストールされている。

手順

  1. OpenShift Web コンソールで、OperatorsInstalled Operators をクリックし、インストールされた Operator を表示します。

    選択された Projectopenshift-storage であることを確認します。

  2. OpenShift Data Foundation Operator をクリックした後、Create StorageSystem をクリックします。
  3. Backing storage ページで、以下を選択します。

    1. Deployment typeMulticloud Object Gateway を選択します。
    2. Use an existing StorageClass オプションを選択します。
    3. Next をクリックします。
  4. オプション: Connect to an external key management service チェックボックスを選択します。これはクラスター全体の暗号化の場合はオプションになります。

    1. Key Management Service Provider ドロップダウンリストから、Vault または Thales CipherTrust Manager (using KMIP) を選択します。Vault を選択した場合は、次の手順に進みます。Thales CipherTrust Manager (using KMIP) を選択した場合は、手順 iii に進みます。
    2. Authentication Method を選択します。

      トークン認証方式の使用
      • Vault ('https://<hostname or ip>') サーバーの一意の Connection Name、ホストの AddressPort 番号および Token を入力します。
      • Advanced Settings をデプロイメントして、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。

        • OpenShift Data Foundation 専用かつ特有のキーと値のシークレットパスを Backend Path に入力します。
        • オプション: TLS Server Name および Vault Enterprise Namespace を入力します。
        • PEM でエンコードされた、該当の証明書ファイルをアップロードし、CA CertificateClient Certificate、および Client Private Key を指定します。
        • Save をクリックして、手順 iv に進みます。
      Kubernetes 認証方式の使用
      • Vault ('https://<hostname or ip>') サーバーの一意の Connection Name、ホストの AddressPort 番号、および Role 名を入力します。
      • Advanced Settings をデプロイメントして、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。

        • OpenShift Data Foundation 専用かつ特有のキーと値のシークレットパスを Backend Path に入力します。
        • 該当する場合は、TLS Server Name および Authentication Path を入力します。
        • PEM でエンコードされた、該当の証明書ファイルをアップロードし、CA CertificateClient Certificate、および Client Private Key を指定します。
        • Save をクリックして、手順 iv に進みます。
    3. Thales CipherTrust Manager (using KMIP) を KMS プロバイダーとして使用するには、次の手順に従います。

      1. プロジェクト内のキー管理サービスの一意の Connection Name を入力します。
      2. Address および Port セクションで、Thales CipherTrust Manager の IP と、KMIP インターフェイスが有効になっているポートを入力します。以下に例を示します。

        • Address: 123.34.3.2
        • Port: 5696
      3. Client CertificateCA certificate、および Client Private Key をアップロードします。
      4. StorageClass 暗号化が有効になっている場合は、上記で生成された暗号化および復号化に使用する一意の識別子を入力します。
      5. TLS Server フィールドはオプションであり、KMIP エンドポイントの DNS エントリーがない場合に使用します。たとえば、kmip_all_<port>.ciphertrustmanager.local などです。
    4. Network を選択します。
    5. Next をクリックします。
  5. Review and create ページで、設定の詳細を確認します。

    設定を変更するには、Back をクリックします。

  6. Create StorageSystem をクリックします。

検証手順

OpenShift Data Foundation クラスターが正常であることの確認
  1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
  2. Overview タブの Status カードで Storage System をクリックし、表示されたポップアップからストレージシステムリンクをクリックします。

    1. Object タブの Status card で、Object ServiceData Resiliency の両方に緑色のチェックマークが表示されていることを確認します。
    2. Details カードで、MCG 情報が表示されることを確認します。
Pod の状態の確認
  1. OpenShift Web コンソールから WorkloadsPods をクリックします。
  2. Project ドロップダウンリストから openshift-storage を選択し、以下の Pod が Running 状態にあることを確認します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

    コンポーネント対応する Pod

    OpenShift Data Foundation Operator

    • ocs-operator-* (任意のストレージノードに 1 Pod)
    • ocs-metrics-exporter-* (任意のストレージノードに 1 Pod)
    • odf-operator-controller-manager-* (任意のストレージノードに 1 Pod)
    • odf-console-* (任意のストレージノードに 1 Pod)
    • csi-addons-controller-manager-* (任意のストレージノードに 1 Pod)

    Rook-ceph Operator

    rook-ceph-operator-*

    (任意のストレージノードに 1 Pod)

    Multicloud Object Gateway

    • noobaa-operator-* (任意のストレージノードに 1 Pod)
    • noobaa-core-* (任意のストレージノードに 1 Pod)
    • noobaa-db-pg-* (任意のストレージノードに 1 Pod)
    • noobaa-endpoint-* (任意のストレージノードに 1 Pod)

第5章 OpenShift Data Foundation トポロジーの表示

トポロジーは、OpenShift Data Foundation ストレージクラスターをマップしたた視覚情報をさまざまな抽象化レベルで示し、このような階層の操作も可能にします。このビューでは、ストレージクラスターがさまざまな要素でどのように構成されているかがわかります。

手順

  1. OpenShift Web コンソールで、StorageData FoundationTopology に移動します。

    このビューには、ストレージクラスターとその内部のゾーンが表示されます。ノードがゾーン内 (点線で示されている) にある円形のエンティティーで表示されていることが分かります。各アイテムまたはリソースのラベルには、ステータスやヘルス、アラートの状態などの基本情報が含まれています。

  2. ノードを選択すると、右側のパネルにノードの詳細が表示されます。検索/プレビューデコレーターアイコンをクリックして、ノード内のリソースまたはデプロイメントにアクセスすることもできます。
  3. デプロイメントの詳細を表示します。

    1. ノード上のプレビューデコレーターをクリックします。ノードの上にモーダルウィンドウが表示され、そのノードに関連付けられているすべてのデプロイメントとそのステータスが表示されます。
    2. モデルの左上隅にある Back to main view ボタンをクリックしてモデルを閉じ、前のビューに戻ります。
    3. 特定のデプロイメントを選択すると、そのデプロイメントに関する詳細が表示されます。関連するデータがすべてサイドパネルに表示されます。
  4. Resources タブをクリックして Pod 情報を表示します。このタブを使用すると、問題の理解を深めることができるだけでなく、複数の詳細レベルが提供されるので適切にトラブルシューティングができるようになります。
  5. Pod のリンクをクリックして、OpenShift Container Platform の Pod 情報ページを表示します。リンクは新しいウィンドウで開きます。

第6章 ストレージクラスおよびストレージプール

OpenShift Data Foundation Operator は、使用されるプラットフォームに応じてデフォルトのストレージクラスをインストールします。このデフォルトストレージクラスは Operator によって所有され、制御されるため、削除したり変更したりすることはできません。ただし、ストレージクラスの異なる動作が必要な場合は、カスタムストレージクラスを作成できます。

以下の機能を提供するストレージクラスにマップする複数のストレージプールを作成できます。

  • それぞれに高可用性のあるアプリケーションを有効にして、2 つのレプリカを持つ永続ボリュームを使用できるようにします。これにより、アプリケーションのパフォーマンスが向上する可能性があります。
  • 圧縮が有効にされているストレージクラスを使用して永続ボリューム要求の領域を節約します。
注記

複数のストレージクラスおよび複数のプールは、外部モード の OpenShift Data Foundation クラスターではサポートされません。

注記

単一デバイスセットの最小クラスターで新規作成できるストレージクラスは、2 つだけです。ストレージクラスターを拡張するたびに、新規ストレージクラスを 2 つ追加できます。

6.1. ストレージクラスおよびプールの作成

既存のプールを使用してストレージクラスを作成するか、ストレージクラスの作成中にストレージクラスの新規プールを作成できます。

前提条件

  • OpenShift Container Platform の Web コンソールにログインしており、OpenShift Data Foundation クラスターが Ready 状態にあることを確認します。

手順

  1. StorageStorageClasses をクリックします。
  2. Create Storage Class をクリックします。
  3. ストレージクラスの Name および Description を入力します。
  4. Reclaim Policy は、デフォルトオプションとして Delete に設定されています。この設定を使用します。

    回収ポリシーをストレージクラスで Retain に変更すると、永続ボリューム要求 (PVC) を削除した後でも、永続ボリューム (PV) は Released 状態のままになります。

  5. ボリュームバインディングモード は、デフォルトオプションとして WaitForConsumer に設定されています。

    Immediate オプションを選択すると、PVC の作成時に PV がすぐに作成されます。

  6. 永続ボリュームをプロビジョニングするためのプラグインとして、RBD または CephFS Provisioner を選択します。
  7. ワークロードの Storage system を選択します。
  8. 一覧から既存の ストレージプール を選択するか、新規プールを作成します。

    注記

    双方向レプリケーションデータ保護ポリシーは、デフォルト以外の RBD プールでのみサポートされます。追加のプールを作成することで双方向レプリケーションを使用できます。replica 2 プールのデータの可用性と整合性に関する考慮事項は、ナレッジベースのカスタマーソリューション記事 を参照してください。

    新規プールの作成
    1. Create New Pool をクリックします。
    2. Pool name を入力します。
    3. Data Protection Policy として 2-way-Replication または 3-way-Replication を選択します。
    4. データを圧縮する必要がある場合は、Enable compression を選択します。

      圧縮を有効にするとアプリケーションのパフォーマンスに影響がある可能性があり、書き込まれるデータがすでに圧縮または暗号化されている場合は効果的ではない可能性があります。圧縮を有効にする前に書き込まれたデータは圧縮されません。

    5. Create をクリックして新規ストレージプールを作成します。
    6. プールの作成後に Finish をクリックします。
  9. オプション: Enable Encryption のチェックボックスを選択します。
  10. Create をクリックしてストレージクラスを作成します。

6.2. 永続ボリュームの暗号化のためのストレージクラスの作成

前提条件

ユースケースに基づいて、以下のいずれかの KMS へのアクセスを確実に設定する必要があります。

手順

  1. OpenShift Web コンソールで、StorageStorageClasses に移動します。
  2. Create Storage Class をクリックします。
  3. ストレージクラスの Name および Description を入力します。
  4. Reclaim PolicyDelete または Retain のいずれかを選択します。デフォルトでは、Delete が選択されます。
  5. Volume binding モードImmediate または WaitForFirstConsumer を選択します。WaitForConsumer はデフォルトオプションとして設定されます。
  6. 永続ボリュームをプロビジョニングするのに使用されるプラグインである RBD Provisioner openshift-storage.rbd.csi.ceph.com を選択します。
  7. ボリュームデータが保存される Storage Pool をリストから選択するか、新規プールを作成します。
  8. Enable encryption チェックボックスを選択します。

    • 次のいずれかのオプションを選択し、KMS 接続の詳細を設定します。

      • Choose existing KMS connection: ドロップダウンリストから既存の KMS 接続を選択します。このリストは、csi-kms-connection-details ConfigMap で利用可能な接続の詳細から設定されます。

        1. ドロップダウンから Provider を選択します。
        2. リストから特定のプロバイダーの Key service を選択します。
      • Create new KMS connection: これは、vaulttokenThales CipherTrust Manager (using KMIP) にのみ適用されます。

        1. 次のいずれかの Key Management Service Provider を選択し、必要な詳細情報を入力します。

          • Vault

            1. 一意の Connection Name、Vault サーバーのホストの Address ('https://<ホスト名または IP>')、ポート番号、および Token を入力します。
            2. Advanced Settings をデプロイメントして、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。

              1. OpenShift Data Foundation 専用かつ特有のキーと値のシークレットパスを Backend Path に入力します。
              2. オプション: TLS Server Name および Vault Enterprise Namespace を入力します。
              3. PEM でエンコードされた、該当の証明書ファイルをアップロードし、CA CertificateClient Certificate、および Client Private Key を指定します。
              4. Save をクリックします。
          • Thales CipherTrust Manager (KMIP を使用)

            1. 一意の Connection Name を入力します。
            2. Address および Port セクションで、Thales CipherTrust Manager の IP と、KMIP インターフェイスが有効になっているポートを入力します。たとえば、Address: 123.34.3.2、Port: 5696 などです。
            3. Client CertificateCA certificate、および Client Private Key をアップロードします。
            4. 上記で生成された暗号化および復号化に使用する鍵の Unique Identifier を入力します。
            5. TLS Server フィールドはオプションであり、KMIP エンドポイントの DNS エントリーがない場合に使用します。たとえば、kmip_all_<port>.ciphertrustmanager.local などです。
          • Azure Key Vault (Azure プラットフォーム上の Azure ユーザーのみ)

            クライアント認証の設定とクライアント認証情報の取得は、Microsoft Azure を使用した OpenShift Data Foundation のデプロイ ガイドの OpenShift Data Foundation クラスターの作成 セクションの「前提条件」を参照してください。

            1. プロジェクト内のキー管理サービスの一意の Connection name を入力します。
            2. Azure Vault URL を入力します。
            3. Client ID を入力します。
            4. Tenant ID を入力します。
            5. Certificate ファイルを .PEM 形式でアップロードします。証明書ファイルには、クライアント証明書と秘密鍵が含まれている必要があります。
        2. Save をクリックします。
        3. Create をクリックします。
  9. HashiCorp Vault 設定により、バックエンドパスによって使用されるキー/値 (KV) シークレットエンジン API バージョンの自動検出が許可されない場合は、ConfigMap を編集して vaultBackend パラメーターを追加します。

    注記

    vaultBackend は、バックエンドパスに関連付けられた KV シークレットエンジン API のバージョンを指定するために configmap に追加されるオプションのパラメーターです。値がバックエンドパスに設定されている KV シークレットエンジン API バージョンと一致していることを確認します。一致しない場合は、永続ボリューム要求 (PVC) の作成時に失敗する可能性があります。

    1. 新規に作成されたストレージクラスによって使用されている encryptionKMSID を特定します。

      1. OpenShift Web コンソールで、StorageStorage Classes に移動します。
      2. Storage class 名 → YAML タブをクリックします。
      3. ストレージクラスによって使用されている encryptionKMSID を取得します。

        以下に例を示します。

        encryptionKMSID: 1-vault
    2. OpenShift Web コンソールで WorkloadsConfigMaps に移動します。
    3. KMS 接続の詳細を表示するには、csi-kms-connection-details をクリックします。
    4. ConfigMap を編集します。

      1. アクションメニュー (⋮)Edit ConfigMap をクリックします。
      2. 以前に特定した encryptionKMSID に設定されるバックエンドに応じて、vaultBackend パラメーターを追加します。

        KV シークレットエンジン API バージョン 1 の場合は kv を、KV シークレットエンジン API バージョン 2 の場合は kv-v2 を、それぞれ割り当てることができます。

        以下に例を示します。

         kind: ConfigMap
         apiVersion: v1
         metadata:
           name: csi-kms-connection-details
         [...]
         data:
           1-vault: |-
             {
               "encryptionKMSType": "vaulttokens",
               "kmsServiceName": "1-vault",
               [...]
               "vaultBackend": "kv-v2"
             }
           2-vault: |-
             {
               "encryptionKMSType": "vaulttenantsa",
               [...]
               "vaultBackend": "kv"
             }
      3. 保存をクリックします。

次のステップ

  • ストレージクラスを使用して、暗号化された永続ボリュームを作成できます。詳細は、永続ボリューム要求の管理 を参照してください。

    重要

    Red Hat はテクノロジーパートナーと連携して、このドキュメントをお客様へのサービスとして提供します。ただし、Red Hat では、HashiCorp 製品のサポートを提供していません。この製品に関するテクニカルサポートは、HashiCorp にお問い合わせください。

第7章 OpenShift Container Platform サービスのストレージの設定

OpenShift Data Foundation を使用して、イメージレジストリー、モニタリング、およびロギングなどの OpenShift Container Platform サービスのストレージを提供できます。

これらのサービスのストレージを設定するプロセスは、OpenShift Data Foundation デプロイメントで使用されるインフラストラクチャーによって異なります。

警告

これらのサービスに十分なストレージ容量があることを常に確認してください。これらの重要なサービスのストレージ領域が不足すると、クラスターは動作しなくなり、復元が非常に困難になります。

Red Hat は、これらのサービスのキュレーションおよび保持期間を短く設定することを推奨します。詳細は、OpenShift Container Platform ドキュメントの Curator スケジュールの設定 および 永続ストレージの設定Prometheus メトリクスデータの保持期間の変更 サブセクションを参照してください。

これらのサービスのストレージ領域が不足する場合は、Red Hat カスタマーサポートにお問い合わせください。

7.1. OpenShift Data Foundation を使用するためのイメージレジストリーの設定

OpenShift Container Platform は、クラスターで標準ワークロードとして実行される、組み込まれたコンテナーイメージレジストリーを提供します。通常、レジストリーはクラスター上にビルドされたイメージの公開ターゲットとして、またクラスター上で実行されるワークロードのイメージのソースとして使用されます。

警告

このプロセスでは、データを既存イメージレジストリーから新規イメージレジストリーに移行しません。既存のレジストリーにコンテナーイメージがある場合は、このプロセスを完了する前にレジストリーのバックアップを作成し、このプロセスの完了時にイメージを再登録します。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。
  • OpenShift Data Foundation Operator が openshift-storage namespace にインストールされ、実行されている。OpenShift Web Console で、OperatorsInstalled Operators をクリックしてインストールされた Operator を表示します。
  • イメージレジストリー Operator が openshift-image-registry namespace にインストールされ、実行されている。OpenShift Web コンソールで、AdministrationCluster SettingsCluster Operators をクリックしてクラスター Operator を表示します。
  • プロビジョナー openshift-storage.cephfs.csi.ceph.com を持つストレージクラスが利用可能である。OpenShift Web コンソールで、Storage → StorageClasses をクリックし、利用可能なストレージクラスを表示します。

手順

  1. 使用するイメージレジストリーの永続ボリューム要求を作成します。

    1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
    2. Projectopenshift-image-registry に設定します。
    3. Create Persistent Volume Claim をクリックします。

      1. 上記で取得した利用可能なストレージクラスリストから、プロビジョナー openshift-storage.cephfs.csi.ceph.comStorage Class を指定します。
      2. 永続ボリューム要求の Name を指定します (例: ocs4registry)。
      3. Shared Access (RWX)Access Mode を指定します。
      4. 100 GB 以上の Size を指定します。
      5. Create をクリックします。

        新規永続ボリューム要求のステータスが Bound としてリスト表示されるまで待機します。

  2. クラスターのイメージレジストリーを、新規の永続ボリューム要求を使用するように設定します。

    1. AdministrationCustom Resource Definitions をクリックします。
    2. imageregistry.operator.openshift.io グループに関連付けられた Config カスタムリソース定義をクリックします。
    3. Instances タブをクリックします。
    4. クラスターインスタンスの横にある Action メニュー (⋮)Edit Config をクリックします。
    5. イメージレジストリーの新規永続ボリューム要求を追加します。

      1. 以下を spec: の下に追加し、必要に応じて既存の storage: セクションを置き換えます。

          storage:
            pvc:
              claim: <new-pvc-name>

        以下に例を示します。

          storage:
            pvc:
              claim: ocs4registry
      2. Save をクリックします。
  3. 新しい設定が使用されていることを確認します。

    1. WorkloadsPods をクリックします。
    2. Projectopenshift-image-registry に設定します。
    3. 新規 image-registry-* Pod が Running のステータスと共に表示され、以前の image-registry-* Pod が終了していることを確認します。
    4. 新規の image-registry-* Pod をクリックし、Pod の詳細を表示します。
    5. Volumes までスクロールダウンし、registry-storage ボリュームに新規永続ボリューム要求に一致する Type があることを確認します (例: ocs4registry)。

7.2. OpenShift Data Foundation を使用するためのモニタリングの設定

OpenShift Data Foundation は、Prometheus と Alert Manager で構成されるモニタリングスタックを提供します。

このセクションの手順に従って、OpenShift Data Foundation をモニタリングスタックのストレージとして設定します。

重要

ストレージ領域が不足すると、モニタリングは機能しません。モニタリング用に十分なストレージ容量があることを常に確認します。

Red Hat は、このサービスの保持期間を短く設定することを推奨します。詳細は、OpenShift Container Platform ドキュメントのモニタリングガイドの Prometheus メトリクスデータの保持期間の変更 を参照してください。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。
  • OpenShift Data Foundation Operator が openshift-storage namespace にインストールされ、実行されている。OpenShift Web コンソールで、OperatorsInstalled Operators をクリックし、インストールされた Operator を表示します。
  • モニタリング Operator が openshift-monitoring namespace にインストールされ、実行されている。OpenShift Web コンソールで、AdministrationCluster SettingsCluster Operators をクリックし、クラスター Operator を表示します。
  • プロビジョナー openshift-storage.rbd.csi.ceph.com を持つストレージクラスが利用可能である。OpenShift Web コンソールで、Storage → StorageClasses をクリックし、利用可能なストレージクラスを表示します。

手順

  1. OpenShift Web コンソールで、WorkloadsConfig Maps に移動します。
  2. Project ドロップダウンを openshift-monitoring に設定します。
  3. Create Config Map をクリックします。
  4. 以下の例を使用して新規の cluster-monitoring-config config map を定義します。

    山括弧 (<>) 内の内容を独自の値に置き換えます (例: retention: 24h または storage: 40Gi)。

    storageClassName、をプロビジョナー openshift-storage.rbd.csi.ceph.com を使用する storageclass に置き換えます。以下の例では、storageclass の名前は ocs-storagecluster-ceph-rbd です。

    cluster-monitoring-config config map の例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
          prometheusK8s:
            retention: <time to retain monitoring files, for example 24h>
            volumeClaimTemplate:
              metadata:
                name: ocs-prometheus-claim
              spec:
                storageClassName: ocs-storagecluster-ceph-rbd
                resources:
                  requests:
                    storage: <size of claim, e.g. 40Gi>
          alertmanagerMain:
            volumeClaimTemplate:
              metadata:
                name: ocs-alertmanager-claim
              spec:
                storageClassName: ocs-storagecluster-ceph-rbd
                resources:
                  requests:
                    storage: <size of claim, e.g. 40Gi>

  5. Create をクリックして、config map を保存し、作成します。

検証手順

  1. 永続ボリューム要求が Pod にバインドされていることを確認します。

    1. StoragePersistent Volume Claims に移動します。
    2. Project ドロップダウンを openshift-monitoring に設定します。
    3. 5 つの永続ボリューム要求が Bound (バインド) の状態で表示され、3 つの alertmanager-main-* Pod および 2 つの prometheus-k8s-* Pod に割り当てられていることを確認します。

      図7.1 作成済みのバインドされているストレージのモニタリング

      openshift-monitoring プロジェクトにバインドされる永続ボリューム要求のある 5 つの Pod を示す OpenShift Web コンソールのスクリーンショット
  2. 新規の alertmanager-main-* Pod が Running 状態で表示されることを確認します。

    1. WorkloadsPods に移動します。
    2. 新規の alertmanager-main-* Pod をクリックし、Pod の詳細を表示します。
    3. Volumes にスクロールダウンし、ボリュームに新規永続ボリューム要求のいずれかに一致する Type ocs-alertmanager-claim があることを確認します (例: ocs-alertmanager-claim-alertmanager-main-0)。

      図7.2 alertmanager-main-* Pod に割り当てられた永続ボリューム要求

      altermanager Pod に割り当てられた永続ボリューム要求を表示する OpenShift Web コンソールのスクリーンショット
  3. 新規 prometheus-k8s-* Pod が Running 状態で表示されることを確認します。

    1. 新規 prometheus-k8s-* Pod をクリックし、Pod の詳細を表示します。
    2. Volumes までスクロールダウンし、ボリュームに新規の永続ボリューム要求のいずれかに一致する Type ocs-prometheus-claim があることを確認します (例: ocs-prometheus-claim-prometheus-k8s-0)。

      図7.3 prometheus-k8s-* Pod に割り当てられた永続ボリューム要求

      Prometheus Pod に割り当てられた永続ボリューム要求を示す OpenShift Web コンソールのスクリーンショット

7.3. OpenShift Data Foundation のクラスターロギング

クラスターロギングをデプロイして、各種の OpenShift Container Platform サービスに関するログを集計できます。クラスターロギングのデプロイ方法は、クラスターロギングのデプロイ を参照してください。

OpenShift Container Platform の初回のデプロイメントでは、OpenShift Data Foundation はデフォルトで設定されず、OpenShift Container Platform クラスターはノードから利用可能なデフォルトストレージのみに依存します。OpenShift ロギング (ElasticSearch) のデフォルト設定を OpenShift Data Foundation で対応されるように編集し、OpenShift Data Foundation でサポートされるロギング (Elasticsearch) を設定できます。

重要

これらのサービスに十分なストレージ容量があることを常に確認してください。これらの重要なサービスのストレージ領域が不足すると、ロギングアプリケーションは動作しなくなり、復元が非常に困難になります。

Red Hat は、これらのサービスのキュレーションおよび保持期間を短く設定することを推奨します。詳細は、OpenShift Container Platform ドキュメントの クラスターロギングキュレーター を参照してください。

これらのサービスのストレージ領域が不足している場合は、Red Hat カスタマーポータルにお問い合わせください。

7.3.1. 永続ストレージの設定

ストレージクラス名およびサイズパラメーターを使用して、Elasticsearch クラスターの永続ストレージクラスおよびサイズを設定できます。Cluster Logging Operator は、これらのパラメーターに基づいて、Elasticsearch クラスターの各データノードに永続ボリューム要求を作成します。以下に例を示します。

spec:
    logStore:
      type: "elasticsearch"
      elasticsearch:
        nodeCount: 3
        storage:
          storageClassName: "ocs-storagecluster-ceph-rbd”
          size: "200G"

この例では、クラスター内の各データノードが 200GiBocs-storagecluster-ceph-rbd ストレージを要求する永続ボリューム要求にバインドされるように指定します。それぞれのプライマリーシャードは単一のレプリカによってサポートされます。シャードのコピーはすべてのノードにレプリケートされ、常に利用可能となり、冗長性ポリシーにより 2 つ以上のノードが存在する場合にコピーを復元できます。Elasticsearch レプリケーションポリシーの詳細は、クラスターロギングのデプロイおよび設定についてElasticsearch レプリケーションポリシー を参照してください。

注記

ストレージブロックを省略すると、デプロイメントはデフォルトのストレージでサポートされます。以下に例を示します。

spec:
    logStore:
      type: "elasticsearch"
      elasticsearch:
        nodeCount: 3
        storage: {}

詳細は、クラスターロギングの設定 を参照してください。

7.3.2. OpenShift Data Foundation を使用するためのクラスターロギングの設定

このセクションの手順に従って、OpenShift Data Foundation を OpenShift クラスターロギングのストレージとして設定します。

注記

OpenShift Data Foundation では、ロギングを初めて設定する際に、すべてのログを取得できます。ただし、ロギングをアンインストールして再インストールすると、古いログが削除され、新しいログのみが処理されます。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。
  • OpenShift Data Foundation Operator が openshift-storage namespace にインストールされ、実行されている。
  • Cluster Logging Operator が openshift-logging namespace にインストールされ、実行されている。

手順

  1. OpenShift Web コンソールの左側のペインから Administration → Custom Resource Definitions をクリックします。
  2. Custom Resource Definitions ページで、ClusterLogging をクリックします。
  3. Custom Resource Definition Overview ページで、Actions メニューから View Instances を選択するか、Instances タブをクリックします。
  4. Cluster Logging ページで、Create Cluster Logging をクリックします。

    データを読み込むためにページの更新が必要になる場合があります。

  5. YAML において、storageClassName、をプロビジョナー openshift-storage.rbd.csi.ceph.com を使用する storageclass に置き換えます。以下の例では、storageclass の名前は ocs-storagecluster-ceph-rbd です。

    apiVersion: "logging.openshift.io/v1"
    kind: "ClusterLogging"
    metadata:
      name: "instance"
      namespace: "openshift-logging"
    spec:
      managementState: "Managed"
      logStore:
        type: "elasticsearch"
        elasticsearch:
          nodeCount: 3
          storage:
            storageClassName: ocs-storagecluster-ceph-rbd
            size: 200G # Change as per your requirement
          redundancyPolicy: "SingleRedundancy"
      visualization:
        type: "kibana"
        kibana:
          replicas: 1
      curation:
        type: "curator"
        curator:
          schedule: "30 3 * * *"
      collection:
        logs:
          type: "fluentd"
          fluentd: {}

    OpenShift Data Foundation ノードにテイントのマークが付けられている場合は、ロギング用に daemonset Pod のスケジューリングを有効にするために容認を追加する必要があります。

    spec:
    [...]
      collection:
        logs:
          fluentd:
            tolerations:
            - effect: NoSchedule
              key: node.ocs.openshift.io/storage
              value: 'true'
          type: fluentd
  6. Save をクリックします。

検証手順

  1. 永続ボリューム要求が elasticsearch Pod にバインドされていることを確認します。

    1. StoragePersistent Volume Claims に移動します。
    2. Project ドロップダウンを openshift-logging に設定します。
    3. 永続ボリューム要求が elasticsearch-* Pod に割り当てられ、Bound (バインド) の状態で表示されることを確認します。

      図7.4 作成済みのバインドされたクラスターロギング

      Elasticsearch Pod に割り当てられる、バインド状態の永続ボリューム要求のスクリーンショット
  2. 新規クラスターロギングが使用されていることを確認します。

    1. Workload → Pods をクリックします。
    2. プロジェクトを openshift-logging に設定します。
    3. 新規の elasticsearch-* Pod が Running 状態で表示されることを確認します。
    4. 新規の elasticsearch-* Pod をクリックし、Pod の詳細を表示します。
    5. Volumes までスクロールダウンし、elasticsearch ボリュームに新規永続ボリューム要求に一致する Type があることを確認します (例: elasticsearch-elasticsearch-cdm-9r624biv-3)。
    6. 永続ボリューム要求の名前をクリックし、PersistentVolumeClaim Overview ページでストレージクラス名を確認します。
注記

Elasticsearch Pod に割り当てられる PV の詳細シナリオを回避するために、キュレーターの時間を短く設定して使用するようにしてください。

Curator を、保持設定に基づいて Elasticsearch データを削除するように設定できます。以下の 5 日間のインデックスデータの保持期間をデフォルトとして設定することが推奨されます。

config.yaml: |
    openshift-storage:
      delete:
        days: 5

詳細は、Elasticsearch データのキュレーション を参照してください。

注記

永続ボリューム要求がサポートするクラスターロギングをアンインストールするには、それぞれのデプロイメントガイドのアンインストールに関する章に記載されている、クラスターロギング Operator の OpenShift Data Foundation からの削除に関する手順を使用します。

第8章 OpenShift Data Foundation を使用した OpenShift Container Platform アプリケーションのサポート

OpenShift Container Platform のインストール時に OpenShift Data Foundation を直接インストールすることはできません。ただし、Operator Hub を使用して OpenShift Data Foundation を既存の OpenShift Container Platform にインストールし、OpenShift Container Platform アプリケーションを OpenShift Data Foundation でサポートされるように設定することができます。

前提条件

  • OpenShift Container Platform がインストールされ、OpenShift Web コンソールへの管理者アクセスがある。
  • OpenShift Data Foundation が openshift-storage namespace にインストールされ、実行されている。

手順

  1. OpenShift Web コンソールで、以下のいずれかを実行します。

    • Workloads → Deployments をクリックします。

      Deployments ページで、以下のいずれかを実行できます。

      • 既存のデプロイメントを選択し、Action メニュー (⋮) から Add Storage オプションをクリックします。
      • 新規デプロイメントを作成してからストレージを追加します。

        1. Create Deployment をクリックして新規デプロイメントを作成します。
        2. 要件に応じて YAML を編集し、デプロイメントを作成します。
        3. Create をクリックします。
        4. ページ右上の Actions ドロップダウンメニューから Add Storage を選択します。
    • Workloads → Deployment Configs をクリックします。

      Deployment Configs ページで、以下のいずれかを実行できます。

      • 既存のデプロイメントを選択し、Action メニュー (⋮) から Add Storage オプションをクリックします。
      • 新規デプロイメントを作成してからストレージを追加します。

        1. Create Deployment Config をクリックし、新規デプロイメントを作成します。
        2. 要件に応じて YAML を編集し、デプロイメントを作成します。
        3. Create をクリックします。
        4. ページ右上の Actions ドロップダウンメニューから Add Storage を選択します。
  2. Add Storage ページで、以下のオプションのいずれかを選択できます。

    • Use existing claim オプションをクリックし、ドロップダウンリストから適切な PVC を選択します。
    • Create new claim オプションをクリックします。

      1. Storage Class ドロップダウンリストから適切な CephFS または RBD ストレージクラスを選択します。
      2. の名前を指定します。
      3. アクセスモード ReadWriteOnce (RWO) または ReadWriteMany (RWX) を選択します。

        注記

        ReadOnlyMany (ROX) はサポートされないため、非アクティブになります。

      4. 必要なストレージ容量のサイズを選択します。

        注記

        ブロック PV を拡張することはできますが、永続ボリューム要求の作成後にストレージ容量のサイズを縮小することはできません。

  3. コンテナー内のマウントパスボリュームのマウントパスとサブパス (必要な場合) を指定します。
  4. Save をクリックします。

検証手順

  1. 設定に応じて、以下のいずれかを実行します。

    • Workloads → Deployments をクリックします。
    • Workloads → Deployment Configs をクリックします。
  2. 必要に応じてプロジェクトを設定します。
  3. ストレージを追加したデプロイメントをクリックして、デプロイメントの詳細を表示します。
  4. Volumes までスクロールダウンし、デプロイメントに、割り当てた永続ボリューム要求に一致する Type があることを確認します。
  5. 永続ボリューム要求の名前をクリックし、Persistent Volume Claim Overview ページでストレージクラス名を確認します。

第9章 Red Hat OpenShift Data Foundation に専用のワーカーノードを使用する方法

Red Hat OpenShift Container Platform サブスクリプションには、OpenShift Data Foundation サブスクリプションが必要です。ただし、インフラストラクチャーノードを使用して OpenShift Data Foundation リソースをスケジュールしている場合は、OpenShift Container Platform のサブスクリプションコストを節約できます。

マシン API サポートの有無にかかわらず複数の環境全体で一貫性を維持することが重要です。そのため、いずれの場合でも、worker または infra のいずれかのラベルが付けられたノードの特別なカテゴリーや、両方のロールを使用できるようにすることが強く推奨されます。詳細は、「インフラストラクチャーノードの手動作成」 セクションを参照してください。

9.1. インフラストラクチャーノードの仕組み

OpenShift Data Foundation で使用するインフラストラクチャーノードにはいくつかの属性があります。ノードが RHOCP エンタイトルメントを使用しないようにするには、infra ノードロールのラベルが必要です。infra ノードロールラベルは、OpenShift Data Foundation を実行するノードには OpenShift Data Foundation エンタイトルメントのみが必要となるようにします。

  • node-role.kubernetes.io/infra のラベル

infra ノードが OpenShift Data Foundation リソースのみをスケジュールできるようにするには、NoSchedule 効果のある OpenShift Data Foundation テイントを追加する必要もあります。

  • node.ocs.openshift.io/storage="true" のテイント

RHOCP サブスクリプションコストが適用されないように、ラベルは RHOCP ノードを infra ノードとして識別します。テイントは、OpenShift Data Foundation 以外のリソースがテイントのマークが付けられたノードでスケジュールされないようにします。

注記

ノードにストレージテイントを追加するには、openshift-dns daemonset などの他の daemonset Pod の容認処理が必要になる場合があります。容認を管理する方法は、ナレッジベースの記事 Openshift-dns daemonsets doesn’t include toleration to run on nodes with taints を参照してください。

OpenShift Data Foundation サービスの実行に使用されるインフラストラクチャーノードで必要なテイントおよびラベルの例:

    spec:
      taints:
      - effect: NoSchedule
        key: node.ocs.openshift.io/storage
        value: "true"
      metadata:
        creationTimestamp: null
        labels:
          node-role.kubernetes.io/worker: ""
          node-role.kubernetes.io/infra: ""
          cluster.ocs.openshift.io/openshift-storage: ""

9.2. インフラストラクチャーノードを作成するためのマシンセット

マシン API が環境でサポートされている場合は、インフラストラクチャーノードのプロビジョニングを行うマシンセットのテンプレートにラベルを追加する必要があります。マシン API が作成するノードに手動でラベルを追加するアンチパターンを回避します。これを実行することは、デプロイメントで作成される Pod にラベルを追加することに似ています。いずれの場合も、Pod/ノードに障害が発生すると、交換された Pod/ノードには適切なラベルがありません。

注記

EC2 環境では、3 つのマシンセットが必要です。それぞれは、異なるアベイラビリティーゾーン (us-east-2a、us-east-2b、us-east-2c など) でインフラストラクチャーノードをプロビジョニングするように設定されます。現時点で、OpenShift Data Foundation は 4 つ以上のアベイラビリティーゾーンへのデプロイをサポートしていません。

以下の Machine Set テンプレートのサンプルは、インフラストラクチャーノードに必要な適切なテイントおよびラベルを持つノードを作成します。これは OpenShift Data Foundation サービスを実行するために使用されます。

  template:
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: kb-s25vf
        machine.openshift.io/cluster-api-machine-role: worker
        machine.openshift.io/cluster-api-machine-type: worker
        machine.openshift.io/cluster-api-machineset: kb-s25vf-infra-us-west-2a
    spec:
      taints:
      - effect: NoSchedule
        key: node.ocs.openshift.io/storage
        value: "true"
      metadata:
        creationTimestamp: null
        labels:
          node-role.kubernetes.io/infra: ""
          cluster.ocs.openshift.io/openshift-storage: ""
重要

インフラストラクチャーノードにテイントを追加する場合は、fluentd Pod など、他のワークロードのテイントにも容認を追加する必要があります。詳細は、Red Hat ナレッジベースのソリューション記事 OpenShift 4 のインフラストラクチャーノード を参照してください。

9.3. インフラストラクチャーノードの手動作成

マシン API が環境内でサポートされない場合にのみ、ラベルはノードに直接適用される必要があります。手動作成では、OpenShift Data Foundation サービスをスケジュールするために少なくとも 3 つの RHOCP ワーカーノードが利用可能であり、これらのノードに CPU およびメモリーリソースが十分にある必要があります。RHOCP サブスクリプションコストの発生を防ぐには、以下が必要です。

oc label node <node> node-role.kubernetes.io/infra=""
oc label node <node> cluster.ocs.openshift.io/openshift-storage=""

また、NoSchedule OpenShift Data Foundation テイントを追加することも、infra ノードが OpenShift Data Foundation リソースのみをスケジュールし、その他の OpenShift Data Foundation ワークロードを拒否できるようにするために必要です。

oc adm taint node <node> node.ocs.openshift.io/storage="true":NoSchedule
警告

ノードロール node-role.kubernetes.io/worker="" は削除しないでください。

node-role.kubernetes.io/worker="" ノードロールを削除すると、OpenShift スケジューラーおよび MachineConfig リソースの両方に変更が加えられない場合に問題が発生する可能性があります。

すでに削除されている場合は、各 infra ノードに再度追加する必要があります。node-role.kubernetes.io/infra="" ノードロールおよび OpenShift Data Foundation テイントを追加するだけで、エンタイトルメント免除要件を満たすことができます。

9.4. ユーザーインターフェイスからノードのテイント

このセクションでは、OpenShift Data Foundation のデプロイ後にノードをテイントする手順を説明します。

手順

  1. OpenShift Web Console で、ComputeNodes をクリックし、テイントする必要のあるノードを選択します。
  2. Details ページで、Edit taints をクリックします。
  3. Key <nodes.openshift.ocs.io/storage>、Value <true>、および Effect<Noschedule> フィールドに値を入力します。
  4. Save をクリックします。

検証手順

  • 次の手順に従って、ノードが正常にテイントされたことを確認します。

    • ComputeNodes に移動します。
    • ノードを選択してステータスを確認し、YAML タブをクリックします。
    • specs セクションで、次のパラメーターの値を確認します。

      Taints:
        Key: node.openshift.ocs.io/storage
        Value: true
        Effect: Noschedule

関連情報

詳細は、VMware vSphere での OpenShift Data Foundation クラスターの作成 を参照してください。

第10章 ストレージノードのスケーリング

OpenShift Data Foundation のストレージ容量をスケーリングするには、以下のいずれかを実行できます。

  • ストレージノードのスケールアップ: 既存の OpenShift Data Foundation ワーカーノードに対してストレージ容量を追加します。
  • ストレージノードのスケールアウト: ストレージ容量を含む新規ワーカーノードを追加します。

10.1. ストレージノードのスケーリングの要件

ストレージノードをスケーリングする前に、以下のセクションを参照して、特定の Red Hat OpenShift Data Foundation インスタンスのノード要件を把握してください。

警告

常にストレージ容量が十分にあることを確認してください。

ストレージが完全に一杯になると、容量を追加したり、ストレージからコンテンツを削除したり、コンテンツを移動して領域を解放することはできません。完全なストレージを復元することは非常に困難です。

容量アラートは、クラスターストレージ容量が合計容量の 75% (ほぼ一杯) および 85% (一杯) になると発行されます。容量に関する警告に常に迅速に対応し、ストレージを定期的に確認して、ストレージ領域が不足しないようにします。

ストレージ領域が不足する場合は、Red Hat カスタマーポータルにお問い合わせください。

10.2. Red Hat OpenStack Platform インフラストラクチャー上の OpenShift Data Foundation ノードへの容量追加によるストレージのスケールアップ

ユーザーがプロビジョニングしたインフラストラクチャー上に動的に作成したストレージクラスターのストレージ容量を増やすために、設定済みの Red Hat OpenShift Data Foundation ワーカーノードにストレージ容量およびパフォーマンスを追加できます。

前提条件

  • OpenShift Container Platform に管理者権限がある。
  • 実行中の OpenShift Data Foundation ストレージクラスターがある。
  • ディスクが、最初のデプロイメント時に使用したものと同じサイズおよびタイプである。

手順

  1. OpenShift Web コンソールにログインします。
  2. Operators → Installed Operators をクリックします。
  3. OpenShift Data Foundation Operator をクリックします。
  4. Storage Systems タブをクリックします。

    1. ストレージシステム名の右側にある Action Menu (⋮) をクリックし、オプションメニューを拡張します。
    2. オプションメニューから Add Capacity を選択します。
    3. Storage Class を選択します。新しいストレージデバイスのプロビジョニングに使用するストレージクラスを選択します。

デプロイメント時に生成されるデフォルトのストレージクラスを使用している場合は、ストレージクラスを standard に設定します。他のストレージクラスを作成している場合は、適切なものを選択します。

+ Raw Capacity フィールドには、ストレージクラスの作成時に設定されるサイズが表示されます。OpenShift Data Foundation はレプリカ数 3 を使用するため、消費されるストレージの合計量はこの量の 3 倍になります。

  1. Add をクリックします。

    1. ステータスを確認するには、StorageData Foundation に移動し、Status カードの Storage System に緑色のチェックマークが表示されていることを確認します。

検証手順

  • Raw Capacity カードを確認します。

    1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
    2. Overview タブの Status カードで Storage System をクリックし、表示されたポップアップからストレージシステムリンクをクリックします。
    3. Block and File タブで、Raw Capacity カードを確認します。

      容量は選択に応じて増大することに注意してください。

      注記

      Raw 容量はレプリケーションを考慮せず、フル容量を表示します。

  • 新しい OSD およびそれらの対応する新規永続ボリューム要求 (PVC) が作成されていることを確認します。

    • 新規作成された OSD の状態を表示するには、以下を実行します。

      1. OpenShift Web コンソールから WorkloadsPods をクリックします。
      2. Project ドロップダウンリストから openshift-storage を選択します。

        注記

        Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

    • Pod の状態を確認します。

      1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
      2. Project ドロップダウンリストから openshift-storage を選択します。

        注記

        Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

  • (オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。

    1. 新規 OSD Pod が実行しているノードを特定します。

      $ oc get -n openshift-storage -o=custom-columns=NODE:.spec.nodeName pod/<OSD-pod-name>
      <OSD-pod-name>

      これは OSD Pod の名前です。

      以下に例を示します。

      $ oc get -n openshift-storage -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm

      出力例:

      NODE
      compute-1
    2. 直前の手順で特定された各ノードに以下を実行します。

      1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

        $ oc debug node/<node-name>
        <node-name>

        ノードの名前。

        $ chroot /host
      2. ocs-deviceset 名の横にある crypt キーワードを確認します。

        $ lsblk
重要

クラスターの削減は、Red Hat サポートチーム の支援がある場合にのみサポートされます。

10.3. 新規ノードの追加によるストレージ容量のスケールアウト

ストレージ容量をスケールアウトするには、以下を実行する必要があります。

  • 既存のワーカーノードがサポートされる最大 OSD (初期設定で選択される容量の 3 OSD の増分) で実行されている場合には、ストレージの容量を増やすために新規ノードを追加します。
  • 新規ノードが正常に追加されたことを確認します。
  • ノードが追加された後にストレージ容量をスケールアップします。

10.3.1. インストーラーでプロビジョニングされるインフラストラクチャーへのノードの追加

前提条件

  • OpenShift Container Platform に管理者権限がある。
  • 実行中の OpenShift Data Foundation ストレージクラスターがある。

手順

  1. ComputeMachine Sets に移動します。
  2. ノードを追加する必要のあるマシンセットで、Edit Machine Count を選択します。

    1. ノード数を追加し、Save をクリックします。
    2. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  3. OpenShift Data Foundation ラベルを新規ノードに適用します。

    1. 新規ノードで、Action menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
注記

異なるゾーンのそれぞれに 3 つのノードを追加することが推奨されます。3 つのノードを追加して、それらすべてのノードに対してこの手順を実行する必要があります。ベアメタルインストーラーによってプロビジョニングされたインフラストラクチャーデプロイメントの場合は、最初にクラスターを拡張する必要があります。手順は、クラスターの拡張 を参照してください。

検証手順

  1. ターミナルで次のコマンドを実行し、出力に新しいノードが存在することを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. OpenShift Web コンソールで、WorkloadsPods をクリックし、新しいノードで少なくとも以下の Pod が Running 状態になっていることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*

10.3.2. ストレージ容量のスケールアップ

OpenShift Data Foundation に新しいノードを追加した後、クラスターに容量を追加してストレージをスケールアップする の説明に従ってストレージ容量をスケールアップする必要があります。

第11章 Multicloud Object Gateway

11.1. Multicloud Object Gateway について

Multicloud Object Gateway (MCG) は OpenShift の軽量オブジェクトストレージサービスであり、ユーザーは必要に応じて、複数のクラスター、およびクラウドネイティブストレージを使用して、オンプレミスで小規模に開始し、その後にスケーリングできます。

11.2. アプリケーションの使用による Multicloud Object Gateway へのアクセス

AWS S3 を対象とするアプリケーションまたは AWS S3 Software Development Kit(SDK) を使用するコードを使用して、オブジェクトサービスにアクセスできます。アプリケーションは、Multicloud Object Gateway (MCG) エンドポイント、アクセスキー、およびシークレットアクセスキーを指定する必要があります。ターミナルまたは MCG CLI を使用して、この情報を取得できます。

前提条件

  • 実行中の OpenShift Data Foundation Platform。

11.3. ハイブリッドまたはマルチクラウド用のストレージリソースの追加

11.3.1. 新規バッキングストアの作成

以下の手順を使用して、OpenShift Data Foundation で新規のバッキングストアを作成します。

前提条件

  • OpenShift Data Foundation への管理者アクセス。

手順

  1. OpenShift Web コンソールで、StorageObject Storage をクリックします。
  2. Backing Store タブをクリックします。
  3. Create Backing Store をクリックします。
  4. Create New Backing Store ページで、以下を実行します。

    1. Backing Store Name を入力します。
    2. Provider を選択します。
    3. Region を選択します。
    4. オプション: Endpoint を入力します。
    5. ドロップダウンリストから Secret を選択するか、独自のシークレットを作成します。オプションで、Switch to Credentials ビューを選択すると、必要なシークレットを入力できます。

      OCP シークレットの作成に関する詳細は、Openshift Container Platform ドキュメントのCreating the secretを参照してください。

      バッキングストアごとに異なるシークレットが必要です。特定のバッキングストアのシークレット作成の詳細は、「MCG コマンドラインインターフェイスを使用したハイブリッドまたはマルチクラウドのストレージリソースの追加」 を参照して、YAML を使用したストレージリソースの追加手順を実行します。

      注記

      このメニューは、Google Cloud およびローカル PVC 以外のすべてのプロバイダーに関連します。

    6. Target bucket を入力します。ターゲットバケットは、リモートクラウドサービスでホストされるコンテナーストレージです。MCG に対してシステム用にこのバケットを使用できることを通知する接続を作成できます。
  5. Create Backing Store をクリックします。

検証手順

  1. OpenShift Web コンソールで、StorageObject Storage をクリックします。
  2. Backing Store タブをクリックして、すべてのバッキングストアを表示します。

11.3.2. MCG コマンドラインインターフェイスを使用したハイブリッドまたはマルチクラウドのストレージリソースの追加

Multicloud Object Gateway (MCG) は、クラウドプロバイダーおよびクラスター全体にまたがるデータの処理を単純化します。

MCG で使用できるバッキングストレージを追加する必要があります。

デプロイメントのタイプに応じて、以下のいずれかの手順を選択してバッキングストレージを作成できます。

VMware デプロイメントの場合は、「s3 と互換性のある Multicloud Object Gateway バッキングストアの作成」 に進み、詳細の手順を確認します。

11.3.2.1. AWS でサポートされるバッキングストアの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

MCG コマンドラインインターフェイスの使用

  • MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa backingstore create aws-s3 <backingstore_name> --access-key=<AWS ACCESS KEY> --secret-key=<AWS SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
    <backingstore_name>
    バッキングストアの名前。
    <AWS ACCESS KEY><AWS SECRET ACCESS KEY>
    この目的のために作成した AWS アクセスキー ID とシークレットアクセスキー。
    <bucket-name>

    既存の AWS バケット名。この引数は、バッキングストアのターゲットバケットとして使用するバケットを MCG に示し、その後、データストレージと管理を行います。

    出力は次のようになります。

    INFO[0001] ✅ Exists: NooBaa "noobaa"
    INFO[0002] ✅ Created: BackingStore "aws-resource"
    INFO[0002] ✅ Created: Secret "backing-store-secret-aws-resource"

YAML を使用してストレージリソースを追加する

  1. 認証情報でシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <backingstore-secret-name>
      namespace: openshift-storage
    type: Opaque
    data:
      AWS_ACCESS_KEY_ID: <AWS ACCESS KEY ID ENCODED IN BASE64>
      AWS_SECRET_ACCESS_KEY: <AWS SECRET ACCESS KEY ENCODED IN BASE64>
    <AWS ACCESS KEY> および <AWS SECRET ACCESS KEY>
    Base64 を使用して独自の AWS アクセスキー ID とシークレットアクセスキーを指定してエンコードし、その結果を <AWS ACCESS KEY ID ENCODED IN BASE64><AWS SECRET ACCESS KEY ENCODED IN BASE64> に使用します。
    <backingstore-secret-name>
    前のステップで作成された backingstore シークレットの名前。
  2. 特定のバッキングストアに以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: bs
      namespace: openshift-storage
    spec:
      awsS3:
        secret:
          name: <backingstore-secret-name>
          namespace: openshift-storage
        targetBucket: <bucket-name>
      type: aws-s3
    <bucket-name>
    既存の AWS バケット名。
    <backingstore-secret-name>
    前のステップで作成された backingstore シークレットの名前。
11.3.2.2. IBM COS でサポートされるバッキングストアの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

コマンドラインインターフェイスの使用

  1. MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa backingstore create ibm-cos <backingstore_name> --access-key=<IBM ACCESS KEY> --secret-key=<IBM SECRET ACCESS KEY> --endpoint=<IBM COS ENDPOINT> --target-bucket <bucket-name> -n openshift-storage
    <backingstore_name>
    バッキングストアの名前。
    <IBM ACCESS KEY><IBM SECRET ACCESS KEY>、および <IBM COS ENDPOINT>

    IBM アクセスキー ID、シークレットアクセスキー、および既存の IBM バケットの場所に対応する該当する地域エンドポイント

    IBM クラウドで上記のキーを生成するには、ターゲットバケットのサービス認証情報を作成する際に HMAC 認証情報を含める必要があります。

    <bucket-name>

    既存の IBM バケット名。この引数は、バッキングストア、およびその後のデータストレージと管理のターゲットバケットとして使用するバケットに関する MCG を示します。

    出力は次のようになります。

    INFO[0001] ✅ Exists: NooBaa "noobaa"
    INFO[0002] ✅ Created: BackingStore "ibm-resource"
    INFO[0002] ✅ Created: Secret "backing-store-secret-ibm-resource"

YAML を使用してストレージリソースを追加する

  1. 認証情報でシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <backingstore-secret-name>
      namespace: openshift-storage
    type: Opaque
    data:
      IBM_COS_ACCESS_KEY_ID: <IBM COS ACCESS KEY ID ENCODED IN BASE64>
      IBM_COS_SECRET_ACCESS_KEY: <IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
    <IBM COS ACCESS KEY ID ENCODED IN BASE64><IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
    Base64 を使用して独自の IBM COS アクセスキー ID とシークレットアクセスキーを提供およびエンコードし、これらの属性の代わりに結果をそれぞれ使用します。
    <backingstore-secret-name>
    backingstore シークレットの名前。
  2. 特定のバッキングストアに以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: bs
      namespace: openshift-storage
    spec:
      ibmCos:
        endpoint: <endpoint>
        secret:
          name: <backingstore-secret-name>
          namespace: openshift-storage
        targetBucket: <bucket-name>
      type: ibm-cos
    <bucket-name>
    既存の IBM COS バケット名。この引数は、バッキングストアのターゲットバケットとして使用するバケットについて MCG に指示し、その後、データストレージと管理を行います。
    <endpoint>
    既存の IBM バケット名の場所に対応する地域エンドポイント。この引数は、バッキングストアに使用するエンドポイントを MCG に示し、その後、データストレージと管理を行います。
    <backingstore-secret-name>
    前のステップで作成されたシークレットの名前。
11.3.2.3. Azure でサポートされるバッキングストアの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

MCG コマンドラインインターフェイスの使用

  • MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa backingstore create azure-blob <backingstore_name> --account-key=<AZURE ACCOUNT KEY> --account-name=<AZURE ACCOUNT NAME> --target-blob-container <blob container name> -n openshift-storage
    <backingstore_name>
    バッキングストアの名前。
    <AZURE ACCOUNT KEY> および <AZURE ACCOUNT NAME>
    この目的のために作成した AZURE アカウントキーとアカウント名。
    <blob container name>

    既存の Azure Blob コンテナー名。この引数は、バッキングストアのターゲットバケットとして使用するバケットについて MCG に指示し、その後、データストレージと管理を行います。

    出力は次のようになります。

    INFO[0001] ✅ Exists: NooBaa "noobaa"
    INFO[0002] ✅ Created: BackingStore "azure-resource"
    INFO[0002] ✅ Created: Secret "backing-store-secret-azure-resource"

YAML を使用してストレージリソースを追加する

  1. 認証情報でシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <backingstore-secret-name>
    type: Opaque
    data:
      AccountName: <AZURE ACCOUNT NAME ENCODED IN BASE64>
      AccountKey: <AZURE ACCOUNT KEY ENCODED IN BASE64>
    <AZURE ACCOUNT NAME ENCODED IN BASE64> および <AZURE ACCOUNT KEY ENCODED IN BASE64>
    Base64 を使用して独自の Azure アカウント名とアカウントキーを指定してエンコードし、これらの属性の代わりに結果をそれぞれ使用します。
    <backingstore-secret-name>
    backingstore シークレットの一意の名前。
  2. 特定のバッキングストアに以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: bs
      namespace: openshift-storage
    spec:
      azureBlob:
        secret:
          name: <backingstore-secret-name>
          namespace: openshift-storage
        targetBlobContainer: <blob-container-name>
      type: azure-blob
    <blob-container-name>
    既存の Azure Blob コンテナー名。この引数は、バッキングストアのターゲットバケットとして使用するバケットについて MCG に指示し、その後、データストレージと管理を行います。
    <backingstore-secret-name>
    前の手順で作成したシークレットの名前に置き換えます。
11.3.2.4. GCP でサポートされるバッキングストアの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

MCG コマンドラインインターフェイスの使用

  • MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa backingstore create google-cloud-storage <backingstore_name> --private-key-json-file=<PATH TO GCP PRIVATE KEY JSON FILE> --target-bucket <GCP bucket name> -n openshift-storage
    <backingstore_name>
    バッキングストアの名前。
    <PATH TO GCP PRIVATE KEY JSON FILE>
    この目的のために作成された GCP 秘密鍵へのパス。
    <GCP bucket name>

    既存の GCP オブジェクトストレージバケット名。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。

    出力は次のようになります。

    INFO[0001] ✅ Exists: NooBaa "noobaa"
    INFO[0002] ✅ Created: BackingStore "google-gcp"
    INFO[0002] ✅ Created: Secret "backing-store-google-cloud-storage-gcp"

YAML を使用してストレージリソースを追加する

  1. 認証情報でシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <backingstore-secret-name>
    type: Opaque
    data:
      GoogleServiceAccountPrivateKeyJson: <GCP PRIVATE KEY ENCODED IN BASE64>
    <GCP PRIVATE KEY ENCODED IN BASE64>
    Base64 を使用して独自の GCP サービスアカウントの秘密鍵を提供およびエンコードし、この属性の結果を使用します。
    <backingstore-secret-name>
    backingstore シークレットの一意の名前。
  2. 特定のバッキングストアに以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: bs
      namespace: openshift-storage
    spec:
      googleCloudStorage:
        secret:
          name: <backingstore-secret-name>
          namespace: openshift-storage
        targetBucket: <target bucket>
      type: google-cloud-storage
    <target bucket>
    既存の Google ストレージバケット。この引数は、バッキングストアのターゲットバケットとして使用するバケットについて MCG に指示し、その後、データストレージ dfdand 管理を行います。
    <backingstore-secret-name>
    前のステップで作成されたシークレットの名前。
11.3.2.5. ローカル永続ボリュームでサポートされるバッキングストアの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

MCG コマンドラインインターフェイスを使用したストレージリソースの追加

  • MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    注記

    このコマンドは、openshift-storage namespace 内から実行する必要があります。

    $ noobaa -n openshift-storage backingstore create pv-pool <backingstore_name> --num-volumes <NUMBER OF VOLUMES>  --pv-size-gb <VOLUME SIZE> --request-cpu <CPU REQUEST> --request-memory <MEMORY REQUEST> --limit-cpu <CPU LIMIT> --limit-memory <MEMORY LIMIT> --storage-class <LOCAL STORAGE CLASS>

YAML を使用してストレージリソースの追加

  • 特定のバッキングストアに以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: <backingstore_name>
      namespace: openshift-storage
    spec:
       pvPool:
        numVolumes: <NUMBER OF VOLUMES>
        resources:
          requests:
            storage: <VOLUME SIZE>
            cpu: <CPU REQUEST>
            memory: <MEMORY REQUEST>
          limits:
            cpu: <CPU LIMIT>
            memory: <MEMORY LIMIT>
        storageClass: <LOCAL STORAGE CLASS>
      type: pv-pool
    <backingstore_name>
    バッキングストアの名前。
    <NUMBER OF VOLUMES>
    作成するボリュームの数。ボリュームの数を増やすと、ストレージが拡大することに注意してください。
    <VOLUME SIZE>
    各ボリュームの必要なサイズ (GB)。
    <CPU REQUEST>
    CPU ユニット m で要求された CPU の保証量。
    <MEMORY REQUEST>
    要求されたメモリー量の保証。
    <CPU LIMIT>
    CPU ユニット m で消費できる CPU の最大量。
    <MEMORY LIMIT>
    消費できるメモリーの最大量。
    <LOCAL STORAGE CLASS>

    ocs-storagecluster-ceph-rbd の使用を推奨するローカルストレージクラス名。

    出力は次のようになります。

    INFO[0001] ✅ Exists: NooBaa "noobaa"
    INFO[0002] ✅ Exists: BackingStore "local-mcg-storage"

11.3.3. s3 と互換性のある Multicloud Object Gateway バッキングストアの作成

Multicloud Object Gateway (MCG) は、任意の S3 と互換性のあるオブジェクトストレージをバッキングストアとして使用できます (例: Red Hat Ceph Storage の RADOS Object Gateway (RGW))。以下の手順では、Red Hat Ceph Storage の RGW 用の S3 と互換性のある MCG バッキングストアを作成する方法を説明します。RGW がデプロイされると、OpenShift Data Foundation operator は MCG の S3 と互換性のあるバッキングストアを自動的に作成することに注意してください。

手順

  1. MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    注記

    このコマンドは、openshift-storage namespace 内から実行する必要があります。

    noobaa backingstore create s3-compatible rgw-resource --access-key=<RGW ACCESS KEY> --secret-key=<RGW SECRET KEY> --target-bucket=<bucket-name> --endpoint=<RGW endpoint> -n openshift-storage
    1. <RGW ACCESS KEY> および <RGW SECRET KEY> を取得するには、RGW ユーザーシークレット名を使用して以下のコマンドを実行します。

      oc get secret <RGW USER SECRET NAME> -o yaml -n openshift-storage
    2. Base64 からアクセスキー ID とアクセスキーをデコードし、それらのキーを保持します。
    3. <RGW USER ACCESS KEY><RGW USER SECRET ACCESS KEY> を、直前の手順でデコードした適切なデータに置き換えます。
    4. <bucket-name> を既存の RGW バケット名に置き換えます。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
    5. <RGW endpoint> を取得するには、RADOS Object Gateway S3 エンドポイントへのアクセス を参照してください。

      出力は次のようになります。

      INFO[0001] ✅ Exists: NooBaa "noobaa"
      INFO[0002] ✅ Created: BackingStore "rgw-resource"
      INFO[0002] ✅ Created: Secret "backing-store-secret-rgw-resource"

YAML を使用してバッキングストアを作成することもできます。

  1. CephObjectStore ユーザーを作成します。これにより、RGW 認証情報が含まれるシークレットも作成されます。

    apiVersion: ceph.rook.io/v1
    kind: CephObjectStoreUser
    metadata:
      name: <RGW-Username>
      namespace: openshift-storage
    spec:
      store: ocs-storagecluster-cephobjectstore
      displayName: "<Display-name>"
    1. <RGW-Username><Display-name> を、一意のユーザー名および表示名に置き換えます。
  2. 以下の YAML を S3 と互換性のあるバッキングストアに適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: <backingstore-name>
      namespace: openshift-storage
    spec:
      s3Compatible:
        endpoint: <RGW endpoint>
        secret:
          name: <backingstore-secret-name>
          namespace: openshift-storage
        signatureVersion: v4
        targetBucket: <RGW-bucket-name>
      type: s3-compatible
    1. <backingstore-secret-name> を、直前の手順で CephObjectStore で作成したシークレットの名前に置き換えます。
    2. <bucket-name> を既存の RGW バケット名に置き換えます。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
    3. <RGW endpoint> を取得するには、RADOS Object Gateway S3 エンドポイントへのアクセス を参照してください。

11.3.4. ユーザーインターフェイスを使用したハイブリッドおよびマルチクラウドのストレージリソースの追加

手順

  1. OpenShift Web コンソールで、StorageData Foundation をクリックします。
  2. Storage Systems タブでストレージシステムを選択し、OverviewObject タブをクリックします。
  3. Multicloud Object Gateway のリンクをクリックします。
  1. 以下に強調表示されているように左側にある Resources タブを選択します。設定するリストから、Add Cloud Resource を選択します。

    mcg クラウドリソースの追加
  2. Add new connection を選択します。

    mcg 新規接続の追加
  3. 関連するネイティブクラウドプロバイダーまたは S3 互換オプションを選択し、詳細を入力します。

    mcg クラウド接続の追加
  4. 新規に作成された接続を選択し、これを既存バケットにマップします。

    MCG 既存バケットへのマップ
  5. これらの手順を繰り返して、必要な数のバッキングストアを作成します。
注記

NooBaa UI で作成されたリソースは、OpenShift UI または MCG CLI では使用できません。

11.3.5. 新規バケットクラスの作成

バケットクラスは、Object Bucket Class の階層ポリシーおよびデータ配置を定義するバケットのクラスを表す CRD です。

以下の手順を使用して、OpenShift Data Foundation でバケットクラスを作成します。

手順

  1. OpenShift Web コンソールで、StorageObject Storage をクリックします。
  2. Bucket Class タブをクリックします。
  3. Create Bucket Class をクリックします。
  4. Create new Bucket Class ページで、以下を実行します。

    1. バケットクラスターイプを選択し、バケットクラス名を入力します。

      1. BucketClass タイプを選択します。以下のいずれかのオプションを選択します。

        • Standard: データは Multicloud Object Gateway (MCG) に使用され、重複排除、圧縮、および暗号化されます。
        • Namespace: データは、重複排除、圧縮、または暗号化を実行せずに NamespaceStores に保存されます。

          デフォルトでは、Standard が選択されます。

      2. Bucket Class Name 名を入力します。
      3. Next をクリックします。
    2. Placement PolicyTier 1 - Policy Type を選択し、Next をクリックします。要件に応じて、いずれかのオプションを選択できます。

      • Spread により、選択したリソース全体にデータを分散できます。
      • Mirror により、選択したリソース全体でデータを完全に複製できます。
      • Add Tier をクリックし、別のポリシー階層を追加します。
    3. Tier 1 - Policy TypeSpread を選択した場合は、利用可能なリストから 1 つ以上の Backing Store リソースを選択してから、Next をクリックします。または、新しいバッキングストアを作成 することもできます。

      注記

      直前の手順で Policy Type に Mirror を選択する場合は、2 つ以上のバッキングストアを選択する必要があります。

    4. Bucket Class 設定を確認し、確認します。
    5. Create Bucket Class をクリックします。

検証手順

  1. OpenShift Web コンソールで、StorageObject Storage をクリックします。
  2. Bucket Class タブをクリックし、新しい Bucket Class を検索します。

11.3.6. バケットクラスの編集

以下の手順に従って、Openshift Web コンソールの edit ボタンをクリックし、YAML ファイルを使用してバケットクラスコンポーネントを編集します。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。

手順

  1. OpenShift Web コンソールで、StorageObject Storage をクリックします。
  2. Bucket Class タブをクリックします。
  3. 編集する Bucket クラスの横にあるアクションメニュー (⋮) をクリックします。
  4. Edit Bucket Class をクリックします。
  5. YAML ファイルにリダイレクトされ、このファイルで必要な変更を加え、Save をクリックします。

11.3.7. バケットクラスのバッキングストアの編集

以下の手順を使用して、既存の Multicloud Object Gateway (MCG) バケットクラスを編集し、バケットクラスで使用される基礎となるバッキングストアを変更します。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。
  • バケットクラス。
  • バッキングストア。

手順

  1. OpenShift Web コンソールで、StorageObject Storage をクリックします。
  2. Bucket Class タブをクリックします。
  3. 編集する Bucket クラスの横にあるアクションメニュー (⋮) をクリックします。
  4. Edit Bucket Class Resources をクリックします。
  5. Edit Bucket Class Resources ページで、バッキングストアをバケットクラスに追加するか、バケットクラスからバッキングストアを削除してバケットクラスリソースを編集します。1 つまたは 2 つの層を使用して作成されたバケットクラスリソースや、異なる配置ポリシーが指定されたバケットクラスリソースを編集することもできます。

    • バッキングストアをバケットクラスに追加するには、バッキングストアの名前を選択します。
    • バケットクラスからバッキングストアを削除するには、バッキングストアの名前を消去します。
  6. Save をクリックします。

11.4. namespace バケットの管理

namespace バケットを使用すると、異なるプロバイダーのデータリポジトリーを接続できるため、単一の統合ビューを使用してすべてのデータと対話できます。各プロバイダーに関連付けられたオブジェクトバケットを namespace バケットに追加し、namespace バケット経由でデータにアクセスし、一度にすべてのオブジェクトバケットを表示します。これにより、他の複数のストレージプロバイダーから読み込む間に、希望するストレージプロバイダーへの書き込みを行うことができ、新規ストレージプロバイダーへの移行コストが大幅に削減されます。

S3 API を使用して namespace バケットのオブジェクトと対話できます。詳細は、namespace バケットのオブジェクトの S3 API エンドポイント を参照してください。

注記

namespace バケットは、このバケットの書き込みターゲットが利用可能で機能している場合にのみ使用できます。

11.4.1. namespace バケットのオブジェクトの Amazon S3 API エンドポイント

Amazon Simple Storage Service (S3) API を使用して namespace バケットのオブジェクトと対話できます。

Multicloud Object Gateway (MCG) に提供された認証情報を使用して、AWS S3 namespace バケット操作を実行できることを確認します。AWS ツール aws-cli を使用して、すべての操作がターゲットバケットで実行できることを確認できます。また、この MCG アカウントを使用しているリストバケットには、ターゲットバケットが表示されます。

Red Hat OpenShift Data Foundation は、次の namespace バケット操作をサポートしています。

これらの操作および使用方法に関する最新情報は、Amazon S3 API リファレンスのドキュメントを参照してください。

11.4.2. Multicloud Object Gateway CLI および YAML を使用した namespace バケットの追加

namespace バケットの詳細は、namespace バケットの管理 を参照してください。

デプロイメントのタイプに応じて、また YAML または Multicloud Object Gateway CLI を使用するかどうかに応じて、以下の手順のいずれかを選択して namespace バケットを追加します。

11.4.2.1. YAML を使用した AWS S3 namespace バケットの追加

前提条件

手順

  1. 認証情報でシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <namespacestore-secret-name>
      type: Opaque
    data:
      AWS_ACCESS_KEY_ID: <AWS ACCESS KEY ID ENCODED IN BASE64>
      AWS_SECRET_ACCESS_KEY: <AWS SECRET ACCESS KEY ENCODED IN BASE64>

    ここで、<namespacestore-secret-name> は一意の NamespaceStore 名になります。

    Base64 を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定してエンコードし、その結果を <AWS ACCESS KEY ID ENCODED IN BASE64> および <AWS SECRET ACCESS KEY ENCODED IN BASE64> の代わりに使用する必要があります。

  2. OpenShift カスタムリソース定義 (CRD) を使用して NamespaceStore リソースを作成します。

    NamespaceStore は、MCG namespace バケットでデータの read または write ターゲットとして使用される基礎となるストレージを表します。

    NamespaceStore リソースを作成するには、以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: NamespaceStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: <resource-name>
      namespace: openshift-storage
    spec:
      awsS3:
        secret:
          name: <namespacestore-secret-name>
          namespace: <namespace-secret>
        targetBucket: <target-bucket>
      type: aws-s3
    <resource-name>
    リソースに指定する名前。
    <namespacestore-secret-name>
    前の手順で作成されたシークレット
    <namespace-secret>
    シークレットが見つかる namespace。
    <target-bucket>
    NamespaceStore 用に作成したターゲットバケット。
  3. namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、single または multi のタイプが必要です。

    • タイプ single の namespace ポリシーには、以下の設定が必要です。

      apiVersion: noobaa.io/v1alpha1
      kind: BucketClass
      metadata:
        labels:
          app: noobaa
        name: <my-bucket-class>
        namespace: openshift-storage
      spec:
        namespacePolicy:
          type:
          single:
            resource: <resource>
      <my-bucket-class>
      一意の namespace バケットクラス名。
      <resource>
      namespace バケットの読み取りおよび書き込みターゲットを定義する単一の NamespaceStore の名前。
    • タイプが multi の namespace ポリシーには、以下の設定が必要です。

      apiVersion: noobaa.io/v1alpha1
      
      kind: BucketClass
      metadata:
        labels:
          app: noobaa
        name: <my-bucket-class>
        namespace: openshift-storage
      spec:
        namespacePolicy:
          type: Multi
          multi:
            writeResource: <write-resource>
            readResources:
            - <read-resources>
            - <read-resources>
      <my-bucket-class>
      一意のバケットクラス名。
      <write-resource>
      namespace バケットの write ターゲットを定義する単一の NamespaceStore の名前。
      <read-resources>
      namespace バケットの read ターゲットを定義する NamespaceStores の名前のリスト。
  4. 以下の YAML を使用して前の手順に定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <resource-name>
      namespace: openshift-storage
    spec:
      generateBucketName: <my-bucket>
      storageClassName: openshift-storage.noobaa.io
      additionalConfig:
        bucketclass: <my-bucket-class>
    <resource-name>
    リソースに指定する名前。
    <my-bucket>
    バケットに指定したい名前。
    <my-bucket-class>
    前のステップで作成されたバケットクラス。

OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret および ConfigMap を作成します。

11.4.2.2. YAML を使用した IBM COS namespace バケットの追加

前提条件

手順

  1. 認証情報でシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <namespacestore-secret-name>
      type: Opaque
    data:
      IBM_COS_ACCESS_KEY_ID: <IBM COS ACCESS KEY ID ENCODED IN BASE64>
      IBM_COS_SECRET_ACCESS_KEY: <IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
    <namespacestore-secret-name>

    一意の NamespaceStore 名。

    Base64 を使用して独自の IBM COS アクセスキー ID およびシークレットアクセスキーを指定してエンコードし、その結果を <IBM COS ACCESS KEY ID ENCODED IN BASE64> および <IBM COS SECRET ACCESS KEY ENCODED IN BASE64> の代わりに使用する必要があります。

  2. OpenShift カスタムリソース定義 (CRD) を使用して NamespaceStore リソースを作成します。

    NamespaceStore は、MCG namespace バケットでデータの read または write ターゲットとして使用される基礎となるストレージを表します。

    NamespaceStore リソースを作成するには、以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: NamespaceStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: bs
      namespace: openshift-storage
    spec:
      s3Compatible:
        endpoint: <IBM COS ENDPOINT>
        secret:
          name: <namespacestore-secret-name>
          namespace: <namespace-secret>
        signatureVersion: v2
        targetBucket: <target-bucket>
      type: ibm-cos
    <IBM COS ENDPOINT>
    適切な IBM COS エンドポイント。
    <namespacestore-secret-name>
    前の手順で作成されたシークレット
    <namespace-secret>
    シークレットが見つかる namespace。
    <target-bucket>
    NamespaceStore 用に作成したターゲットバケット。
  3. namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、single または multi のタイプが必要です。

    • タイプ single の namespace ポリシーには、以下の設定が必要です。

      apiVersion: noobaa.io/v1alpha1
      kind: BucketClass
      metadata:
        labels:
          app: noobaa
        name: <my-bucket-class>
        namespace: openshift-storage
      spec:
        namespacePolicy:
          type:
          single:
            resource: <resource>
      <my-bucket-class>
      一意の namespace バケットクラス名。
      <resource>
      namespace バケットの read および write ターゲットを定義する単一の NamespaceStore の名前。
    • タイプが multi の namespace ポリシーには、以下の設定が必要です。

      apiVersion: noobaa.io/v1alpha1
      kind: BucketClass
      metadata:
        labels:
          app: noobaa
        name: <my-bucket-class>
        namespace: openshift-storage
      spec:
        namespacePolicy:
          type: Multi
          multi:
            writeResource: <write-resource>
            readResources:
            - <read-resources>
            - <read-resources>
      <my-bucket-class>
      一意のバケットクラス名。
      <write-resource>
      namespace バケットの書き込みターゲットを定義する単一の NamespaceStore の名前。
      <read-resources>
      namespace バケットの read ターゲットを定義する NamespaceStores 名のリスト。
  4. 以下の YAML を適用して、前の手順で定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用してバケットを作成します。

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <resource-name>
      namespace: openshift-storage
    spec:
      generateBucketName: <my-bucket>
      storageClassName: openshift-storage.noobaa.io
      additionalConfig:
        bucketclass: <my-bucket-class>
    <resource-name>
    リソースに指定する名前。
    <my-bucket>
    バケットに指定したい名前。
    <my-bucket-class>

    前のステップで作成されたバケットクラス。

    OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret および ConfigMap を作成します。

11.4.2.3. Multicloud Object Gateway CLI を使用した AWS S3 namespace バケットの追加

前提条件

  • OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
  • Multicloud Object Gateway (MCG) へのアクセスは、第 2 章の Accessing the Multicloud Object Gateway with your applications を参照してください。
  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは Linux (x86_64)、Windows、Mac OS です。

手順

  1. MCG コマンドラインインターフェイスで、NamespaceStore リソースを作成します。

    NamespaceStore は、MCG namespace バケットでデータの read または write ターゲットとして使用される基礎となるストレージを表します。

    $ noobaa namespacestore create aws-s3 <namespacestore> --access-key <AWS ACCESS KEY> --secret-key <AWS SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
    <namespacestore>
    NamespaceStore の名前。
    <AWS ACCESS KEY><AWS SECRET ACCESS KEY>
    この目的のために作成した AWS アクセスキー ID とシークレットアクセスキー。
    <bucket-name>
    既存の AWS バケット名。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
  2. namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーは、single または multi のいずれかになります。

    • タイプが single の namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。

      $ noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage
      <resource-name>
      リソースに指定する名前。
      <my-bucket-class>
      一意のバケットクラス名。
      <resource>
      namespace バケットの read および write ターゲットを定義する単一の namespace-store。
    • タイプ multi の namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。

      $ noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage
      <resource-name>
      リソースに指定する名前。
      <my-bucket-class>
      一意のバケットクラス名。
      <write-resource>
      namespace バケットの write ターゲットを定義する単一の namespace-store。
      <read-resources>s
      namespace バケットの read ターゲットを定義する、コンマで区切られた namespace-store のリスト。
  3. 前の手順で定義したバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。

    $ noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>
    <bucket-name>
    選択したバケット名。
    <custom-bucket-class>
    前の手順で作成したバケットクラスの名前。

    OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret および ConfigMap を作成します。

11.4.2.4. Multicloud Object Gateway CLI を使用した IBM COS namespace バケットの追加

前提条件

  • OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
  • Multicloud Object Gateway (MCG) へのアクセスは、第 2 章の Accessing the Multicloud Object Gateway with your applications を参照してください。
  • カスタマーポータル から MCG コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にする。

    注記

    Linux (x86_64)、Windows、Mac OS のいずれかを選択してください。

手順

  1. MCG コマンドラインインターフェイスで、NamespaceStore リソースを作成します。

    NamespaceStore は、MCG namespace バケットでデータの read または write ターゲットとして使用される基礎となるストレージを表します。

    $ noobaa namespacestore create ibm-cos <namespacestore> --endpoint <IBM COS ENDPOINT> --access-key <IBM ACCESS KEY> --secret-key <IBM SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
    <namespacestore>
    NamespaceStore の名前。
    <IBM ACCESS KEY><IBM SECRET ACCESS KEY><IBM COS ENDPOINT>
    IBM アクセスキー ID、シークレットアクセスキー、および既存の IBM バケットの場所に対応する該当する地域エンドポイント
    <bucket-name>
    既存の IBM バケット名。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
  2. namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、single または multi のタイプが必要です。

    • タイプが single の namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。

      $ noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage
      <resource-name>
      リソースに指定する名前。
      <my-bucket-class>
      一意のバケットクラス名。
      <resource>
      namespace バケットの read および write ターゲットを定義する単一の NamespaceStore。
    • タイプ multi の namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。

      $ noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage
      <resource-name>
      リソースに指定する名前。
      <my-bucket-class>
      一意のバケットクラス名。
      <write-resource>
      namespace バケットの write ターゲットを定義する単一の NamespaceStore。
      <read-resources>
      namespace バケットの read ターゲットを定義する NamespaceStores のコンマ区切りリスト。
  3. 前の手順で定義したバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。

    $ noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>
    <bucket-name>
    選択したバケット名。
    <custom-bucket-class>
    前の手順で作成したバケットクラスの名前。

OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret および ConfigMap を作成します。

11.4.3. OpenShift Container Platform ユーザーインターフェイスを使用した namespace バケットの追加

OpenShift Container Platform ユーザーインターフェイスを使用して namespace バケットを追加できます。namespace バケットの詳細は、namespace バケットの管理 を参照してください。

前提条件

  • OpenShift Data Foundation Operator を使用する Openshift Container Platform がすでにインストールされている。
  • Multicloud Object Gateway (MCG) へのアクセス。

手順

  1. OpenShift Web コンソールで、StorageObject StorageNamespace Store タブに移動します。
  2. Create Namespace Store タブをクリックして、namespace バケットで使用される namespacestore リソースを作成します。

    1. namespacestore 名を入力します。
    2. プロバイダーとリージョンを選択します。
    3. 既存のシークレットを選択するか、Switch to credentials をクリックして、シークレットキーおよびシークレットアクセスキーを入力してシークレットを作成します。
    4. ターゲットバケットを入力します。
    5. Create をクリックします。
  3. Namespace Store タブで、新規作成された namespacestoreReady 状態にあることを確認します。
  4. 必要な量のリソースをすべて作成するまで、手順 2 と 3 を繰り返します。
  5. Bucket Class タブに移動し、Create Bucket Class をクリックします。

    1. Namespace BucketClass type ラジオボタンを選択します。
    2. BucketClass 名 を入力し、Next をクリックします。
    3. namespace バケットの Namespace Policy Type を選択し、Next をクリックします。

      • namespace ポリシータイプが Single の場合、読み取りリソースを選択する必要があります。
      • namespace ポリシータイプが Multi の場合、読み取りリソースおよび書き込みリソースを選択する必要があります。
      • namespace ポリシータイプが Cache の場合は、namespace バケットの読み取りおよび書き込みターゲットを定義する Hub namespace ストアを選択する必要があります。
    4. namespace バケットの読み取りおよび書き込みターゲットを定義する Read and Write NamespaceStore を 1 つ選択し、Next をクリックします。
    5. 新しいバケットクラスの詳細を確認し、Create Bucket Class をクリックします。
  6. Bucket Class タブに移動し、新たに作成されたリソースが Ready フェーズにあることを確認します。
  7. Object Bucket Claims タブに移動し、Create Object Bucket Claim をクリックします。

    1. namespace バケットの ObjectBucketClaim Name を入力します。
    2. StorageClassopenshift-storage.noobaa.io として選択します。
    3. 一覧から、namespacestore 用に以前に作成した BucketClass を選択します。デフォルトでは、noobaa-default-bucket-class が選択されます。
    4. Create をクリックします。namespace バケットが、namespace の Object Bucket Claim とともに作成されます。
  8. Object Bucket Claims タブに移動し、作成された Object Bucket Claim が Bound 状態にあることを確認します。
  9. Object Buckets タブに移動し、namespace バケットがリストに存在し、Bound 状態にあることを確認します。

11.5. ハイブリッドおよびマルチクラウドバケットのデータのミラーリング

Multicloud Object Gateway (MCG) の簡素化されたプロセスを使用して、クラウドプロバイダーとクラスター全体にデータを広げることができます。データ管理ポリシーとミラーリングを反映するバケットクラスを作成する前に、MCG で使用できるバッキングストレージを追加する必要があります。詳細は、第 4 章 「ハイブリッドまたはマルチクラウド用のストレージリソースの追加」 を参照してください。

OpenShift UI、YAML、または MCG コマンドラインインターフェイスを使用して、ミラーリングデータを設定できます。

以下のセクションを参照してください。

11.5.1. MCG コマンドラインインターフェイスを使用したデータのミラーリング用のバケットクラスの作成

前提条件

  • Multicloud Object Gateway (MCG) コマンドラインインターフェイスを必ずダウンロードしてください。

手順

  1. Multicloud Object Gateway (MCG) コマンドラインインターフェイスから以下のコマンドを実行し、ミラーリングポリシーでバケットクラスを作成します。

    $ noobaa bucketclass create placement-bucketclass mirror-to-aws --backingstores=azure-resource,aws-resource --placement Mirror
  2. 新たに作成されたバケットクラスを新規のバケット要求に設定し、2 つのロケーション間でミラーリングされる新規バケットを生成します。

    $ noobaa obc create  mirrored-bucket --bucketclass=mirror-to-aws

11.5.2. YAML を使用したデータのミラーリング用のバケットクラスの作成

  1. 以下の YAML を適用します。この YAML は、ローカル Ceph ストレージと AWS 間でデータをミラーリングするハイブリッドの例です。

    apiVersion: noobaa.io/v1alpha1
    kind: BucketClass
    metadata:
      labels:
        app: noobaa
      name: <bucket-class-name>
      namespace: openshift-storage
    spec:
      placementPolicy:
        tiers:
        - backingStores:
          - <backing-store-1>
          - <backing-store-2>
          placement: Mirror
  2. 以下の行を標準の Object Bucket Claim (OBC) に追加します。

    additionalConfig:
      bucketclass: mirror-to-aws

    OBC の詳細は、「Object Bucket Claim」 を参照してください。

11.6. Multicloud Object Gateway のバケットポリシー

OpenShift Data Foundation は AWS S3 バケットポリシーをサポートします。バケットポリシーにより、ユーザーにバケットとそれらのオブジェクトのアクセスパーミッションを付与することができます。

11.6.1. バケットポリシーの概要

バケットポリシーは、AWS S3 バケットおよびオブジェクトにパーミッションを付与するために利用できるアクセスポリシーオプションです。バケットポリシーは JSON ベースのアクセスポリシー言語を使用します。アクセスポリシー言語の詳細は、AWS Access Policy Language Overview を参照してください。

11.6.2. Multicloud Object Gateway でのバケットポリシーの使用

前提条件

手順

MCG でバケットポリシーを使用するには、以下を実行します。

  1. JSON 形式でバケットポリシーを作成します。

    以下に例を示します。

    {
        "Version": "NewVersion",
        "Statement": [
            {
                "Sid": "Example",
                "Effect": "Allow",
                "Principal": [
                        "john.doe@example.com"
                ],
                "Action": [
                    "s3:GetObject"
                ],
                "Resource": [
                    "arn:aws:s3:::john_bucket"
                ]
            }
        ]
    }

    john.doe@example.com は、有効な Multicloud Object Gateway ユーザーアカウントに置き換えます。

  2. AWS S3 クライアントを使用して put-bucket-policy コマンドを使用してバケットポリシーを S3 バケットに適用します。

    # aws --endpoint ENDPOINT --no-verify-ssl s3api put-bucket-policy --bucket MyBucket --policy file://BucketPolicy
    1. ENDPOINT を S3 エンドポイントに置き換えます。
    2. MyBucket を、ポリシーを設定するバケットに置き換えます。
    3. BucketPolicy をバケットポリシー JSON ファイルに置き換えます。
    4. デフォルトの自己署名証明書を使用している場合は、--no-verify-ssl を追加します。

      以下に例を示します。

      # aws --endpoint https://s3-openshift-storage.apps.gogo44.noobaa.org --no-verify-ssl s3api put-bucket-policy -bucket MyBucket --policy file://BucketPolicy

      put-bucket-policy コマンドの詳細は、AWS CLI Command Reference for put-bucket-policy を参照してください。

      注記

      主となる要素では、リソース (バケットなど) へのアクセスを許可または拒否されるユーザーを指定します。現在、NooBaa アカウントのみがプリンシパルとして使用できます。Object Bucket Claim の場合、NooBaa はアカウント obc-account.<generated bucket name>@noobaa.io を自動的に作成します。

      注記

      バケットポリシー条件はサポートされていません。

関連情報

  • アクセスパーミッションに関して、バケットポリシーには数多くの利用可能な要素があります。
  • これらの要素の詳細と、それらを使用してアクセスパーミッションを制御する方法の例は、AWS Access Policy Language Overview を参照してください。
  • バケットポリシーの他の例は、AWS Bucket Policy Examples を参照してください。
  • OpenShift Data Foundation バージョン 4.17 で、バケットポリシー要素 NotPrincipalNotActionNotResource が導入されました。これらの要素の詳細は、IAM JSON policy elements reference を参照してください。

11.6.3. Multicloud Object Gateway でのユーザーの作成

前提条件

  • 実行中の OpenShift Data Foundation Platform。
  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

次のコマンドを実行して、MCG ユーザーアカウントを作成します。

noobaa account create <noobaa-account-name> [--allow_bucket_create=true] [--allowed_buckets=[]] [--default_resource=''] [--full_permission=false]
<noobaa-account-name>
新しい MCG ユーザーアカウントの名前を指定します。
--allow_bucket_create
ユーザーが新しいバケットを作成できるようにします。
--allowed_buckets
ユーザーの許可されたバケットリストを設定します (コンマまたは複数のフラグを使用)。
--default_resource
デフォルトのリソースを設定します。新しいバケットは、このデフォルトのリソース (将来のリソースを含む) で作成されます。
--full_permission
このアカウントが既存および将来のすべてのバケットにアクセスできるようにします。
重要

少なくとも 1 つのバケットにアクセスするためのアクセス許可、またはすべてのバケットにアクセスするための完全なアクセス許可を提供する必要があります。

11.7. Object Bucket Claim

Object Bucket Claim は、ワークロードの S3 と互換性のあるバケットバックエンドを要求するために使用できます。

Object Bucket Claim は 3 つの方法で作成できます。

Object Bucket Claim は、新しいアクセスキーおよびシークレットアクセスキーを含む、バケットのパーミッションのある NooBaa の新しいバケットとアプリケーションアカウントを作成します。アプリケーションアカウントは単一バケットにのみアクセスでき、デフォルトで新しいバケットを作成することはできません。

11.7.1. 動的 Object Bucket Claim

永続ボリュームと同様に、Object Bucket Claim (OBC) の詳細をアプリケーションの YAML に追加し、config map およびシークレットで利用可能なオブジェクトサービスエンドポイント、アクセスキー、およびシークレットアクセスキーを取得できます。この情報をアプリケーションの環境変数に動的に読み込むことは容易に実行できます。

注記

Multicloud Object Gateway エンドポイントは、OpenShift が自己署名証明書を使用する場合にのみ、自己署名証明書を使用します。OpenShift で署名付き証明書を使用すると、Multicloud Object Gateway エンドポイント証明書が署名付き証明書に自動的に置き換えられます。ブラウザーを介してエンドポイントにアクセスし、Multicloud Object Gateway で現在使用されている証明書を取得します。詳細は、アプリケーションの使用による Multicloud Object Gateway へのアクセス を参照してください。

手順

  1. 以下の行をアプリケーション YAML に追加します。

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <obc-name>
    spec:
      generateBucketName: <obc-bucket-name>
      storageClassName: openshift-storage.noobaa.io

    これらの行は OBC 自体になります。

    1. <obc-name> を、一意の OBC の名前に置き換えます。
    2. <obc-bucket-name> を、OBC の一意のバケット名に置き換えます。
  2. YAML ファイルにさらに行を追加して、OBC の使用を自動化します。

    以下に例を示します。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: testjob
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - image: <your application image>
              name: test
              env:
                - name: BUCKET_NAME
                  valueFrom:
                    configMapKeyRef:
                      name: <obc-name>
                      key: BUCKET_NAME
                - name: BUCKET_HOST
                  valueFrom:
                    configMapKeyRef:
                      name: <obc-name>
                      key: BUCKET_HOST
                - name: BUCKET_PORT
                  valueFrom:
                    configMapKeyRef:
                      name: <obc-name>
                      key: BUCKET_PORT
                - name: AWS_ACCESS_KEY_ID
                  valueFrom:
                    secretKeyRef:
                      name: <obc-name>
                      key: AWS_ACCESS_KEY_ID
                - name: AWS_SECRET_ACCESS_KEY
                  valueFrom:
                    secretKeyRef:
                      name: <obc-name>
                      key: AWS_SECRET_ACCESS_KEY

    以下は、バケット要求の結果のマッピングの例になります。これは、データを含む config map および認証情報を含むシークレットです。この特定のジョブは NooBaa からオブジェクトバケットを要求し、バケットとアカウントを作成します。

    1. <obc-name> のすべてのインスタンスを、OBC の名前に置き換えます。
    2. <your application image> をアプリケーションイメージに置き換えます。
  3. 更新された YAML ファイルを適用します。

    # oc apply -f <yaml.file>

    <yaml.file> を YAML ファイルの名前に置き換えます。

  4. 新しい config map を表示するには、以下を実行します。

    # oc get cm <obc-name> -o yaml

    obc-name を OBC の名前に置き換えます。

    出力には、以下の環境変数が表示されることが予想されます。

    • BUCKET_HOST: アプリケーションで使用するエンドポイント
    • BUCKET_PORT: アプリケーションで利用できるポート

      • ポートは BUCKET_HOST に関連します。たとえば、BUCKET_HOSThttps://my.example.com で、BUCKET_PORT が 443 の場合、オブジェクトサービスのエンドポイントは https://my.example.com:443 になります。
    • BUCKET_NAME: 要求されるか、生成されるバケット名
    • AWS_ACCESS_KEY_ID: 認証情報の一部であるアクセスキー
    • AWS_SECRET_ACCESS_KEY: 認証情報の一部であるシークレットのアクセスキー
重要

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を取得します。名前は、AWS S3 と互換性があるように使用されます。S3 操作の実行中、特に Multicloud Object Gateway (MCG) バケットから読み取り、書き込み、またはリスト表示する場合は、キーを指定する必要があります。キーは Base64 でエンコードされています。キーを使用する前に、キーをデコードしてください。

# oc get secret <obc_name> -o yaml
<obc_name>
オブジェクトバケットクレームの名前を指定します。

11.7.2. コマンドラインインターフェイスを使用した Object Bucket Claim の作成

コマンドラインインターフェイスを使用して Object Bucket Claim (OBC) を作成する場合、config map とシークレットを取得します。これらには、アプリケーションがオブジェクトストレージサービスを使用するために必要なすべての情報が含まれます。

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

  1. コマンドラインインターフェイスを使用して、新規バケットおよび認証情報の詳細を生成します。

    以下のコマンドを実行します。

    # noobaa obc create <obc-name> -n openshift-storage

    <obc-name> を一意の OBC 名に置き換えます (例: myappobc)。

    さらに、--app-namespace オプションを使用して、OBC config map およびシークレットが作成される namespace を指定できます (例: myapp-namespace)。

    以下に例を示します。

    INFO[0001] ✅ Created: ObjectBucketClaim "test21obc"

    MCG コマンドラインインターフェイスが必要な設定を作成し、新規 OBC について OpenShift に通知します。

  2. 以下のコマンドを実行して OBC を表示します。

    # oc get obc -n openshift-storage

    以下に例を示します。

    NAME        STORAGE-CLASS                 PHASE   AGE
    test21obc   openshift-storage.noobaa.io   Bound   38s
  3. 以下のコマンドを実行して、新規 OBC の YAML ファイルを表示します。

    # oc get obc test21obc -o yaml -n openshift-storage

    以下に例を示します。

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      creationTimestamp: "2019-10-24T13:30:07Z"
      finalizers:
      - objectbucket.io/finalizer
      generation: 2
      labels:
        app: noobaa
        bucket-provisioner: openshift-storage.noobaa.io-obc
        noobaa-domain: openshift-storage.noobaa.io
      name: test21obc
      namespace: openshift-storage
      resourceVersion: "40756"
      selfLink: /apis/objectbucket.io/v1alpha1/namespaces/openshift-storage/objectbucketclaims/test21obc
      uid: 64f04cba-f662-11e9-bc3c-0295250841af
    spec:
      ObjectBucketName: obc-openshift-storage-test21obc
      bucketName: test21obc-933348a6-e267-4f82-82f1-e59bf4fe3bb4
      generateBucketName: test21obc
      storageClassName: openshift-storage.noobaa.io
    status:
      phase: Bound
  4. openshift-storage namespace 内で、config map およびシークレットを見つけ、この OBC を使用することができます。CM とシークレットの名前はこの OBC の名前と同じです。

    以下のコマンドを実行してシークレットを表示します。

    # oc get -n openshift-storage secret test21obc -o yaml

    以下に例を示します。

    apiVersion: v1
    data:
      AWS_ACCESS_KEY_ID: c0M0R2xVanF3ODR3bHBkVW94cmY=
      AWS_SECRET_ACCESS_KEY: Wi9kcFluSWxHRzlWaFlzNk1hc0xma2JXcjM1MVhqa051SlBleXpmOQ==
    kind: Secret
    metadata:
      creationTimestamp: "2019-10-24T13:30:07Z"
      finalizers:
      - objectbucket.io/finalizer
      labels:
        app: noobaa
        bucket-provisioner: openshift-storage.noobaa.io-obc
        noobaa-domain: openshift-storage.noobaa.io
      name: test21obc
      namespace: openshift-storage
      ownerReferences:
      - apiVersion: objectbucket.io/v1alpha1
        blockOwnerDeletion: true
        controller: true
        kind: ObjectBucketClaim
        name: test21obc
        uid: 64f04cba-f662-11e9-bc3c-0295250841af
      resourceVersion: "40751"
      selfLink: /api/v1/namespaces/openshift-storage/secrets/test21obc
      uid: 65117c1c-f662-11e9-9094-0a5305de57bb
    type: Opaque

    シークレットは S3 アクセス認証情報を提供します。

  5. 以下のコマンドを実行して config map を表示します。

    # oc get -n openshift-storage cm test21obc -o yaml

    以下に例を示します。

    apiVersion: v1
    data:
      BUCKET_HOST: 10.0.171.35
      BUCKET_NAME: test21obc-933348a6-e267-4f82-82f1-e59bf4fe3bb4
      BUCKET_PORT: "31242"
      BUCKET_REGION: ""
      BUCKET_SUBREGION: ""
    kind: ConfigMap
    metadata:
      creationTimestamp: "2019-10-24T13:30:07Z"
      finalizers:
      - objectbucket.io/finalizer
      labels:
        app: noobaa
        bucket-provisioner: openshift-storage.noobaa.io-obc
        noobaa-domain: openshift-storage.noobaa.io
      name: test21obc
      namespace: openshift-storage
      ownerReferences:
      - apiVersion: objectbucket.io/v1alpha1
        blockOwnerDeletion: true
        controller: true
        kind: ObjectBucketClaim
        name: test21obc
        uid: 64f04cba-f662-11e9-bc3c-0295250841af
      resourceVersion: "40752"
      selfLink: /api/v1/namespaces/openshift-storage/configmaps/test21obc
      uid: 651c6501-f662-11e9-9094-0a5305de57bb

    config map には、アプリケーションの S3 エンドポイント情報が含まれます。

11.7.3. OpenShift Web コンソールを使用した Object Bucket Claim の作成

OpenShift Web コンソールを使用して Object Bucket Claim を作成できます。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。
  • アプリケーションが OBC と通信できるようにするには、configmap およびシークレットを使用する必要があります。これに関する詳細情報は、「動的 Object Bucket Claim」 を参照してください。

手順

  1. OpenShift Web コンソールにログインします。
  2. 左側のナビゲーションバーで StorageObject StorageObject Bucket ClaimsCreate Object Bucket Claim をクリックします。

    1. Object Bucket Claim の名前を入力し、ドロップダウンメニューから、内部または外部かのデプロイメントに応じて適切なストレージクラスとバケットクラスを選択します。

      内部モード

      デプロイメント後に作成された以下のストレージクラスを使用できます。

      • ocs-storagecluster-ceph-rgw は Ceph Object Gateway (RGW) を使用します。
      • openshift-storage.noobaa.io は Multicloud Object Gateway (MCG) を使用します。
      外部モード

      デプロイメント後に作成された以下のストレージクラスを使用できます。

      • ocs-external-storagecluster-ceph-rgw は RGW を使用します。
      • openshift-storage.noobaa.io は MCG を使用します。

        注記

        RGW OBC ストレージクラスは、OpenShift Data Foundation バージョン 4.5 の新規インストールでのみ利用できます。これは、以前の OpenShift Data Foundation リリースからアップグレードされたクラスターには適用されません。

    2. Create をクリックします。

      OBC を作成すると、その詳細ページにリダイレクトされます。

11.7.4. Object Bucket Claim のデプロイメントへの割り当て

Object Bucket Claim (OBC) は作成後に、特定のデプロイメントに割り当てることができます。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。

手順

  1. 左側のナビゲーションバーで StorageObject StorageObject Bucket Claims をクリックします。
  2. 作成した OBC の横にあるアクションメニュー (⋮) をクリックします。

    1. ドロップダウンメニューで、Attach to Deployment を選択します。
    2. Deployment Name リストから必要なデプロイメントを選択し、Attach をクリックします。

11.7.5. OpenShift Web コンソールを使用したオブジェクトバケットの表示

OpenShift Web コンソールを使用して、Object Bucket Claim (OBC) 用に作成されたオブジェクトバケットの詳細を表示できます。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。

手順

  1. OpenShift Web コンソールにログインします。
  2. 左側のナビゲーションバーで StorageObject StorageObject Buckets をクリックします。

    オプション: 特定の OBC の詳細ページに移動し、Resource リンクをクリックして、その OBC のオブジェクトバケットを表示することもできます。

  3. 詳細を表示するオブジェクトバケットを選択します。選択すると、Object Bucket Details ページに移動します。

11.7.6. Object Bucket Claim の削除

前提条件

  • OpenShift Web コンソールへの管理者アクセス。

手順

  1. 左側のナビゲーションバーで StorageObject StorageObject Bucket Claims をクリックします。
  2. 削除する Object Bucket Claim (OBC) の横にあるアクションメニュー (⋮) をクリックします。

    1. Delete Object Bucket Claim を選択します。
    2. Delete をクリックします。

11.8. オブジェクトバケットのキャッシュポリシー

キャッシュバケットは、ハブのターゲットとキャッシュターゲットが指定された namespace バケットです。ハブのターゲットは、S3 と互換性のある大規模なオブジェクトストレージバケットです。キャッシュのバケットは、ローカルの Multicloud Object Gateway バケットです。AWS バケットまたは IBM COS バケットをキャッシュするキャッシュバケットを作成できます。

重要

Cache バケットはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

11.8.1. AWS キャッシュバケットの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

  1. NamespaceStore リソースを作成します。NamespaceStore は、MCG namespace バケットでデータの読み取りおよび書き込みターゲットとして使用される基礎となるストレージを表します。MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa namespacestore create aws-s3 <namespacestore> --access-key <AWS ACCESS KEY> --secret-key <AWS SECRET ACCESS KEY> --target-bucket <bucket-name>
    1. <namespacestore> を namespacestore の名前に置き換えます。
    2. <AWS ACCESS KEY> および <AWS SECRET ACCESS KEY> を、作成した AWS アクセスキー ID およびシークレットアクセスキーに置き換えます。
    3. <bucket-name> を既存の AWS バケット名に置き換えます。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。

      YAML を適用してストレージリソースを追加することもできます。まず、認証情報を使用してシークレットを作成します。

      apiVersion: v1
      kind: Secret
      metadata:
        name: <namespacestore-secret-name>
      type: Opaque
      data:
        AWS_ACCESS_KEY_ID: <AWS ACCESS KEY ID ENCODED IN BASE64>
        AWS_SECRET_ACCESS_KEY: <AWS SECRET ACCESS KEY ENCODED IN BASE64>

      Base64 を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定し、エンコードし、その結果を <AWS ACCESS KEY ID ENCODED IN BASE64> および <AWS SECRET ACCESS KEY ENCODED IN BASE64> に使用する必要があります。

      <namespacestore-secret-name> を一意の名前に置き換えます。

      次に、以下の YAML を適用します。

      apiVersion: noobaa.io/v1alpha1
      kind: NamespaceStore
      metadata:
        finalizers:
        - noobaa.io/finalizer
        labels:
          app: noobaa
        name: <namespacestore>
        namespace: openshift-storage
      spec:
        awsS3:
          secret:
            name: <namespacestore-secret-name>
            namespace: <namespace-secret>
          targetBucket: <target-bucket>
        type: aws-s3
    4. <namespacestore> を一意の名前に置き換えます。
    5. <namespacestore-secret-name> を、直前の手順で作成されたシークレットに置き換えます。
    6. <namespace-secret> を、直前の手順でシークレットを作成するために使用された namespace に置き換えます。
    7. <target-bucket> を namespacestore 用に作成した AWS S3 バケットに置き換えます。
  2. 以下のコマンドを実行してバケットクラスを作成します。

    noobaa bucketclass create namespace-bucketclass cache <my-cache-bucket-class> --backingstores <backing-store> --hub-resource <namespacestore>
    1. <my-cache-bucket-class> を一意のバケットクラス名に置き換えます。
    2. <backing-store> を関連するバッキングストアに置き換えます。コンマで区切られた 1 つ以上のバッキングストアをリスト表示できます。
    3. <namespacestore> を、直前の手順で作成された namespacestore に置き換えます。
  3. 以下のコマンドを実行して、手順 2 に定義されたバケットクラスを使用する Object Bucket Claim (OBC) リソースを使用してバケットを作成します。

    noobaa obc create <my-bucket-claim> my-app --bucketclass <custom-bucket-class>
    1. <my-bucket-claim> を一意の名前に置き換えます。
    2. <custom-bucket-class> を、手順 2 で作成したバケットクラスの名前に置き換えます。

11.8.2. IBM COS キャッシュバケットの作成

前提条件

  • カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にします。

    注記

    アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは、Linux (x86_64)、Windows、Mac OS です。

手順

  1. NamespaceStore リソースを作成します。NamespaceStore は、MCG namespace バケットでデータの読み取りおよび書き込みターゲットとして使用される基礎となるストレージを表します。MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa namespacestore create ibm-cos <namespacestore> --endpoint <IBM COS ENDPOINT> --access-key <IBM ACCESS KEY> --secret-key <IBM SECRET ACCESS KEY> --target-bucket <bucket-name>
    1. <namespacestore> を NamespaceStore の名前に置き換えます。
    2. <IBM ACCESS KEY>, <IBM SECRET ACCESS KEY>, <IBM COS ENDPOINT> を IBM アクセスキー ID、シークレットアクセスキー、および既存の IBM バケットの場所に対応する地域のエンドポイントに置き換えます。
    3. <bucket-name> を既存の IBM バケット名に置き換えます。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。

      YAML を適用してストレージリソースを追加することもできます。まず、認証情報を使用してシークレットを作成します。

      apiVersion: v1
      kind: Secret
      metadata:
        name: <namespacestore-secret-name>
      type: Opaque
      data:
        IBM_COS_ACCESS_KEY_ID: <IBM COS ACCESS KEY ID ENCODED IN BASE64>
        IBM_COS_SECRET_ACCESS_KEY: <IBM COS SECRET ACCESS KEY ENCODED IN BASE64>

      Base64 を使用して独自の IBM COS アクセスキー ID およびシークレットアクセスキーを指定し、エンコードし、その結果を <IBM COS ACCESS KEY ID ENCODED IN BASE64> および <IBM COS SECRET ACCESS KEY ENCODED IN BASE64> に使用する必要があります。

      <namespacestore-secret-name> を一意の名前に置き換えます。

      次に、以下の YAML を適用します。

      apiVersion: noobaa.io/v1alpha1
      kind: NamespaceStore
      metadata:
        finalizers:
        - noobaa.io/finalizer
        labels:
          app: noobaa
        name: <namespacestore>
        namespace: openshift-storage
      spec:
        s3Compatible:
          endpoint: <IBM COS ENDPOINT>
          secret:
            name: <backingstore-secret-name>
            namespace: <namespace-secret>
          signatureVersion: v2
          targetBucket: <target-bucket>
        type: ibm-cos
    4. <namespacestore> を一意の名前に置き換えます。
    5. <IBM COS ENDPOINT> を適切な IBM COS エンドポイントに置き換えます。
    6. <backingstore-secret-name> を、直前の手順で作成されたシークレットに置き換えます。
    7. <namespace-secret> を、直前の手順でシークレットを作成するために使用された namespace に置き換えます。
    8. <target-bucket> を namespacestore 用に作成した AWS S3 バケットに置き換えます。
  2. 以下のコマンドを実行してバケットクラスを作成します。

    noobaa bucketclass create namespace-bucketclass cache <my-bucket-class> --backingstores <backing-store> --hubResource <namespacestore>
    1. <my-bucket-class> を一意のバケットクラス名に置き換えます。
    2. <backing-store> を関連するバッキングストアに置き換えます。コンマで区切られた 1 つ以上のバッキングストアをリスト表示できます。
    3. <namespacestore> を、直前の手順で作成された namespacestore に置き換えます。
  3. 以下のコマンドを実行して、手順 2 に定義されたバケットクラスを使用する Object Bucket Claim リソースを使用してバケットを作成します。

    noobaa obc create <my-bucket-claim> my-app --bucketclass <custom-bucket-class>
    1. <my-bucket-claim> を一意の名前に置き換えます。
    2. <custom-bucket-class> を、手順 2 で作成したバケットクラスの名前に置き換えます。

11.9. エンドポイントの追加による Multicloud Object Gateway パフォーマンスのスケーリング

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

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

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

11.9.1. ストレージノードを使用した Multicloud Object Gateway のスケーリング

前提条件

  • Multicloud Object Gateway (MCG) にアクセスできる OpenShift Container Platform で実行中の OpenShift Data Foundation クラスター。

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

手順

  1. OpenShift Web Console にログインします。
  2. MCG ユーザーインターフェイスから OverviewAdd Storage Resources をクリックします。
  3. ウィンドウから Deploy Kubernetes Pool をクリックします。
  4. Create Pool 手順で、今後インストールされるノードのターゲットプールを作成します。
  5. Configure 手順で、要求される Pod 数と各 PV のサイズを設定します。新規 Pod ごとに、1 つの PV が作成されます。
  6. Review 手順で、新規プールの詳細を検索し、ローカルまたは外部デプロイメントのいずれかの使用するデプロイメント方法を選択します。ローカルデプロイメントが選択されている場合、Kubernetes ノードはクラスター内にデプロイされます。外部デプロイメントが選択されている場合、外部で実行するための YAML ファイルが提供されます。
  7. すべてのノードは最初の手順で選択したプールに割り当てられ、ResourcesStorage resourcesResource name の下で確認できます。

11.10. MultiCloud Object Gateway エンドポイントの自動スケーリング

MultiCloud Object Gateway (MCG) の S3 サービスの負荷が増減すると、MCG エンドポイントの数が自動的にスケーリングされます。OpenShift Data Foundation クラスターは、アクティブな MCG エンドポイントを 1 つ使用してデプロイされます。デフォルトでは、MCG エンドポイント Pod はそれぞれ、CPU 1 つ、メモリー要求 2 Gi、要求に一致する制限で設定されます。エンドポイントの CPU 負荷が一貫した期間、使用率 80% のしきい値を超えると、2 番目のエンドポイントがデプロイされ、最初のエンドポイントの負荷を軽減します。両方のエンドポイントの平均 CPU 負荷が、一貫した期間 80% のしきい値を下回ると、エンドポイントの 1 つが削除されます。この機能により、MCG のパフォーマンスおよび保守性が向上します。

次の oc patch コマンドを使用して、noobaa-endpoint の Horizontal Pod Autoscaler (HPA) をスケーリングできます。次に例を示します。

# oc patch -n openshift-storage storagecluster ocs-storagecluster \
    --type merge \
    --patch '{"spec": {"multiCloudGateway": {"endpoints": {"minCount": 3,"maxCount": 10}}}}'

上記の例では、minCount3 に、maxCount を `10` に設定しています。

第12章 永続ボリューム要求の管理

重要

PVC の拡張は OpenShift Data Foundation がサポートする PVC ではサポートされません。

12.1. OpenShift Data Foundation を使用するためのアプリケーション Pod の設定

このセクションの手順に従って、OpenShift Data Foundation をアプリケーション Pod のストレージとして設定します。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。
  • OpenShift Data Foundation Operator が openshift-storage namespace にインストールされ、実行されている。OpenShift Web Console で、OperatorsInstalled Operators をクリックしてインストールされた Operator を表示します。
  • OpenShift Data Foundation が提供するデフォルトのストレージクラスが利用可能である。OpenShift Web コンソールで StorageStorageClasses をクリックし、デフォルトのストレージクラスを表示します。

手順

  1. 使用するアプリケーションの永続ボリューム要求を作成します。

    1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
    2. アプリケーション Pod の Project を設定します。
    3. Create Persistent Volume Claim をクリックします。

      1. OpenShift Data Foundation によって提供される Storage Class を指定します。
      2. PVC Name (例: myclaim) を指定します。
      3. 必要な Access Mode を選択します。

        注記

        IBM FlashSystem では Access ModeShared access (RWX) はサポートされません。

      4. Rados Block Device (RBD) の場合は、Access mode が ReadWriteOnce (RWO) であれば、必須の Volume mode を選択します。デフォルトのボリュームモードは、Filesystem です。
      5. アプリケーション要件に応じて Size を指定します。
      6. Create をクリックし、PVC のステータスが Bound になるまで待機します。
  2. 新規または既存のアプリケーション Pod を新規 PVC を使用するように設定します。

    • 新規アプリケーション Pod の場合は、以下の手順を実行します。

      1. WorkloadsPods をクリックします。
      2. 新規アプリケーション Pod を作成します。
      3. spec: セクションの下に volumes: セクションを追加し、新規 PVC をアプリケーション Pod のボリュームとして追加します。

        volumes:
          - name: <volume_name>
            persistentVolumeClaim:
              claimName: <pvc_name>

        以下に例を示します。

        volumes:
          - name: mypd
            persistentVolumeClaim:
              claimName: myclaim
    • 既存のアプリケーション Pod の場合、以下の手順を実行します。

      1. WorkloadsDeployment Configs をクリックします。
      2. アプリケーション Pod に関連付けられた必要なデプロイメント設定を検索します。
      3. Action メニュー (⋮)Edit Deployment Config をクリックします。
      4. spec: セクションの下に volumes: セクションを追加し、新規 PVC をアプリケーション Pod のボリュームとして追加し、Save をクリックします。

        volumes:
          - name: <volume_name>
            persistentVolumeClaim:
              claimName: <pvc_name>

        以下に例を示します。

        volumes:
          - name: mypd
            persistentVolumeClaim:
              claimName: myclaim
  3. 新しい設定が使用されていることを確認します。

    1. WorkloadsPods をクリックします。
    2. アプリケーション Pod の Project を設定します。
    3. アプリケーション Pod が Running ステータスで表示されていることを確認します。
    4. アプリケーション Pod 名をクリックし、Pod の詳細を表示します。
    5. Volumes セクションまでスクロールダウンし、ボリュームに新規永続ボリューム要求に一致する Type があることを確認します (例: myclaim)。

12.2. 永続ボリューム要求の要求ステータスの表示

以下の手順を使用して、PVC 要求のステータスを表示します。

前提条件

  • OpenShift Data Foundation への管理者アクセス。

手順

  1. OpenShift Web コンソールにログインします。
  2. StoragePersistent Volume Claims をクリックします。
  3. Filter テキストボックスを使用して、必要な PVC 名を検索します。また、リストを絞り込むために Name または Label で PVC のリストをフィルターすることもできます。
  4. 必要な PVC に対応する Status 列を確認します。
  5. 必要な Name をクリックして PVC の詳細を表示します。

12.3. 永続ボリューム要求の要求イベントの確認

以下の手順を使用して、永続ボリューム要求 (PVC) の要求イベントを確認し、これに対応します。

前提条件

  • OpenShift Web コンソールへの管理者アクセス。

手順

  1. OpenShift Web Console で、Storage → Data Foundation をクリックします。
  2. Storage systems タブでストレージシステムを選択し、OverviewBlock and File タブをクリックします。
  3. Inventory カードを見つけ、エラーのある PVC の数を確認します。
  4. StoragePersistent Volume Claims をクリックします。
  5. Filter テキストボックスを使用して、必要な PVC を検索します。
  6. PVC 名をクリックし、Events に移動します。
  7. 必要に応じて、または指示に応じてイベントに対応します。

12.4. 動的プロビジョニング

12.4.1. 動的プロビジョニングについて

StorageClass リソースオブジェクトは、要求可能なストレージを記述し、分類するほか、要求に応じて動的にプロビジョニングされるストレージのパラメーターを渡すための手段を提供します。StorageClass オブジェクトは、さまざまなレベルのストレージおよびストレージへのアクセスを制御するための管理メカニズムとしても機能します。クラスター管理者 (cluster-admin) またはストレージ管理者 (storage-admin) は、ユーザーが基礎となるストレージボリュームソースに関する詳しい知識なしに要求できる StorageClass オブジェクトを定義し、作成します。

OpenShift Container Platform の永続ボリュームフレームワークはこの機能を有効にし、管理者がクラスターに永続ストレージをプロビジョニングできるようにします。フレームワークにより、ユーザーは基礎となるインフラストラクチャーの知識がなくてもこれらのリソースを要求できるようになります。

OpenShift Container Platform では、数多くのストレージタイプを永続ボリュームとして使用することができます。ストレージプラグインは、静的プロビジョニング、動的プロビジョニング、または両方のプロビジョニングタイプをサポートする場合があります。

12.4.2. OpenShift Data Foundation での動的プロビジョニング

Red Hat OpenShift Data Foundation は、コンテナー環境向けに最適化されたソフトウェアで定義されるストレージです。このソフトウェアは、OpenShift Container Platform の Operator として実行されるため、コンテナーの永続ストレージ管理を高度に統合し、簡素化できます。

OpenShift Data Foundation は、以下を含む各種のストレージタイプをサポートします。

  • データベースのブロックストレージ
  • 継続的な統合、メッセージングおよびデータ集約のための共有ファイルストレージ
  • アーカイブ、バックアップ、およびメディアストレージのオブジェクトストレージ

バージョン 4 では、Red Hat Ceph Storage を使用して永続ボリュームをサポートするファイル、ブロック、およびオブジェクトストレージを提供し、Rook.io を使用して永続ボリュームおよび要求のプロビジョニングを管理し、オーケストレーションします。NooBaa はオブジェクトストレージを提供し、その Multicloud Gateway は複数のクラウド環境でのオブジェクトのフェデレーションを可能にします (テクノロジープレビューとしてご利用いただけます)。

OpenShift Data Foundation 4 では、RADOS Block Device (RBD) および Ceph File System (CephFS) の Red Hat Ceph Storage Container Storage Interface (CSI) ドライバーが動的プロビジョニング要求を処理します。PVC 要求が動的に送信される場合は、CSI ドライバーで以下のオプションを使用できます。

  • ボリュームモードが Block の Ceph RBD をベースとする PVC (ReadWriteOnce (RWO) および ReadWriteMany (RWX) アクセス) を作成します。
  • ボリュームモードが Filesystem の Ceph RBD をベースとする PVC (ReadWriteOnce (RWO) アクセス) を作成します。
  • ボリュームモードが Filesystem の CephFS をベースとする PVC (ReadWriteOnce (RWO) および ReadWriteMany (RWX) アクセス) を作成します。
  • CephFS、NFS、および RBD に基づく ReadWriteOncePod (RWOP) アクセスが割り当てられた PVC を作成します。RWOP アクセスモードでは、単一ノードの単一 Pod によってボリュームを読み取り/書き込みとしてマウントします。

使用するドライバー (RBD または CephFS) の判断は、storageclass.yaml ファイルのエントリーに基づいて行われます。

12.4.3. 利用可能な動的プロビジョニングプラグイン

OpenShift Container Platform は、以下のプロビジョナープラグインを提供します。これらには、クラスターの設定済みプロバイダーの API を使用して新規ストレージリソースを作成する動的プロビジョニング用の一般的な実装が含まれます。

ストレージタイププロビジョナープラグインの名前注記

OpenStack Cinder

kubernetes.io/cinder

 

AWS Elastic Block Store (EBS)

kubernetes.io/aws-ebs

複数クラスターを複数の異なるゾーンで使用する際の動的プロビジョニングの場合は、各ノードに Key=kubernetes.io/cluster/<cluster_name>,Value=<cluster_id> のタグを付けます。ここで、<cluster_name> および <cluster_id> はクラスターごとに固有の値になります。

AWS Elastic File System (EFS)

 

動的プロビジョニングは、EFS プロビジョナー Pod で実行され、プロビジョナープラグインでは実行されません。

Azure Disk

kubernetes.io/azure-disk

 

Azure File

kubernetes.io/azure-file

persistent-volume-binder ServiceAccount では、Azure ストレージアカウントおよびキーを保存するためにシークレットを作成し、取得するためのパーミッションが必要です。

GCE Persistent Disk (gcePD)

kubernetes.io/gce-pd

マルチゾーン設定では、GCE プロジェクトごとに OpenShift Container Platform クラスターを実行し、現行クラスターのノードが存在しないゾーンで PV が作成されないようにすることが推奨されます。

VMware vSphere

kubernetes.io/vsphere-volume

 

Red Hat Virtualization

csi.ovirt.org

 
重要

選択したプロビジョナープラグインでは、関連するクラウド、ホスト、またはサードパーティープロバイダーを、関連するドキュメントに従って設定する必要もあります。

第13章 ボリュームスナップショット

ボリュームスナップショットは、特定の時点におけるクラスター内のストレージボリュームの状態を表します。これらのスナップショットは、毎回フルコピーを作成する必要がないため、より効率的にストレージを使用するのに役立ち、アプリケーション開発のビルディングブロックとして使用できます。

同じ永続ボリューム要求 (PVC) の複数のスナップショットを作成できます。CephFS の場合、PVC ごとに最大 100 スナップショットを作成できます。RADOS Block Device (RBD) の場合は、PVC ごとに最大 512 スナップショットを作成できます。

注記

スナップショットの定期的な作成をスケジュールすることはできません。

13.1. ボリュームスナップショットの作成

Persistent Volume Claim ページまたは Volume Snapshots ページのいずれかからボリュームスナップショットを作成できます。

前提条件

  • 一貫性のあるスナップショットを使用するには、PVC は Bound 状態にあり、使用されていない必要があります。スナップショットを作成する前に、必ずすべての IO を停止してください。
注記

OpenShift Data Foundation は、Pod が PVC のボリュームスナップショットを使用している場合のみ、その PVC のボリュームスナップショットのクラッシュ一貫性を提供します。アプリケーションの一貫性を保つために、まず実行中の Pod を破棄してスナップショットの一貫性を確保するか、アプリケーションが提供する静止メカニズムを使用してこれを確保します。

手順

Persistent Volume Claims ページで以下を実行します。
  1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
  2. ボリュームのスナップショットを作成するには、以下のいずれかを実行します。

    • 必要な PVC の横にある Action メニュー (⋮)Create Snapshot をクリックします。
    • スナップショットを作成する PVC をクリックし、ActionsCreate Snapshot をクリックします。
  3. ボリュームスナップショットの Name を入力します。
  4. ドロップダウンリストから Snapshot Class を選択します。
  5. Create をクリックします。作成されるボリュームスナップショットの Details ページにリダイレクトされます。
Volume Snapshots ページで以下を実行します。
  1. OpenShift Web コンソールで StorageVolume Snapshots をクリックします。
  2. Volume Snapshots ページで、Create Volume Snapshot をクリックします。
  3. ドロップダウンリストから必要な Project を選択します。
  4. ドロップダウンリストから Persistent Volume Claim を選択します。
  5. スナップショットの Name を入力します。
  6. ドロップダウンリストから Snapshot Class を選択します。
  7. Create をクリックします。作成されるボリュームスナップショットの Details ページにリダイレクトされます。

検証手順

  • PVC の Details ページに移動し、Volume Snapshots タブをクリックしてボリュームスナップショットのリストを表示します。新規スナップショットがリスト表示されていることを確認します。
  • OpenShift Web コンソールで StorageVolume Snapshots をクリックします。新規スナップショットがリスト表示されていることを確認します。
  • ボリュームスナップショットが Ready 状態になるまで待機します。

13.2. ボリュームスナップショットの復元

ボリュームスナップショットを復元する際に、新規の永続ボリューム要求が作成されます。復元される PVC はボリュームスナップショットおよび親 PVC とは切り離されています。

Persistent Volume Claim ページまたは Volume Snapshots ページのいずれかからボリュームスナップショットを復元できます。

手順

Persistent Volume Claims ページで以下を実行します。

親 PVC が存在する場合に限り、Persistent Volume Claims ページからボリュームスナップショットを復元できます。

  1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
  2. ボリュームスナップショットと共に PVC 名をクリックし、ボリュームスナップショットを新規 PVC として復元します。
  3. Volume Snapshots タブで、復元するボリュームスナップショットの横にある Action メニュー (⋮) をクリックします。
  4. Restore as new PVC をクリックします。
  5. 新規 PVC の名前を入力します。
  6. Storage Class 名を選択します。
  7. 任意の Access Mode を選択します。

    重要

    ReadOnlyMany (ROX) アクセスモードは開発者プレビュー機能であり、開発者プレビューのサポート制限の対象となります。開発者プレビューリリースは、実稼働環境で実行することは意図されておらず、Red Hat カスタマーポータルのケース管理システムではサポートされません。ReadOnlyMany 機能に関してサポートが必要な場合は、ocs-devpreview@redhat.com メーリングリストに連絡してください。Red Hat Development Team のメンバーが稼働状況とスケジュールに応じて可能な限り迅速に対応します。ROX アクセスモードの使用は、Creating a clone or restoring a snapshot with the new readonly access mode を参照してください。

  8. オプション: RBD の場合は、Volume mode を選択します。
  9. Restore をクリックします。新規 PVC の詳細ページにリダイレクトされます。
Volume Snapshots ページで以下を実行します。
  1. OpenShift Web コンソールで StorageVolume Snapshots をクリックします。
  2. Volume Snapshots タブで、復元するボリュームスナップショットの横にある Action メニュー (⋮) をクリックします。
  3. Restore as new PVC をクリックします。
  4. 新規 PVC の名前を入力します。
  5. Storage Class 名を選択します。
  6. 任意の Access Mode を選択します。

    重要

    ReadOnlyMany (ROX) アクセスモードは開発者プレビュー機能であり、開発者プレビューのサポート制限の対象となります。開発者プレビューリリースは、実稼働環境で実行することは意図されておらず、Red Hat カスタマーポータルのケース管理システムではサポートされません。ReadOnlyMany 機能に関してサポートが必要な場合は、ocs-devpreview@redhat.com メーリングリストに連絡してください。Red Hat Development Team のメンバーが稼働状況とスケジュールに応じて可能な限り迅速に対応します。ROX アクセスモードの使用は、Creating a clone or restoring a snapshot with the new readonly access mode を参照してください。

  7. オプション: RBD の場合は、Volume mode を選択します。
  8. Restore をクリックします。新規 PVC の詳細ページにリダイレクトされます。

検証手順

  • OpenShift Web コンソールから StoragePersistent Volume Claims をクリックし、新規 PVC が Persistent Volume Claims ページにリスト表示されていることを確認します。
  • 新規 PVC が Bound の状態になるまで待機します。

13.3. ボリュームスナップショットの削除

前提条件

  • ボリュームスナップショットを削除する場合は、その特定のボリュームスナップショットで使用されるボリュームスナップショットクラスが存在している必要があります。

手順

Persistent Volume Claims ページで以下を実行します。
  1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
  2. 削除する必要のあるボリュームスナップショットがある PVC 名をクリックします。
  3. Volume Snapshots タブで、必要なボリュームスナップショットの横にある Action メニュー (⋮)Delete Volume Snapshot をクリックします。
Volume Snapshots ページで以下を実行します。
  1. OpenShift Web コンソールで StorageVolume Snapshots をクリックします。
  2. Volume Snapshots ページで、必要なスナップショットの横にある Action メニュー (⋮)Delete Volume Snapshot をクリックします。

検証手順

  • 削除されたボリュームスナップショットが PVC の詳細ページの Volume Snapshots タブにないことを確認します。
  • StorageVolume Snapshots をクリックし、削除されたボリュームスナップショットがリスト表示されていないことを確認します。

第14章 ボリュームのクローン作成

クローンは、標準のボリュームとして使用される既存のストレージボリュームの複製です。ボリュームのクローンを作成し、データの特定の時点のコピーを作成します。永続ボリューム要求は別のサイズでクローンできません。CephFS および RADOS Block Device (RBD) の両方で、PVC ごとに最大 512 のクローンを作成できます。

14.1. クローンの作成

前提条件

  • ソース PVC は Bound 状態にある必要があり、使用中の状態にすることはできません。
注記

Pod が PVC を使用している場合は、PVC のクローンを作成しません。これを実行すると、PVC が一時停止 (停止) されないため、データが破損する可能性があります。

手順

  1. OpenShift Web コンソールで、StoragePersistent Volume Claims をクリックします。
  2. クローンを作成するには、以下のいずれかを実行します。

    • 必要な PVC の横にある Action メニュー (⋮)Clone PVC をクリックします。
    • クローンを作成する必要のある PVC をクリックし、ActionsClone PVC をクリックします。
  3. クローンの Name を入力します。
  4. 任意のアクセスモードを選択します。

    重要

    ReadOnlyMany (ROX) アクセスモードは開発者プレビュー機能であり、開発者プレビューのサポート制限の対象となります。開発者プレビューリリースは、実稼働環境で実行することは意図されておらず、Red Hat カスタマーポータルのケース管理システムではサポートされません。ReadOnlyMany 機能に関してサポートが必要な場合は、ocs-devpreview@redhat.com メーリングリストに連絡してください。Red Hat Development Team のメンバーが稼働状況とスケジュールに応じて可能な限り迅速に対応します。ROX アクセスモードの使用は、Creating a clone or restoring a snapshot with the new readonly access mode を参照してください。

  5. 必要なクローンのサイズを入力します。
  6. クローンを作成するストレージクラスを選択します。

    ストレージクラスは任意の RBD ストレージクラスにすることができ、必ずしも親 PVC と同じである必要はありません。

  7. Clone をクリックします。新規 PVC の詳細ページにリダイレクトされます。
  8. クローン作成された PVC のステータスが Bound になるまで待機します。

    クローン作成された PVC が Pod で使用できるようになります。このクローン作成された PVC は dataSource PVC とは切り離されています。

第15章 ストレージノードの置き換え

以下のいずれかの手順を選択して、ストレージノードを置き換えることができます。

15.1. Red Hat OpenStack Platform のインストーラーでプロビジョニングされるインフラストラクチャーで動作するノードの置き換え

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 置き換える必要のあるノードを特定します。その マシン名 をメモします。
  3. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
    <node_name>
    置き換える必要のあるノードの名前を指定します。
  4. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-emptydir-data=true --ignore-daemonsets
    重要

    このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。この期間中に生成された Ceph エラーは一時的なものであり、新しいノードにラベルを付けると自動的に解決され、機能します。

  5. ComputeMachines をクリックします。必要なマシンを検索します。
  6. 必要なマシンの横にある Action menu (⋮)Delete Machine をクリックします。
  7. Delete をクリックして、マシンが削除されたことを確認します。新しいマシンが自動的に作成されます。
  8. 新規マシンが起動し、Running 状態に移行するまで待機します。

    重要

    このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。

  9. ComputeNodes をクリックします。新しいノードが Ready 状態にあることを確認します。
  10. OpenShift Data Foundation ラベルを新規ノードに適用します。

    ユーザーインターフェイスから
    1. 新規ノードで、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • OpenShift Data Foundation ラベルを新規ノードに適用します。
    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
    <new_node_name>
    新しいノードの名前を指定します。

検証手順

  1. 新しいノードが出力に存在することを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックします。新しいノードの少なくとも次の Pod が Running 状態になっていることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Data Foundation Pod が Running 状態にあることを確認します。
  4. 新しいオブジェクトストレージデバイス (OSD) Pod が置き換えるノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
  5. (オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新しい各ノードに以下を実行します。

    1. デバッグ Pod を作成し、選択した 1 つ以上のホストの chroot 環境を開きます。

      $ oc debug node/<node_name>
      $ chroot /host
    2. 使用可能なブロックデバイスのリストを表示します。

      $ lsblk

      1 つ以上の ocs-deviceset 名の横にある crypt キーワードを確認します。

  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

15.2. Red Hat OpenStack Platform のインストーラーでプロビジョニングされるインフラストラクチャーでの障害のあるノードの置き換え

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 障害のあるノードを特定し、その Machine Name をクリックします。
  3. ActionsEdit Annotations をクリックし、Add More をクリックします。
  4. machine.openshift.io/exclude-node-draining を追加し、Save をクリックします。
  5. ActionsDelete Machine をクリックしてから、Delete をクリックします。
  6. 新しいマシンが自動的に作成されます。新規マシンが起動するのを待機します。

    重要

    このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。この期間中に生成された Ceph エラーは一時的なものであり、新しいノードにラベルを付けると自動的に解決され、機能します。

  7. ComputeNodes をクリックします。新しいノードが Ready 状態にあることを確認します。
  8. 以下のいずれかを使用して、OpenShift Data Foundation ラベルを新規ノードに適用します。

    ユーザーインターフェイスから
    1. 新規ノードで、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • OpenShift Data Foundation ラベルを新規ノードに適用します。
    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
    <new_node_name>
    新しいノードの名前を指定します。
  9. オプション: 障害のある Red Hat OpenStack Platform インスタンスが自動的に削除されない場合は、Red Hat OpenStack Platform コンソールからインスタンスを終了します。

検証手順

  1. 新しいノードが出力に存在することを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックします。新しいノードの少なくとも次の Pod が Running 状態になっていることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Data Foundation Pod が Running 状態にあることを確認します。
  4. 新しいオブジェクトストレージデバイス (OSD) Pod が置き換えるノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
  5. (オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新しい各ノードに以下を実行します。

    1. デバッグ Pod を作成し、選択した 1 つ以上のホストの chroot 環境を開きます。

      $ oc debug node/<node_name>
      $ chroot /host
    2. 使用可能なブロックデバイスのリストを表示します。

      $ lsblk

      1 つ以上の ocs-deviceset 名の横にある crypt キーワードを確認します。

  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

第16章 ストレージデバイスの置き換え

16.1. Red Hat OpenStack Platform のインストーラーでプロビジョニングされるインフラストラクチャーで動作するストレージデバイスまたは障害のあるストレージデバイスの置き換え

以下の手順を使用して、Red Hat OpenStack Platform にデプロイされた OpenShift Data Foundation のストレージデバイスを置き換えます。この手順は、新規ボリュームで新規の永続ボリューム要求 (PVC) を作成し、古いオブジェクトストレージデバイス (OSD) を削除するのに役立ちます。

手順

  1. 置き換える必要がある OSD と、その OSD がスケジュールされている OpenShift Container Platform ノードを特定します。

    $ oc get -n openshift-storage pods -l app=rook-ceph-osd -o wide

    出力例:

    rook-ceph-osd-0-6d77d6c7c6-m8xj6    0/1    CrashLoopBackOff    0    24h   10.129.0.16   compute-2   <none>           <none>
    rook-ceph-osd-1-85d99fb95f-2svc7    1/1    Running             0    24h   10.128.2.24   compute-0   <none>           <none>
    rook-ceph-osd-2-6c66cdb977-jp542    1/1    Running             0    24h   10.130.0.18   compute-1   <none>           <none>

    この例では、rook-ceph-osd-0-6d77d6c7c6-m8xj6 を置き換える必要があり、compute-2 は OSD がスケジュールされる OpenShift Container platform ノードです。

    注記

    置き換える OSD が正常である場合、Pod のステータスは Running になります。

  2. 置き換えられる OSD の OSD デプロイメントをスケールダウンします。

    $ osd_id_to_remove=0
    $ oc scale -n openshift-storage deployment rook-ceph-osd-${osd_id_to_remove} --replicas=0

    ここで、osd_id_to_remove は Pod 名の rook-ceph-osd 接頭辞の直後にくる整数です。この例では、デプロイメント名は rook-ceph-osd-0 です。

    出力例:

    deployment.extensions/rook-ceph-osd-0 scaled
  3. rook-ceph-osd Pod が停止していることを確認します。

    $ oc get -n openshift-storage pods -l ceph-osd-id=${osd_id_to_remove}

    出力例:

    No resources found.
    注記

    rook-ceph-osd Pod が terminating 状態にある場合は、force オプションを使用して Pod を削除します。

    $ oc delete pod rook-ceph-osd-0-6d77d6c7c6-m8xj6 --force --grace-period=0

    出力例:

    warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
      pod "rook-ceph-osd-0-6d77d6c7c6-m8xj6" force deleted
  4. 障害の発生した OSD に関連付けられた永続ボリュームが失敗する場合、失敗した永続ボリュームの詳細を取得し、以下のコマンドを使用してそれらを削除します。

    $ oc get pv
    $ oc delete pv <failed-pv-name>
  5. 新規 OSD を追加できるようにクラスターから古い OSD を削除します。

    1. 古い ocs-osd-removal ジョブを削除します。

      $ oc delete -n openshift-storage job ocs-osd-removal-${osd_id_to_remove}

      出力例:

      job.batch "ocs-osd-removal-0" deleted
    2. openshift-storage プロジェクトを変更します。

      $ oc project openshift-storage
    3. クラスターから以前の OSD を削除します。

      $ oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_id_to_remove} FORCE_OSD_REMOVAL=false |oc create -n openshift-storage -f -

      コマンドでコンマ区切りの OSD ID を追加して、複数の OSD を削除できます。(例: FAILED_OSD_IDS=0,1,2)

      3 つの OSD しかないクラスター、または OSD が削除された後にデータの 3 つのレプリカすべてを復元するのに十分なスペースがないクラスターでは、FORCE_OSD_REMOVAL 値を “true” に変更する必要があります。

      警告

      この手順により、OSD はクラスターから完全に削除されます。osd_id_to_remove の正しい値が指定されていることを確認します。

  6. ocs-osd-removal-job Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。

    Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

    # oc get pod -l job-name=ocs-osd-removal-job -n openshift-storage
  7. OSD の取り外しが完了したことを確認します。

    $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1 | egrep -i 'completed removal'

    出力例:

    2022-05-10 06:50:04.501511 I | cephosd: completed removal of OSD 0
    重要

    ocs-osd-removal-job が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。

    以下に例を示します。

    # oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1
  8. 暗号化がインストール時に有効にされている場合は、それぞれの OpenShift Data Foundation ノードから削除された OSD デバイスから dm-crypt で管理される device-mapper マッピングを削除します。

    1. ocs-osd-removal-job Pod のログから、置き換えられた OSD の PVC 名を取得します。

      $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1  |egrep -i ‘pvc|deviceset’

      以下に例を示します。

      2021-05-12 14:31:34.666000 I | cephosd: removing the OSD PVC "ocs-deviceset-xxxx-xxx-xxx-xxx"
    2. 手順 #1 で特定されたノードごとに、以下を実行します。

      1. debug Pod を作成し、ストレージノードのホストに対して chroot を作成します。

        $ oc debug node/<node name>
        $ chroot /host
      2. 直前の手順で特定された PVC 名に基づいて関連するデバイス名を検索します。

        sh-4.4# dmsetup ls| grep <pvc name>
        ocs-deviceset-xxx-xxx-xxx-xxx-block-dmcrypt (253:0)
      3. マップ済みデバイスを削除します。

        $ cryptsetup luksClose --debug --verbose ocs-deviceset-xxx-xxx-xxx-xxx-block-dmcrypt
        注記

        権限が十分にないため、コマンドがスタックした場合には、以下のコマンドを実行します。

        • CTRL+Z を押して上記のコマンドを終了します。
        • スタックしたプロセスの PID を検索します。

          $ ps -ef | grep crypt
        • kill コマンドを使用してプロセスを終了します。

          $ kill -9 <PID>
        • デバイス名が削除されていることを確認します。

          $ dmsetup ls
  9. ocs-osd-removal ジョブを削除します。

    $ oc delete -n openshift-storage job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 新しい OSD が実行されていることを確認します。

    $ oc get -n openshift-storage pods -l app=rook-ceph-osd

    出力例:

    rook-ceph-osd-0-5f7f4747d4-snshw                                  1/1     Running     0          4m47s
    rook-ceph-osd-1-85d99fb95f-2svc7                                  1/1     Running     0          1d20h
    rook-ceph-osd-2-6c66cdb977-jp542                                  1/1     Running     0          1d20h
  2. Bound 状態の新しい PVC が作成されていることを確認します。

    $ oc get -n openshift-storage pvc

    出力例:

    NAME                           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    db-noobaa-db-0                 Bound    pvc-b44ebb5e-3c67-4000-998e-304752deb5a7   50Gi       RWO            ocs-storagecluster-ceph-rbd   6d
    ocs-deviceset-0-data-0-gwb5l   Bound    pvc-bea680cd-7278-463d-a4f6-3eb5d3d0defe   512Gi      RWO            standard                      94s
    ocs-deviceset-1-data-0-w9pjm   Bound    pvc-01aded83-6ef1-42d1-a32e-6ca0964b96d4   512Gi      RWO            standard                      6d
    ocs-deviceset-2-data-0-7bxcq   Bound    pvc-5d07cd6c-23cb-468c-89c1-72d07040e308   512Gi      RWO            standard                      6d
  3. (オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。

    1. 新規 OSD Pod が実行しているノードを特定します。

      $ oc get -n openshift-storage -o=custom-columns=NODE:.spec.nodeName pod/_<OSD-pod-name>_
      <OSD-pod-name>

      これは OSD Pod の名前です。

      以下に例を示します。

      $ oc get -n openshift-storage -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm

      出力例:

      NODE
      compute-1
    2. 直前の手順で特定されたノードごとに、以下を実行します。

      1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

        $ oc debug node/<node name>
        $ chroot /host
      2. “lsblk” を実行し、ocs-deviceset 名の横にある “crypt” キーワードを確認します。

        $ lsblk
  4. OpenShift Web コンソールにログインし、ストレージダッシュボードを表示します。

    図16.1 デバイスの置き換え後の OpenShift Container Platform ストレージダッシュボードの OSD ステータス

    正常な OSD を表示する RHOCP ストレージダッシュボード。

第17章 OpenShift Data Foundation へのアップグレード

17.1. OpenShift Data Foundation 更新プロセスの概要

この章では、すべての Red Hat OpenShift Data Foundation デプロイメント (Internal、Internal-Attached、および External) のマイナーリリースおよび z-stream リリース間でアップグレードする方法を説明します。アップグレードプロセスは、すべてのデプロイメントで引き続き同じとなります。

OpenShift Data Foundation とそのコンポーネントは、4.16 と 4.17 のようなマイナーリリース間、または 4.16.0 と 4.16.1 のような z-stream 間更新で、自動更新を有効にするか (Operator のインストール時に行っていない場合)、手動で更新を行うことでアップグレードできます。z-stream の新規リリースが利用可能になると、更新ストラテジーが Automatic に設定されている場合、アップグレードプロセスが自動的にトリガーされます。

延長更新サポート (EUS)

OpenShift Data Foundation での EUS から EUS へのアップグレードは順次行われ、OpenShift のアップグレードと一致します。詳細は、EUS から EUS への更新の実行 および Operator Lifecycle Manager でインストールされたレイヤード製品および Operator の EUS から EUS への更新 を参照してください。

OpenShift Container Platform および OpenShift Data Foundation の EUS アップグレードでは、OpenShift Data Foundation が OpenShift Container Platform とともにアップグレードされ、OpenShift Data Foundation と OpenShift Container Platform 間の互換性が常に維持されていることを確認してください。

EUS アップグレードのワークフローの例:

  1. ワーカーマシンプールを一時停止します。
  2. OpenShift <4.y> → OpenShift <4.y+1> を更新します。
  3. OpenShift Data Foundation <4.y> → OpenShift Data Foundation <4.y+1> を更新します。
  4. OpenShift <4.y+1> → OpenShift <4.y+2> を更新します。
  5. OpenShift Data Foundation <4.y+2> に更新します。
  6. ワーカーマシンプールの一時停止を解除します。
注記

ワーカーマシンプールの一時停止が解除される前でも後でも、ODF <4.y+2> に更新できます。

重要

OpenShift Data Foundation を外部モードで更新する場合は、Red Had Ceph Storage と OpenShift Data Foundation のバージョンに互換性があることを確認してください。外部モードでサポートされている Red Hat Ceph Storage バージョンの詳細は、Red Hat OpenShift Data Foundation のサポートおよび相互運用性チェッカー を参照してください。使用中のバージョンに対応するサポートされている Red Had Ceph バージョンを確認するには、チェッカーで必要な OpenShift Data Foundation バージョンを指定します。

また、内部および外部モードのデプロイメントの両方で、以下の順序で Red Hat OpenShift Data Foundation のさまざまな部分をアップグレードする必要もあります。

  1. OpenShift Container Platform の クラスターの更新 ドキュメントに従って OpenShift Container Platform を更新します
  2. Red Hat OpenShift Data Foundation を更新します。

    1. 更新に非接続環境を準備する には、Operator Lifecycle Manager を制限されたネットワークで使用するための Operator ガイドを参照し、OpenShift Data Foundation およびローカルストレージ Operator を使用している場合はこれらを更新できるようにします。
    2. マイナーリリース間の更新 は、Red Hat OpenShift Data Foundation 4.14 から 4.15 への更新 を参照してください。
    3. z-stream リリース間の更新 は、Red Hat OpenShift Data Foundation 4.15.x の 4.15.y への更新 を参照してください。
    4. 外部モードのデプロイメントを更新する場合 は、Red Hat OpenShift Data Foundation 外部シークレットの更新 のセクションにある手順も実行する必要があります。
    5. ローカルストレージを使用する場合は、Local Storage Operator を更新します。不明な場合は、Local Storage Operator デプロイメントの確認 を参照してください。
重要

障害復旧 (DR) が有効になっている OpenShift Data Foundation 4.12 の既存のセットアップがある場合は、環境内のすべてのクラスターを同時に更新し、単一のクラスターを更新しないようにしてください。これは、潜在的な問題を回避し、最適な互換性を維持するためです。すべての OpenShift Data Foundation DR インスタンス間で一貫性を維持することも重要です。

更新に関する考慮事項

開始する前に、以下の重要な考慮事項を確認してください。

  • Red Hat OpenShift Container Platform のバージョンは、Red Hat OpenShift Data Foundation と同じです。

    OpenShift Container Platform および Red Hat OpenShift Data Foundation のサポートされる組み合わせの詳細は、Interoperability Matrix を参照してください。

  • クラスターが内部モードまたは外部モードのどちらでデプロイされたかを確認するには、ODF クラスターに内部モードまたは外部モードのストレージがあるかどうかを判別する方法 に関する ナレッジベースの記事 を参照してください。
  • ローカルストレージ Operator は、ローカルストレージ Operator のバージョンが Red Hat OpenShift Container Platform のバージョンと一致する場合にのみ完全にサポートされます。
  • 障害復旧 (DR) が有効になっている OpenShift Data Foundation クラスターでは、バージョン 4.18 へのアップグレード中に、以前の bluestore-rdr OSD が bluestore OSD に移行されます。bluestore ベースの OSD は、bluestore-rdr ベースの OSD と同じ改善されたパフォーマンスを提供するようになりました。これは、クラスターを地域障害復旧に使用する必要がある場合に重要です。

    アップグレード時に、OSD 移行のステータスを表示できます。OpenShift Web コンソールで、StorageData FoundationStorage System に移動します。Block and File タブの Activity カードでは、進行中のアクティビティーを表示できます。クラスター OSD の移行では、 bluestore-rdr から bluestore への移行のステータスが表示されます。

重要

Multicloud Object Gateway には、データベースのコピー (NooBaa DB) が 1 つだけあります。つまり、NooBaa DB PVC が破損し、回復できない場合は、Multicloud Object Gateway に存在するアプリケーションデータが完全に失われる可能性があります。このため、Red Hat では NooBaa DB PVC のバックアップを定期的に取ることを推奨しています。NooBaa DB に障害が発生して回復できない場合は、最新のバックアップバージョンに戻すことができます。NooBaa DB をバックアップする手順は、こちらのナレッジベースの記事 の手順に従ってください。

17.2. Red Hat OpenShift Data Foundation 4.17 から 4.18 への更新

この章では、すべての Red Hat OpenShift Data Foundation デプロイメント (Internal、Internal-Attached、および External) のマイナーリリース間でアップグレードする方法を説明します。アップグレードプロセスは、すべてのデプロイメントで引き続き同じとなります。唯一の違いは、アップグレードされるものとアップグレードされないものがあることです。

  • Internal および Internal-attached のデプロイメントの場合、OpenShift Data Foundation をアップグレードすると、バックエンド Red Hat Ceph Storage (RHCS) クラスターを含むすべての OpenShift Data Foundation サービスがアップグレードされます。
  • 外部モードのデプロイメントの場合、OpenShift Data Foundation をアップグレードすると、OpenShift Data Foundation サービスのみがアップグレードされ、バックエンド Ceph ストレージクラスターは変更されないままとなり、個別にアップグレードする必要があります。

    新しい機能のサポート、セキュリティー修正、その他のバグ修正を取得するには、OpenShift Data Foundation とともに Red Hat Ceph Storage をアップグレードする必要があります。RHCS のアップグレードに依存しないため、最初に OpenShift Data Foundation Operator をアップグレードし、次に RHCS をアップグレードすることも、その逆を行うこともできます。RHCS リリースの詳細は、ナレッジベースソリューション (ソリューション) を参照してください。

重要

4.17 以前のバージョンから 4.18 への直接のアップグレードはサポートされていません。

前提条件

  • OpenShift Container Platform クラスターがバージョン 4.18.X の最新の stable リリースに更新されていることを確認する。クラスターの更新 を参照してください。
  • OpenShift Data Foundation クラスターが正常であり、データに回復性があることを確認する。

    • Storage → Data Foundation → Storage Systems タブに移動してから、ストレージシステム名をクリックします。
    • Overview - Block and File タブおよび Object タブのステータスカードの緑色のチェックマークを確認します。緑色のチェックマークは、ストレージクラスターオブジェクトサービス、および データ回復性 がすべて正常であることを示します。
  • Operator Pod を含むすべての OpenShift Data Foundation Pod が openshift-storage namespace で Running 状態にあることを確認する。

    Pod の状態を表示するには、OpenShift Web コンソールで Workloads → Pods をクリックします。Project ドロップダウンリストから openshift-storage を選択します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

  • 更新時間はクラスターで実行される OSD の数によって異なるため、OpenShift Data Foundation 更新プロセスを完了するのに十分な時間を確保してください。
  • オプション: CSI プラグインを使用している大規模クラスターのアップグレード時間を短縮するには、rook-ceph-operator-config configmap の次のパラメーターをより高い値またはパーセンテージに調整してください。

    • CSI_RBD_PLUGIN_UPDATE_STRATEGY_MAX_UNAVAILABLE
    • CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY_MAX_UNAVAILABLE

      注記

      デフォルトでは、rook-ceph-operator-config configmap は空であるため、data キーを追加する必要があります。

      これは CephFS および CephRBD デーモンセットに影響し、Pod を同時に再起動したり使用不可にしたりして、アップグレード時間を短縮できます。最適な値を得るには、パラメーター値を 20% に設定してください。ただし、値が高すぎると、アップグレード中に新しいボリュームの中断が発生する可能性があります。

  • 前提条件は、AWS Security Token Service (STS) を使用した AWS 上の OpenShift Data Foundation デプロイメントにのみ関連します

    次のように、noobaa-core アカウントの信頼ポリシーに別のエントリーを追加します。

    1. http://console.aws.amazon.com/ を使用して AWS ロールが存在する AWS Web コンソールにログインします。
    2. IAM 管理ツールに入り、ロール をクリックします。
    3. OpenShift CLI で次のコマンドを使用して、Multicloud Object Gateway (MCG) 認証をサポートするために AWS STS 用に作成されたロールの名前を見つけます。

      $ oc get deployment noobaa-operator -o yaml -n openshift-storage | grep ROLEARN -A1
                value: arn:aws:iam::123456789101:role/your-role-name-here
    4. ツールの前の手順で取得したロール名を検索し、ロール名をクリックします。
    5. ロールの概要の下で、Trust relationships をクリックします。
    6. Trusted entities タブで、右側の Edit trust policy をクリックします。
    7. “Action”: “sts:AssumeRoleWithWebIdentity” フィールドの下に、2 つの NooBaa サービスアカウント (noobaanoobaa-endpoint) のアクセスを有効にする 2 つのフィールドがあります。コア Pod の新しいサービスアカウント名 (system:serviceaccount:openshift-storage:noobaa-core) の別のエントリーを追加します。
    8. ページの右下にある Update policy をクリックします。

      更新が完了するまでに約 5 分かかる場合があります。

手順

  1. OpenShift Web コンソールで、Operators → Installed Operators に移動します。
  2. openshift-storage プロジェクトを選択します。
  3. OpenShift Data Foundation Operator 名をクリックします。
  4. Subscription タブをクリックしてから、Update Channel の下にあるリンクをクリックします。
  5. stable-4.18 更新チャネルを選択して、Save をクリックします。
  6. Upgrade statusrequires approval が表示される場合は、requires approval をクリックします。

    1. Install Plan Details ページで、Preview Install Plan をクリックします。
    2. インストール計画を確認し、Approve をクリックします。

      StatusUnknown から Created に変更されるまで待機します。

  7. Operators → Installed Operators に移動します。
  8. openshift-storage プロジェクトを選択します。

    OpenShift Data Foundation Operator の StatusUp to date に変わるのを待ちます。

  9. Operator が正常にアップグレードされると、Web console update is available メッセージを含むポップアップがユーザーインターフェイスに表示されます。このポップアップから Refresh web console をクリックして、反映するコンソールを変更します。
注記

アップグレード後、クラスターに 5 つ以上のノード、ラック、またはルームがあり、デプロイメント内に 5 つ以上の障害ドメインが存在する場合は、ラックまたはゾーンの数に基づいて Ceph モニター数を設定できます。OpenShift Web コンソールの通知パネルまたはアラートセンターにアラートが表示され、Ceph モニター数を増やすオプションが示されます。アラートで Configure オプションを使用して、Ceph モニター数を設定できます。詳細は、Ceph モニター数が少ないというアラートの解決 を参照してください。

検証手順

  • OpenShift Data Foundation 名の下にある Version を確認し、演算子の状態を確認します。

    • Operators → Installed Operators に移動し、openshift-storage プロジェクトを選択します。
    • アップグレードが完了すると、バージョンは OpenShift Data Foundation の新規バージョン番号に更新され、ステータスは緑色のチェックマークが付いて Succeeded に変わります。
  • OpenShift Data Foundation クラスターが正常であること、およびデータに回復性があることを確認します。

    • StorageData FoundationStorage Systems タブに移動してから、ストレージシステム名をクリックします。
    • Overview- Block and File および Object タブのステータスカードの緑色のチェックマークを確認します。緑色のチェックマークは、ストレージクラスター、オブジェクトサービス、およびデータの回復性が正常であることを示します。
  • 検証手順が失敗した場合は、Red Hat サポート にお問い合わせください。
重要

外部モードのデプロイメントを更新したら、外部シークレットも更新する必要があります。手順は、OpenShift Data Foundation 外部シークレットの更新 を参照してください。

関連情報

OpenShift Data Foundation の更新中に問題が発生した場合は、トラブルシューティングガイドトラブルシューティングに一般的に必要なログ セクションを参照してください。

17.3. Red Hat OpenShift Data Foundation 4.17.x から 4.17.y への更新

この章では、すべての Red Hat OpenShift Data Foundation デプロイメント (Internal、Internal-Attached、および External) の z-stream リリース間でアップグレードする方法を説明します。アップグレードプロセスは、すべてのデプロイメントで引き続き同じとなります。唯一の違いは、アップグレードされるものとアップグレードされないものがあることです。

  • Internal および Internal-attached のデプロイメントの場合、OpenShift Data Foundation をアップグレードすると、バックエンド Red Hat Ceph Storage (RHCS) クラスターを含むすべての OpenShift Data Foundation サービスがアップグレードされます。
  • 外部モードのデプロイメントの場合、OpenShift Data Foundation をアップグレードすると、OpenShift Data Foundation サービスのみがアップグレードされ、バックエンド Ceph ストレージクラスターは変更されないままとなり、個別にアップグレードする必要があります。

    したがって、新機能のサポート、セキュリティー修正、およびその他のバグ修正を取得するために、RHCS を OpenShift Data Foundation と共にアップグレードすることが推奨されます。RHCS アップグレードに強く依存していないため、最初に OpenShift Data Foundation Operator をアップグレードしてから、RHCS をアップグレードするか、その逆を行うことができます。RHCS リリースの詳細は、solution を参照してください。

z-stream の新規リリースが利用可能になると、更新ストラテジーが Automatic に設定されている場合、アップグレードプロセスが自動的にトリガーされます。更新ストラテジーが Manual に設定されている場合には、以下の手順を使用します。

前提条件

  • OpenShift Container Platform クラスターがバージョン 4.17.X の最新の stable リリースに更新されていることを確認する。クラスターの更新 を参照してください。
  • OpenShift Data Foundation クラスターが正常であり、データに回復性があることを確認する。

    • Storage → Data Foundation → Storage Systems タブに移動してから、ストレージシステム名をクリックします。
    • Overview - Block and File および Object タブのステータスカードの緑色のチェックマークを確認します。緑色のチェックマークは、ストレージクラスター、オブジェクトサービス、およびデータの回復性が正常であることを示します。
  • Operator Pod を含むすべての OpenShift Data Foundation Pod が openshift-storage namespace で Running 状態にあることを確認する。

    Pod の状態を表示するには、OpenShift Web コンソールで Workloads → Pods をクリックします。Project ドロップダウンリストから openshift-storage を選択します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

  • 更新時間はクラスターで実行される OSD の数によって異なるため、OpenShift Data Foundation 更新プロセスを完了するのに十分な時間を確保してください。

手順

  1. OpenShift Web コンソールで、Operators → Installed Operators に移動します。
  2. openshift-storage プロジェクトを選択します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

  3. OpenShift Data Foundation Operator 名をクリックします。
  4. Subscription タブをクリックします。
  5. Upgrade Statusrequire approval が表示される場合は、requires approval リンクをクリックします。
  6. InstallPlan Details ページで、Preview Install Plan をクリックします。
  7. インストール計画を確認し、Approve をクリックします。
  8. Status が Unknown から Created に変更されるまで待機します。
  9. Operator が正常にアップグレードされると、Web console update is available メッセージを含むポップアップがユーザーインターフェイスに表示されます。このポップアップから Refresh web console をクリックして、反映するコンソールを変更します。

検証手順

  • OpenShift Data Foundation 名の下にある Version を確認し、演算子の状態を確認します。

    • Operators → Installed Operators に移動し、openshift-storage プロジェクトを選択します。
    • アップグレードが完了すると、バージョンは OpenShift Data Foundation の新規バージョン番号に更新され、ステータスは緑色のチェックマークが付いて Succeeded に変わります。
  • OpenShift Data Foundation クラスターが正常であること、およびデータに回復性があることを確認します。

    • Storage → Data Foundation → Storage Systems タブに移動してから、ストレージシステム名をクリックします。
    • Overview - Block and File および Object タブのステータスカードの緑色のチェックマークを確認します。緑色のチェックマークは、ストレージクラスター、オブジェクトサービス、およびデータ回復性が正常であることを示します。
  • 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

17.4. 更新承認ストラテジーの変更

同じチャネルで新しい更新が利用可能になったときにストレージシステムが自動的に更新されるようにするには、更新承認ストラテジーを Automatic のままにしておくことを推奨します。更新承認ストラテジーを Manual に変更すると、アップグレードごとに手動承認が必要になります。

手順

  1. Operators → Installed Operators に移動します。
  2. Project ドロップダウンリストから openshift-storage を選択します。

    注記

    Show default projects オプションが無効になっている場合は、切り替えボタンを使用して、すべてのデフォルトプロジェクトをリスト表示します。

  3. OpenShift Data Foundation Operator 名をクリックします。
  4. Subscription タブに移動します。
  5. Update approval を変更するには、鉛筆 アイコンをクリックします。
  6. 更新承認ストラテジーを選択し、Save をクリックします。

検証手順

  • 更新承認で、その下に新しく選択された承認ストラテジーが表示されていることを確認します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.