オーバークラウドの既存 Red Hat Ceph Storage クラスターとの統合

Red Hat OpenStack Platform 16.2

オーバークラウドでスタンドアロンの Red Hat Ceph Storage を使用するための設定

OpenStack Documentation Team

概要

Red Hat OpenStack Platform (RHOSP) director を使用して、オーバークラウドを既存のスタンドアロン Red Hat Ceph Storage クラスターと統合することができます。

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

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

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

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

Jira でドキュメントのフィードバックを提供する

ドキュメントに関するフィードバックを提供するには、Create Issue フォームを使用します。Red Hat OpenStack Platform Jira プロジェクトで Jira Issue が作成され、フィードバックの進行状況を追跡できます。

  1. Jira にログインしていることを確認してください。Jira アカウントをお持ちでない場合は、アカウントを作成してフィードバックを送信してください。
  2. Create Issue をクリックして、Create Issue ページを開きます。
  3. Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
  4. Create をクリックします。

第1章 オーバークラウドと Ceph Storage との統合

Red Hat OpenStack Platform director は、オーバークラウドと呼ばれるクラウド環境を作成します。director を使用して、Red Hat Ceph Storage との統合など、オーバークラウドの追加機能を設定することができます。オーバークラウドを、director で作成した Ceph Storage クラスターまたは既存の Ceph Storage クラスターと統合することができます。

Red Hat Ceph Storage に関する詳細は、Red Hat Ceph Storage アーキテクチャーガイド を参照してください。

1.1. Red Hat Ceph Storage の互換性

RHOSP 16.2 は、外部の Red Hat Ceph Storage 4 クラスターおよび Red Hat Ceph Storage 5 クラスターへの接続をサポートします。

1.2. 外部の CephFS を使用する Shared File Systems サービスのデプロイ

Red Hat OpenStack Platform (RHOSP) ディレクターを使用して、CephFS で Shared File Systems サービス (manila) をデプロイできます。Shared File Systems サービスは、NFS プロトコルまたはネイティブ CephFS プロトコルで使用できます。

重要

CephFS ネイティブドライバーと共に Shared File Systems サービスを使用して、Manila CSI で Red Hat OpenShift Container Platform にファイル共有を提供することはできません。Red Hat では、このようなデプロイメントをサポートしていません。詳細は、Red Hat のサポートにお問い合わせください。

NFS バックエンドに CephFS を使用した Shared File Systems サービスは、Manila CSI を使用した Red Hat OpenShift Container Platform へのファイル共有の提供を完全にサポートします。このソリューションは、大規模なデプロイメントを対象としていません。CSI ワークロードの推奨事項の詳細は、https://access.redhat.com/articles/6667651 を参照してください。

ネイティブ CephFS 共有ファイルシステムを使用するには、クライアントが Ceph パブリックネットワークにアクセスできる必要があります。オーバークラウドを既存の Ceph Storage クラスターと統合する際に、director は Ceph パブリックネットワークとして指定する分離ストレージネットワークを作成しません。このネットワークがすでに存在していることを前提とします。Ceph パブリックネットワークへの直接アクセスを許可しないでください。その代わりに、テナントが Ceph パブリックネットワークに接続するためのルーターを作成するのを許可します。

NFS-Ganesha ゲートウェイ

NFS プロトコルを通じて CephFS を使用する場合、director は Pacemaker (PCS) が管理するコントローラーノードに NFS-Ganesha ゲートウェイをデプロイします。PCS は、アクティブ/パッシブ設定を使用してクラスターの可用性を管理します。

NFS-Ganesha ゲートウェイは、Red Hat Ceph Storage 4.x (Ceph パッケージ 14.x) および Red Hat Ceph Storage 5.x (Ceph パッケージ 16.x) でサポートされています。お使いのシステムにインストールされている Ceph Storage がどのリリースかを判断する方法は、Red Hat Ceph Storage releases and corresponding Ceph package versions を参照してください。

ceph-ansible パッケージのインストールで説明されているように、最新バージョンの ceph-ansible パッケージをアンダークラウドにインストールする必要があります。

前提条件

外部 Ceph Storage クラスターを使用して Shared File Systems サービスを設定する前に、以下の前提条件を満たす必要があります。

  • 外部 Ceph Storage クラスターにアクティブな Metadata Server (MDS) があることを確認する。

    $ ceph -s
  • 外部 Ceph Storage クラスターに、CephFS データおよびメタデータプールによってサポートされる CephFS ファイルシステムがある。

    • CephFS ファイルシステムのプールを確認する。

      $ ceph fs ls
    • これらのプールの名前をメモして、director パラメーターである ManilaCephFSDataPoolName および ManilaCephFSMetadataPoolName を設定する。この設定について詳細は、カスタム環境ファイルの作成 を参照してください。
  • 外部の Ceph Storage クラスターに、Shared File Systems サービス用の cephx クライアント名およびキーがある。

    • キーリングを確認する。

      $ ceph auth get client.<client name>
      • <client name> を cephx クライアント名に置き換えます。

1.3. 外部の Ceph Object Gateway を使用するための Ceph Object Store の設定

Red Hat OpenStack Platform (RHOSP) director は、外部の Ceph Object Gateway (RGW) を Object Store サービスとして設定することをサポートしています。外部 RGW サービスで認証するには、Identity サービス (keystone) のユーザーとそのロールを確認するように RGW を設定する必要があります。

外部 Ceph Object Gateway の設定方法に関する詳細は、Ceph Object Gateway を使用した Keystone の使用ガイドKeystone 認証を使用するように Ceph Object Gateway を設定 を参照してください。

第2章 オーバークラウドノードの準備

Red Hat Ceph Storage クラスターと統合する方法を示すために使用されるオーバークラウドデプロイメントは、高可用性を備えたコントローラーノードと、ワークロードをホストするコンピュートノードで構成されています。Red Hat Ceph Storage クラスターには、director ではなく Ceph 管理ツールを使用してオーバークラウドから独立して管理する独自のノードがあります。Red Hat Ceph Storage についての詳細な情報は、Red Hat Ceph Storage を参照してください。

2.1. 利用可能な Red Hat Ceph Storage パッケージの確認

オーバークラウドのデプロイメントが失敗しないようにするには、必要なパッケージがサーバーに存在することを確認します。

2.1.1. ceph-ansible パッケージバージョンの確認

アンダークラウドには Ansible ベースの検証が含まれ、これを実行してオーバークラウドをデプロイする前に潜在的な問題を特定することができます。これらの検証は、典型的な問題が発生する前にそれらを特定し、オーバークラウドのデプロイメントの失敗を回避するのに役立ちます。

手順

  • 必要な ceph-ansible パッケージバージョンがインストールされていることを確認します。

    $ ansible-playbook -i /usr/bin/tripleo-ansible-inventory /usr/share/ansible/validation-playbooks/ceph-ansible-installed.yaml

2.1.2. 事前にプロビジョニングされたノード用のパッケージの確認

Red Hat Ceph Storage (RHCS) は、特定のパッケージセットを持つオーバークラウドノードにのみサービスを提供することができます。事前にプロビジョニングされたノードを使用する場合には、これらのパッケージが存在することを確認することができます。

事前にプロビジョニングされたノードの詳細は、Configuring a basic overcloud with pre-provisioned nodes を参照してください。

手順

  • 事前にプロビジョニングされたノードに必要なパッケージが含まれていることを確認します。

    ansible-playbook -i /usr/bin/tripleo-ansible-inventory /usr/share/ansible/validation-playbooks/ceph-dependencies-installed.yaml

2.2. 既存の Red Hat Ceph Storage クラスターの設定

Red Hat Ceph Storage クラスターを設定するには、オブジェクトストレージデーモン (OSD) プールを作成し、機能を定義して、キーと ID を Ceph Storage クラスターで直接作成します。Ceph Storage クラスターにアクセスでき、Ceph コマンドラインクライアントがインストールされている任意のマシンからコマンドを実行できます。

手順

  1. 環境に応じて、Ceph Storage クラスターに以下のプールを作成します。

    • OpenStack Block Storage (cinder) のストレージ:

      [root@ceph ~]# ceph osd pool create volumes <pgnum>
    • OpenStack Image Storage (glance) のストレージ:

      [root@ceph ~]# ceph osd pool create images <pgnum>
    • インスタンスのストレージ:

      [root@ceph ~]# ceph osd pool create vms <pgnum>
    • OpenStack Block Storage Backup (cinder-backup) のストレージ:

      [root@ceph ~]# ceph osd pool create backups <pgnum>
    • オプション: OpenStack Telemetry Metrics (gnocchi) のストレージ:

      [root@ceph ~]# ceph osd pool create metrics <pgnum>

      このストレージオプションは、メトリックが OpenStack で有効になっている場合にのみ使用してください。オーバークラウドが CephFS を使用して OpenStack Telemetry Metrics をデプロイする場合、CephFS データおよびメタデータプールを作成します。

  2. オーバークラウドが Red Hat Ceph 4 (Ceph パッケージ 14) 以前で Shared File Systems サービス (manila) をデプロイする場合は、CephFS データおよびメタデータプールを作成します。

    [root@ceph ~]# ceph osd pool create manila_data <pgnum>
    [root@ceph ~]# ceph osd pool create manila_metadata <pgnum>

    <pgnum> は配置グループの数に置き換えます。Red Hat は、クラスター内の OSD ごとに約 100 の配置グループをレプリカの数 (osd pool default size) で割ることを推奨しています。たとえば、OSD が 10 があり、クラスターに osd pool default size が 3 に設定されている場合は、333 の配置グループを使用します。適切な値を判断するには Ceph Placement Groups (PGs) per Pool Calculator を使用することを推奨します。

  3. オーバークラウドが Red Hat Ceph 5 (Ceph パッケージ 16) 以降で Shared File Systems サービス (manila) をデプロイする場合、CephFS 用のデータおよびメタデータプールを作成する必要はありません。ファイルシステムボリュームを作成できます。詳細は、Red Hat Ceph Storage Operations GuideCeph Orchestrator を使用した MDS サービスの管理 を参照してください。
  4. 以下の機能を指定して client.openstack ユーザーを Ceph クラスターに作成します。

    • cap_mgr: allow *
    • cap_mon: profile rbd
    • cap_osd: profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups,

      [root@ceph ~]# ceph auth add client.openstack mgr allow * mon profile rbd osd profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups
  5. client.openstack ユーザー向けに作成された Ceph クライアントキーをメモします。

    [root@ceph ~]# ceph auth list
    ...
    [client.openstack]
    	key = <AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw==>
    	caps mgr = allow *
    	caps mon = profile rbd
    	caps osd = profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups
    ...

    この例の key 値 (AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw==) は Ceph クライアントキーです。

  6. オーバークラウドが CephFS を使用して Shared File Systems サービスをデプロイする場合は、Ceph Storage クラスターに以下の機能を持つ client.manila ユーザーを作成します。

    • cap_mds: allow *
    • cap_mgr: allow *
    • cap_mon: allow r, allow command "auth del", allow command "auth caps", allow command "auth get", allow command "auth get-or-create"`
    • cap_osd: allow rw

      [root@ceph ~]# ceph auth add client.manila mon allow r, allow command "auth del", allow command "auth caps", allow command "auth get", allow command "auth get-or-create"' osd 'allow rw' mds 'allow *' mgr 'allow *'
  7. manila クライアント名およびオーバークラウドデプロイメントテンプレートで使用するキー値をメモします。

    [root@ceph ~]# ceph auth get-key client.manila
         <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
  8. Ceph Storage クラスターのファイルシステム ID をメモします。この値は、クラスターの設定ファイルの [global] セクション配下にある fsid フィールドに指定されます。

    [global]
    fsid = <4b5c8c0a-ff60-454b-a1b4-9747aa737d19>
    ...
注記

カスタム環境ファイルを作成する際は、Ceph クライアントキーとファイルシステム ID、および Shared File Systems サービスクライアント ID とキーを使用します。

第3章 既存の Ceph Storage クラスターとの統合

Red Hat OpenStack Platform (RHOSP) を既存の Red Hat Ceph Storage クラスターと統合するには、ceph-ansible パッケージをインストールする必要があります。その後、カスタム環境ファイルを作成して、OpenStack コンポーネント内の設定オプションをオーバーライドして値を提供できます。

3.1. ceph-ansible パッケージのインストール

Red Hat OpenStack Platform director は ceph-ansible を使用して既存の Ceph Storage クラスターと統合しますが、デフォルトでは ceph-ansible はアンダークラウドにインストールされていません。

手順

  • 以下のコマンドを入力して、アンダークラウドに ceph-ansible パッケージをインストールしてください。

    $ sudo dnf install -y ceph-ansible

3.2. カスタム環境ファイルの作成

Director は、環境ファイルを介して外部 Red Hat Ceph Storage クラスターと統合するため に ceph-ansible にパラメーターを提供します。

/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml

外部の CephFS を使用して Shared File Systems サービス (manila) をデプロイする場合、別の環境ファイルで追加のパラメーターを提供します。

  • ネイティブ CephFS の場合、環境ファイルは /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml です。
  • NFS バッグエンドに CephFS を使用する場合、環境ファイルは /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml です。

既存の Ceph Storage クラスターとオーバークラウドの統合を設定するには、カスタム環境ファイルを使用して、Ceph Storage クラスターの詳細を director に提供する必要があります。Director は、デプロイメント中にこれらの環境ファイルを呼び出します。

手順

  1. カスタム環境ファイルを作成します。

    /home/stack/templates/ceph-config.yaml

  2. ファイルに parameter_defaults: セクションを追加します。

    parameter_defaults:
  3. parameter_defaults を使用して、/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml で上書きするすべてのパラメーターを設定します。少なくとも以下のパラメーターを設定する必要があります。

    • CephClientKey: Ceph Storage クラスター内の client.openstack ユーザーの Ceph クライアントキー。これは、既存の Ceph Storage クラスターの設定 で取得した key の値です。たとえば、AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ== です。
    • CephClusterFSID: Ceph Storage クラスターのファイルシステム ID。これは、既存の Ceph Storage クラスターの設定 で 取得した、Ceph Storage クラスター設定ファイルの fsid の値です。たとえば、4b5c8c0a-ff60-454b-a1b4-9747aa737d19 です。
    • CephExternalMonHost: Ceph Storage クラスターの全 MON ホストの IP をコンマ区切りにしたリスト (例: 172.16.1.7, 172.16.1.8)。

      以下に例を示します。

      parameter_defaults:
        CephClientKey: <AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ==>
        CephClusterFSID: <4b5c8c0a-ff60-454b-a1b4-9747aa737d19>
        CephExternalMonHost: <172.16.1.7, 172.16.1.8>
  4. オプション: Red Hat OpenStack Platform (RHOSP) クライアントのユーザー名と以下のデフォルトのプール名をオーバーライドして、Ceph Storage クラスターに一致させることができます。

    • CephClientUserName: <openstack>
    • NovaRbdPoolName: <vms>
    • CinderRbdPoolName: <volumes>
    • GlanceRbdPoolName: <images>
    • CinderBackupRbdPoolName: <backups>
    • GnocchiRbdPoolName: <metrics>
  5. オプション: CephFS を使用して Shared File Systems サービスをデプロイする場合は、次のデフォルトのデータおよびメタデータプール名を上書きできます。

      ManilaCephFSDataPoolName: <manila_data>
      ManilaCephFSMetadataPoolName: <manila_metadata>
    注記

    これらの名前が、作成済みのプールの名前と一致していることを確認します。

  6. Shared File Systems サービス用に作成したクライアントキーを設定します。そのキーのデフォルトの Ceph クライアントユーザー名をオーバーライドできます。

      ManilaCephFSCephFSAuthId: <manila>
      CephManilaClientKey: <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
    注記

    デフォルトのクライアントユーザー名 ManilaCephFSCephFSAuthId は、上書きしない限り manila です。CephManilaClientKey は常に必要です。

カスタム環境ファイルを作成したら、オーバークラウドのデプロイ時にこのファイルを追加する必要があります。

3.3. Ceph Storage を使用する Red Hat OpenStack Platform 向けの Ceph コンテナー

NFS Ganesha で Red Hat Ceph Storage を使用するように Red Hat OpenStack Platform (RHOSP) を設定するには、Ceph コンテナーが必要です。

Red Hat Enterprise Linux 8 と互換性を持たせるために、RHOSP 16 には Red Hat Ceph Storage 4 または 5 (Ceph パッケージ 14.x または Ceph パッケージ 16.x) が必要です。Ceph Storage 4 および 5 コンテナーは、認証が必要なレジストリーである registry.redhat.io でホストされます。詳細は、Container image preparation parameters を参照してください。

3.4. オーバークラウドのデプロイ

作成した環境ファイルを使用して、オーバークラウドをデプロイします。

手順

  • オーバークラウドの作成には、openstack overcloud deploy コマンドに追加の引数を指定する必要があります。

    $ openstack overcloud deploy --templates \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
      -e /home/stack/templates/ceph-config.yaml \
      -e --ntp-server pool.ntp.org \
      ...

    上記のコマンド例は、以下のオプションを使用します。

  • --templates - デフォルトの heat テンプレートコレクション (/usr/share/openstack-tripleo-heat-templates/) からオーバークラウドを作成します。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml: 既存の Ceph クラスターをオーバークラウドに統合するように director を設定します。
  • -e /home/stack/templates/ceph-config.yaml: -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml の設定するデフォルトを上書きするためのカスタム環境ファイルを追加します。ここでは、ceph-ansible パッケージのインストール で作成したカスタム環境ファイルです。
  • --ntp-server pool.ntp.org - NTP サーバーを設定します。

3.4.1. CephFS を使用した Shared File Systems サービスの環境ファイルの追加

CephFS で Shared File Systems サービス (manila) を使用するオーバークラウドをデプロイする場合は、追加の環境ファイルを追加する必要があります。

手順

  1. 追加の環境ファイルを作成して追加します。

    • ネイティブ CephFS バックエンドドライバーを使用するオーバークラウドをデプロイする場合には、/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml を使用します。
    • NFS バッグエンドに CephFS を使用するオーバークラウドをデプロイする場合は、/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml を追加します。

      Red Hat は、共有がエクスポートされる隔離された StorageNFS ネットワークを使用して Ceph-through-NFS ドライバーをデプロイすることを推奨します。隔離されたネットワークをオーバークラウドのコントローラーノードにデプロイする必要があります。この展開を有効にするために、director には次のファイルとロールが含まれています。

      • StorageNFS ネットワークを含むカスタムネットワーク設定ファイルの例 (/usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml)。このファイルを確認し、必要に応じてカスタマイズします。
      • ControllerStorageNFS ロール。
  2. 使用する CephFS バックエンドに応じて、openstack overcloud deploy コマンドを変更します。

    • ネイティブ CephFS の場合:

       $ openstack overcloud deploy --templates \
         -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
         -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml \
         -e /home/stack/templates/ceph-config.yaml \
         -e --ntp-server pool.ntp.org
         ...
    • NFS バックエンドに CephFS を使用する場合:

        $ openstack overcloud deploy --templates \
            -n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
            -r /home/stack/custom_roles.yaml \
            -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml \
            -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml \
            -e /home/stack/templates/ceph-config.yaml \
            -e --ntp-server pool.ntp.org
            ...
      注記

      カスタムの ceph-config.yaml 環境ファイルは、ceph-ansible-external.yaml ファイル、および manila-cephfsnative-config.yaml ファイルまたは manila-cephfsganesha-config.yaml ファイルのいずれかのパラメーターを上書きします。したがって、ceph-ansible-external.yaml、および manila-cephfsnative-config.yaml または manila-cephfsganesha-config.yaml のいずれかの後に、デプロイメントコマンドにカスタムの ceph-config.yaml 環境ファイルを追加します。

      環境ファイルのサンプル

      parameter_defaults:
          CinderEnableIscsiBackend: false
          CinderEnableRbdBackend: true
          CinderEnableNfsBackend: false
          NovaEnableRbdBackend: true
          GlanceBackend: rbd
          CinderRbdPoolName: "volumes"
          NovaRbdPoolName: "vms"
          GlanceRbdPoolName: "images"
          CinderBackupRbdPoolName: "backups"
          GnocchiRbdPoolName: "metrics"
          CephClusterFSID: <cluster_ID>
          CephExternalMonHost: <IP_address>,<IP_address>,<IP_address>
          CephClientKey: "<client_key>"
          CephClientUserName: "openstack"
          ManilaCephFSDataPoolName: manila_data
          ManilaCephFSMetadataPoolName: manila_metadata
          ManilaCephFSCephFSAuthId: 'manila'
          CephManilaClientKey: '<client_key>'
          ExtraConfig:
              ceph::profile::params::rbd_default_features: '1'

      • <cluster_ID><IP_address>、および <client_key> を環境に適した値に置き換えます。

関連情報

3.4.2. オブジェクトストレージ用外部 Ceph Object Gateway (RGW) の新規環境ファイルの追加

オブジェクトストレージ用に既存の RGW サービスを使用するオーバークラウドをデプロイする場合には、さらに環境ファイルを追加する必要があります。

手順

  1. カスタム環境ファイル (swift-external-params.yaml 等) に以下の parameter_defaults を追加し、実際のデプロイメントに合わせて値を調整します。

    parameter_defaults:
       ExternalSwiftPublicUrl: 'http://<Public RGW endpoint or loadbalancer>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftInternalUrl: 'http://<Internal RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftAdminUrl: 'http://<Admin RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftUserTenant: 'service'
       SwiftPassword: 'choose_a_random_password'
    注記

    サンプルコードスニペットには、お使いの環境で使用する値とは異なるパラメーター値が含まれる場合があります。

    • リモート RGW インスタンスがリッスンするデフォルトのポートは 8080 です。外部 RGW の設定方法によっては、ポートが異なる場合があります。
    • オーバークラウドで作成した swift ユーザーは、SwiftPassword パラメーターで定義したパスワードを使用します。rgw_keystone_admin_password を使用し、Identity サービスに対する認証に同じパスワードを使用するように外部 RGW インスタンスを設定する必要があります。
  2. Ceph 設定ファイルに以下のコードを追加して、Identity サービスを使用するように RGW を設定します。変数の値を実際の環境に応じて置き換えます。

        rgw_keystone_api_version = 3
        rgw_keystone_url = http://<public Keystone endpoint>:5000/
        rgw_keystone_accepted_roles = member, Member, admin
        rgw_keystone_accepted_admin_roles = ResellerAdmin, swiftoperator
        rgw_keystone_admin_domain = default
        rgw_keystone_admin_project = service
        rgw_keystone_admin_user = swift
        rgw_keystone_admin_password = <password_as_defined_in_the_environment_parameters>
        rgw_keystone_implicit_tenants = true
        rgw_keystone_revocation_interval = 0
        rgw_s3_auth_use_keystone = true
        rgw_swift_versioning_enabled = true
        rgw_swift_account_in_url = true
    注記

    デフォルトでは、director は Identity サービスに以下のロールとユーザーを作成します。

    • rgw_keystone_accepted_admin_roles: ResellerAdmin, swiftoperator
    • rgw_keystone_admin_domain: default
    • rgw_keystone_admin_project: service
    • rgw_keystone_admin_user: swift
  3. デプロイメントに該当するその他の環境ファイルと共に、追加の環境ファイルを指定して、オーバークラウドをデプロイします。

    openstack overcloud deploy --templates \
    -e <your_environment_files>
    -e /usr/share/openstack-tripleo-heat-templates/environments/swift-external.yaml
    -e swift-external-params.yaml

第4章 外部 Red Hat Ceph Storage クラスター統合の確認

オーバークラウドをデプロイしたら、Red Hat OpenStack Platform (RHOSP) サービスが Red Hat Ceph Storage クラスターに書き込むことができることを確認します。

警告

RHOSP は、形式 v2 以降の Ceph クローンの使用をサポートしません。Ceph Storage クローン形式 v2 が有効になっている Ceph クラスターからイメージまたはボリュームを削除すると、予期しない動作が発生し、データが失われる可能性があります。したがって、Ceph クローン形式 v2 を有効にする以下の方法は使用しないでください。

  • rbd default clone format = 2 の設定
  • ceph osd set-require-min-compat-client mimic の実行

4.1. ID の収集

Red Hat Ceph Storage クラスターを統合したことを確認するには、最初にイメージ、Compute インスタンス、Block Storage ボリューム、およびファイル共有を作成し、それぞれの ID を収集する必要があります。

手順

  1. Image サービス (glance) でイメージを作成します。イメージの作成方法についての詳細は、Creating and Managing ImagesImport an image を参照してください。
  2. 後で使用できるようにイメージ ID を記録します。
  3. Compute (nova) インスタンスを作成します。インスタンスの作成方法についての詳細は、Creating and Managing InstancesCreating an instanceを参照してください。
  4. 後で使用できるようにインスタンス ID を記録します。
  5. Block Storage (cinder) ボリュームを作成します。Block Storage ボリュームの作成方法についての詳細は、Storage GuideCreate a volume を参照してください。
  6. 後で使用できるようにボリューム ID を記録します。
  7. Shared File Systems サービス (manila) を使用して、ファイル共有を作成します。ファイル共有の作成方法の詳細については、ストレージガイド共有の作成を 参照してください。
  8. 共有のエクスポートパスを一覧表示し、後で使用できるように接尾辞に UUID を記録します。共有のエクスポートパスを一覧表示する方法の詳細については、ストレージガイド共有の一覧表示と情報のエクスポート を参照してください。

4.2. Red Hat Ceph Storage クラスターの検証

外部 Red Hat Ceph Storage クラスターを設定する場合、プールおよび client.openstack ユーザーを作成して、これらのプールにアクセスします。オーバークラウドをデプロイしたら、client.openstack ユーザーの認証情報が含まれるファイルを使用して、Red Hat OpenStack Platform (RHOSP) プールの内容をリスト表示できます。

プールの内容を一覧表示し、Image Service (glance) イメージ、Compute (nova) インスタンス、Block Storage (cinder) ボリューム、および Shared File Systems サービス (manila) ファイル共有の ID が Ceph Storage に存在することを確認します。

手順

  1. アンダークラウドに stack ユーザーとしてログインし、stackrc 認証情報ファイルを読み込みます。

    $ source ~/stackrc
  2. 利用可能なサーバーをリスト表示して、システム上のノードの IP アドレスを取得します。

    $ openstack server list
    
    +---------------+----------------+---------------+
    | ID | Name | Status | Networks | Image | Flavor |
    +---------------+----------------+---------------+
    | d5a621bd-d109-41ae-a381-a42414397802 | compute-0 | ACTIVE | ctlplane=192.168.24.31 | overcloud-full | compute |
    | 496ab196-d6cb-447d-a118-5bafc5166cf2 | controller-0 | ACTIVE | ctlplane=192.168.24.37 | overcloud-full | controller |
    | c01e730d-62f2-426a-a964-b31448f250b3 | controller-2 | ACTIVE | ctlplane=192.168.24.55 | overcloud-full | controller |
    | 36df59b3-66f3-452e-9aec-b7e7f7c54b86 | controller-1 | ACTIVE | ctlplane=192.168.24.39 | overcloud-full | controller |
    | f8f00497-246d-4e40-8a6a-b5a60fa66483 | compute-1 | ACTIVE | ctlplane=192.168.24.10 | overcloud-full | compute |
  3. SSH を使用して、任意のコンピュートノードにログインします。

    $ ssh heat-admin@192.168.24.31
  4. root ユーザーに変更します。

    [heat-admin@compute-0 ~]$ sudo su -
  5. /etc/ceph/ceph.conf ファイルおよび /etc/ceph/ceph.client.openstack.keyring ファイルが存在することを確認します。

    [root@compute-0 ~]# ls -l /etc/ceph/ceph.conf
    
    -rw-r--r--. 1 root root 1170 Sep 29 23:25 /etc/ceph/ceph.conf
    [root@compute-0 ~]# ls -l /etc/ceph/ceph.client.openstack.keyring
    
    -rw-------. 1 ceph ceph 253 Sep 29 23:25 /etc/ceph/ceph.client.openstack.keyring
  6. 以下のコマンドを入力して、nova_compute コンテナーが rbd コマンドを使用して適切なプールの内容をリスト表示するように強制します。

    # podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls vms

    プール名は、Ceph Storage クラスターの設定時に作成したイメージ、仮想マシンボリュームおよび共有プール名と一致している必要があります。イメージ、コンピュートインスタンス、ボリューム、共有の ID は、ID の収集 で記録した ID と一致する必要があります。

    注記

    ceph-common package で提供される /usr/bin/rbd はデフォルトではオーバークラウドノードにインストールされないため、コマンドの例には podman exec nova_compute という接頭辞が付けられています。ただし、これは nova_compute コンテナーで利用できます。このコマンドは、ブロックデバイスイメージをリスト表示します。ブロックデバイスイメージの一覧 の詳細は、Ceph Storage ブロックデバイスガイドの ブロックデバイスイメージの一覧表示 を参照してください。

    以下の例は、ID の収集 で取得した ID を使用して、各プールに各サービスの ID が存在するかどうかを確認する方法を示しています。

    # podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls images | grep 4485d4c0-24c3-42ec-a158-4d3950fa020b
    
    # podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls vms | grep 64bcb731-e7a4-4dd5-a807-ee26c669482f
    
    # podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls volumes | grep aeac15e8-b67f-454f-9486-46b3d75daff4
  7. Shared File Systems サービス共有の存在を確認するには、コントローラーノードにログインする必要があります。

    # podman exec openstack-manila-share-podman-0 ceph -n client.manila fs subvolume ls cephfs | grep ec99db3c-0077-40b7-b09e-8a110e3f73c1

4.3. 検証の失敗のトラブルシューティング

検証手順が失敗した場合は、openstack.client ユーザーの Ceph キーおよび Red Hat Ceph Storage モニター IP またはホスト名を併用して、Red Hat OpenStack Platform (RHOSP) 用に作成した Ceph Storage プールから読み取り、書き込み、および削除を実行できることを確認します。

手順

  1. この手順で必要な入力を少なくするには、コンピュートノードにログインして rbd コマンドのエイリアスを作成します。

    $ alias rbd="podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack"
  2. テストデータを新規オブジェクトとしてプールに書き込めることを確認します。

    $ rbd create --size 1024 vms/foo
  3. テストデータが表示されることを確認します。

    $ rbd ls vms | grep foo
  4. テストデータを削除します。

    $ rbd rm vms/foo
注記

この手順が失敗した場合は、Ceph Storage の管理者にお問い合わせください。この手順が成功しても、Compute (nova) インスタンス、Image Service (glance) イメージ、Block Storage (cinder) ボリューム、または Shared File Systems サービス (manila) 共有を作成できない場合は、Red Hat サポートにお問い合わせください。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.