リリースノート

Red Hat Ceph Storage 4.1

Red Hat Ceph Storage 4.1z2 のリリースノート

Red Hat Ceph Storage Documentation Team

概要

本リリースノートでは、Red Hat Ceph Storage 製品に実装されている主な機能、機能強化、既知の問題、およびバグ修正を説明します。これには、現行リリースまでの Red Hat Ceph Storage 4.1 リリースの以前の点に注意してください。

第1章 はじめに

Red Hat Ceph Storage は、非常にスケーラブルでオープンなソフトウェア定義のストレージプラットフォームであり、最も安定したバージョンの Ceph ストレージシステムと Ceph 管理プラットフォーム、デプロイメントユーティリティー、およびサポートサービスを組み合わせたものです。

Red Hat Ceph Storage ドキュメントは、https://access.redhat.com/documentation/en/red-hat-ceph-storage/ から入手できます。

第2章 謝辞

Red Hat Ceph Storage バージョン 4.1 には、Red Hat Ceph Storage チームからの多くの貢献が含まれています。さらに、Ceph プロジェクトでは、Ceph コミュニティーの個人や組織からの貢献の質と量が驚くほど成長しています。Red Hat Ceph Storage チームの全メンバー、Ceph コミュニティーの個々の貢献者、および以下の組織を含むすべての貢献者による貢献に謝意を表します。

  • Intel
  • Fujitsu
  • UnitedStack
  • Yahoo
  • Ubuntu Kylin
  • Mellanox
  • CERN
  • Deutsche Telekom
  • Mirantis
  • SanDisk
  • SUSE

第3章 新機能

本セクションでは、Red Hat Ceph Storage の今回のリリースで導入された主要な更新、機能拡張、新機能の一覧を紹介します。

本リリースで追加された主な機能は以下のとおりです。

  • Vault のサポート
  • Grafana コンテナーと OSD コンテナー同じ場所に配置するサポート
  • CephFS のスナップショットからサブボリュームをクローンする機能

Vault のサポート

RHCS 4.1 リリースにより、Ceph オブジェクトストレージゲートウェイ (RGW) は Hashicorp Vault のセキュアなキー管理サービスと相互運用できるようになりました。ストレージ管理者は、Ceph Object Gateway で使用するために、キー、パスワード、および証明書を HAshiCorp Vault に安全に保存できます。HashiCorp Vault は、Ceph Object Gateway によって使用されるサーバー側の暗号化にセキュアなキー管理サービスを提供します。

詳細は、『オブジェクトゲートウェの設定および管理ガイド』「HashiCorp Vault」を参照してください。

Grafana コンテナーを同じ場所に配置するサポート

RHCS 4.1 リリースでは、OSD と Grafana コンテナーの併置と、追加のスケールアウトデーモン (カーディナリティ2) がサポートされています。Cardinality 2 は、RHCS 4.0 リリースの RGW でのみサポートされていました。詳細は、「Red Hat Ceph Storage でサポートされる構成」を参照してください。

CephFS のスナップショットからのサブボリュームのクローン作成

サブボリュームスナップショットのクローン作成により、サブボリュームを作成できます。これは、スナップショットからサブボリュームにデータをコピーする非同期操作です。

CephFS のスナップショットからのサブボリュームのクローン作成に関する情報は、『Red Hat Ceph Storage ファイルシステムガイド』を参照してください。

3.1. ceph-ansible ユーティリティー

Playbook purge-container-cluster.yml が 3 桁の ID を持つクラスターをサポートするようになりました。

以前のバージョンでは、purge-container-cluster は最大 99 個の OSD を持つ Red Hat Ceph Storage クラスターのみをサポートしていました。これは、Playbook が 2 桁のインデックスを持つ ceph-osd サービスをサポートするためです。今回の更新により、3 桁の ID でクラスターを適切にパージできるようになりました。

Filestore OSD から Bluestore に移行する際に、専用のジャーナルデバイスの設定が保持されます。

以前のリリースでは、Bluestore OSD DB に移行する際に、Filestore OSD 用の専用のジャーナルデバイスを再利用できませんでした。専用のデバイス構成の例は、データに HDD を使用し、ジャーナリングに SSD を使用します。

今回の更新で、専用のジャーナルデバイスが移行中に設定を維持するようになり、Bluestore OSD DB で再利用できるようになりました。

詳細は、『管理ガイド』「オブジェクトストアを FileStore から BlueStore に移行する方法」を参照してください。

ceph-ansible が複数のレルムを持つマルチサイトデプロイメントをサポートするようになりました。

以前のリリースでは、ceph-ansible のマルチサイトデプロイメントでは単一の RGW レルムがサポートされていました。今回の更新により、ceph-ansible が、関連付けられたゾーン、ゾーングループ、およびエンドポイントを含む複数のレルムをサポートするようになりました。

詳細は、『Red Hat Ceph Storage インストールガイド』「マルチサイト Ceph Object Gateway の設定」を参照してください。

コンテナー化された Red Hat Ceph Storage デプロイメントにおける logrotate のサポートが追加されました。

今回のリリースで、コンテナー化された Ceph ログは logrotate プログラムを使用してローテーションされるようになりました。これにより、ファイルシステムがログデータでいっぱいになるのを防ぐことができます。

OpenStack ユーザーは、読み取り専用権限を持つデフォルトの admin アカウントで Ceph Dashboard をデプロイできます。

以前のリリースでは、完全な管理者権限を持つ OpenStack ユーザーが Ceph Dashboard から追加された変更は、クラスターの設定またはステータスを上書きする可能性がありました。この機能により、Ceph Dashboard 管理アカウントは Ceph クラスターのステータスを監視し、情報および設定を取得することしかできません。

3.2. Ceph ファイルシステム

サブボリュームおよびサブボリュームスナップショットの独立したライフサイクル操作

CSI プロトコルはスナップショットを最初のクラスオブジェクトとして処理するため、ソースのサブボリュームとサブボリュームスナップショットを相互に独立して操作する必要があります。Kubernetes ストレージインターフェースは CSI プロトコルを使用するため、スナップショット保持オプション (--retain-snapshots) を使用したサブボリュームの削除が実装されています。これにより、保持されたスナップショットの他のライフサイクル操作が適切に続行されます。

3.3. ceph-volume ユーティリティー

raw モードで ceph-volume を使用する際の Ceph OSD 暗号化のサポート

今回のリリースで、ceph-volume コマンドは、raw モードを使用して暗号化用に Ceph OSD を準備できるようになりました。

3.4. ディストリビューション

S3 クライアントが Ceph tools リポジトリーに含まれています。

本リリースより、S3 コマンドラインクライアントである s3cmd は Red Hat Ceph Storage 4 Tools ソフトウェアリポジトリーに含まれています。S3 コマンドラインクライアントパッケージをインストールするには、最初に rhceph-4-tools-for-rhel-8-x86_64-rpms リポジトリーを有効にします。

3.5. Object Gateway

AWS S3 ListObjects v2 操作は、追加設定なしで S3 バケットのオブジェクトを一覧表示する改善されたメカニズムを提供します。

以前は、S3A や awscli コマンドラインツールなどの S3 プロトコルクライアントは、古い ListObjects メソッドで設定する必要があります。この機能により、AWS S3 ListObjects v2 操作が実装され、S3 バケットにオブジェクトを一覧表示するための改善されたメカニズムが提供されます。

セッショントークンの有効期限の最小値は設定可能です。

rgw_sts_min_session_duration オプションで、デフォルト値の 900 秒よりも小さい値を使用できるようになりました。

大規模なバケットの内容の一覧表示

今回のリリースでは、下位の擬似ディレクトリー内のオブジェクトをスキップして指定することで、区切り時の並び順や、可能な接頭辞をより効率的に指定することができるようになりました。これにより、Ceph クライアントと Ceph Object Gateway 間の対話や、Ceph Object Gateway と Ceph OSD 間の対話が少なくなります。今回の機能拡張により、HA プロキシーの設定変更と共に、大規模なバケットのコンテンツを一覧表示できるようになりました。

Ceph Object Gateway での Amazon S3 リソースのサポート

AWS は Secure Token Service (STS) を提供し、Keycloak などの既存の OpenID Connect/ OAuth2.0 準拠の ID サービスとのセキュアなフェデレーションを可能にします。STS は、ユーザーがアイデンティティープロバイダー (IDP) に対して認証した後に、アプリケーションまたはユーザーに Simple Storage Service (S3) エンドポイントにアクセスするための一時的なトークンを提供するスタンドアロンの REST サービスです。

以前のバージョンでは、Amazon Web Services (AWS) の認証情報がないユーザーは、Ceph Object Gateway 経由で S3 リソースにアクセスできませんでした。今回の更新により、Ceph Object Gateway が STS AssumeRoleWithWebIdentity をサポートするようになりました。このサービスにより、OpenID Connect/OAuth 2.0 準拠の IDP で認証された Web アプリケーションユーザーは、Ceph Object Gateway 経由で S3 リソースにアクセスできます。

詳細は、『開発者ガイド』「セキュアなトークンサービス」を参照してください。

Ceph Object Gateway のデフォルト bucket-index シャードが 11 に増えました。

新規バケットのデフォルトの bucket-index シャードの数が 1 から 11 に増えました。これにより、小さなバケットへの書き込みスループットが増加し、動的な再シャーディングの開始を遅らせることができます。この変更は、新しいデプロイメントおよびゾーンにのみ影響します。

既存のデプロイメントでは、radosgw-admin zonegroup modify --bucket-index-max-shards=11 コマンドを使用して、このデフォルト値を変更できます。zonegroup がレルムの一部である場合、変更は radosgw-admin period update --commit コマンドでコミットする必要があります。コミットが行われない場合には、Ceph Object Gateway が再起動するまで変更が反映されます。

注記

アップグレード後、新しいデフォルト値を手動で増やす必要がありますが、新しい Red Hat Ceph Storage 4.1 デプロイメントでは、新しいデフォルト値が自動的に設定されます。

Ceph Object Gateway ログには、Beast の アクセスログ が含まれます。

今回のリリースにより、フロントエンドの Web サーバーである Beast に、Ceph Object Gateway ログに Apache スタイルの アクセスログ 行が追加されました。ログへの今回の更新により、接続およびクライアントネットワークの問題の診断に役立ちます。

3.6. RADOS

Ceph OSD で I/O エラーが発生した場合にストレージクラスターのステータスが変わります。

今回のリリースにより、Ceph Monitor に mon_osd_warn_num_repaired オプションが追加されました。これは、デフォルトで 10 に設定されています。いずれかの Ceph OSD が保存データの I/O エラーをこれ以上修復した場合は、OSD_TOO_MANY_REPAIRS のヘルス警告ステータスが生成されます。この警告をクリアするために、新しい clear_shards_repaired オプションが ceph tell コマンドに追加されました。以下に例を示します。

ceph tell osd.NUMBER clear_shards_repaired [COUNT]

clear_shards_repaired オプションはデフォルトで、修復数を 0 に設定します。追加の Ceph OSD 修復が実行された場合に再度警告を行うには、mon_osd_warn_num_repaired オプションの値を指定できます。

ハートビート猶予期間への更新

以前のリリースでは、Ceph OSD の障害が 48 時間以上なかった場合に、猶予タイマーをデフォルト値に戻すメカニズムがありませんでした。今回のリリースにより、Ceph OSD で 48 時間の間に障害が発生した場合は、ハートビート猶予タイマーがデフォルト値の 20 秒にリセットされるようになりました。最後の失敗と、最新の障害間の障害の間隔が 48 時間を超えると、猶予タイマーはデフォルト値の 20 秒にリセットされます。

猶予時間は、Ceph ストレージクラスターがハートビートがないことで Ceph OSD がダウンしたとみなす間隔です。猶予時間は、ラグの推定、または Ceph ODS の障害発生頻度に基づいてスケーリングされます。

ネットワークパフォーマンスを追跡するために ping 時間を使用するように更新します。

以前は、ネットワークの問題が発生しても、他のパフォーマンスの問題と区別することは容易ではありませんでした。今回のリリースで、平均の Red Hat Ceph Storage OSD ハートビートが計算された間隔の設定可能なしきい値を超えると、ヘルス警告が生成されます。Red Hat Ceph Storage OSD は、平均値、最小値、最大値で 1 分、5 分、15 分間隔の計算を行います。

osd_client_message_cap オプションが追加されました。

以前のリリースでは、osd_client_message_cap オプションが削除されましたが、本リリースでは osd_client_message_cap オプションが再導入されました。このオプションは、これらのリクエストをスロットリングして、インフライトクライアント要求の最大数を制御するのに役立ちます。これは、クライアントベースのトラフィックが圧倒的に多いために Ceph OSD がフラップする場合に役立ちます。

Dashboard に追加された BlueStore 圧縮統計

今回のリリースにより、BlueStore OSD の圧縮に関連するパフォーマンスメトリックがダッシュボードに表示されるようになりました。

ダッシュボードの詳細は、『ダッシュボードガイド』を参照してください。

第4章 バグ修正

本セクションでは、今回リリースされた Red Hat Ceph Storage で修正されたユーザーに大きな影響を及ぼすバグについて説明します。また、セクションでは、以前のバージョンで見つかった修正された既知の問題を説明します。

4.1. ceph-ansible ユーティリティー

Playbook の docker-to-podman.yml がダッシュボードコンテナーを移行するようになりました。

grafana-server およびダッシュボードコンテナーを除き、Playbook の docker-to-podman.yml を実行すると、すべてのデーモンが docker から podman に移行していました。今回のリリースにより、docker-to-podman.yml を実行すると、すべてのデーモンが正常に移行されるようになりました。

(BZ#1829389)

Ceph Dashboard の有効化が既存の OpenStack 環境で失敗する

既存の OpenStack 環境で、Ceph Manager ダッシュボードモジュールを有効にした後に Ceph Dashboard の IP アドレスとポートを設定すると、HAProxy 設定とのコンフリクトが発生していました。この競合を避けるには、Ceph Manager ダッシュボードモジュールを有効にする前に、Ceph Dashboard の IP アドレスとポートを設定します。

(BZ#1851455)

HTTPS の使用により、Prometheus およびアラートマネージャーへのアクセスがを遮断

dashboard_protocol オプションを https に設定することにより、Red Hat Ceph Storage Dashboard は TLS をネイティブサポートしない Prometheus API へのアクセスを試行しました。今回のリリースにより、dashboard_protocol オプションを https に設定すると、Prometheus およびアラートマネージャーは HTTP プロトコルを使用するように強制されました。

(BZ#1866006)

Red Hat Ceph Storage のローリングアップデートは、複数のストレージクラスターが存在すると失敗します。

複数のストレージクラスターが設定されている際に Ceph Ansible の Playbook rolling_update.yml を実行すると、ストレージクラスター名が指定されていないため、ローリングアップデートに失敗します。今回のリリースにより、Playbook の rolling_update.yml--cluster オプションを使用して、特定のストレージクラスター名を許可できるようになりました。

(BZ#1876447)

アップグレードに失敗する場合の新たな Ceph Ojbect Gateway インスタンスの追加

radosgw_frontend_port オプションでは、複数の Ceph Object Gateway インスタンスを考慮せず、全インスタンスに対してポート 8080 を設定していました。今回のリリースでは、各 Ceph Object Gateway インスタンスについて radosgw_frontend_port オプションが追加され、複数の Ceph Object Gateway インスタンスを使用できるようになりました。

(BZ#1859872)

Dashboard 機能が無効になっていると、Ansible Playbook の purge-cluster.yml の実行に失敗しなくなりました。

以前のリリースでは、Playbook の purge-cluster-yml を使用してクラスターをパージすると、Dashboard 機能が以下のエラーメッセージで無効になると失敗していました。

registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.1
  msg: '[Errno 2] No such file or directory'

これは、Dashboard_enabled 変数が無視されているために生じました。今回の更新により、dashboard_enabled 変数が適切に処理され、purge-cluster.yml が正常に実行されるようになりました。

(BZ#1785736)

Ansible が、完了後に norebalance フラグの設定を解除します。

以前のバージョンでは、Ansible は norebalance フラグの設定を解除せず、手動で設定する必要がありました。今回の更新で、Ansible Playbook の rolling-update.yml は、完了後に norebalance フラグを自動的に設定を解除されるため、手動による設定解除が必要なくなりました。

(BZ#1793564)

--limit オプションを指定して Playbook を実行すると、Ceph File System Metadata Server のインストールに失敗します。

最初の Ceph Monitor では設定されませんでしたが、それらのファクトはそれぞれの全 Ceph Monitor ノードに設定されていました。--limit オプションを指定して Playbook を実行する際に、Ceph Monitor がバッチに含まれていない場合に、これらのファクトは Ceph Monitor に設定されませんでした。これは、これらの事実が Ceph Monitor のタスクで使用された場合は、Playbook が失敗する原因となります。今回のリリースでは、Playbook が --limit オプションを使用するかどうかに関わらず、これらのファクトは Ceph Monitor に設定されるようになりました。

(BZ#1852796)

Red Hat Enterprise Linux 8.1 でコンテナークラスターを 4.0 から 4.1 にアップグレードすると失敗しなくなりました。

以前のリリースでは、Red Hat Ceph Storage クラスターを 4.0 から 4.1 にアップグレードする際に、set_fact ceph_osd_image_repodigest_before_pulling のエラーでアップグレードに失敗する可能性がありました。コンテナーイメージタグの更新方法に問題があるため、ceph-ansible は失敗する可能性がありました。Red Hat Ceph Storage 4.1z1 では、ceph-ansible が更新され、アップグレードは失敗しなくなり、アップグレードが期待どおりに機能するようになりました。

(BZ#1844496)

Playbook rolling_update.yml を実行してもストレージクラスター fsid が取得されない

Playbook rolling_update.yml を実行しても、Ceph Ansible インベントリーに Ceph Monitor ノードが定義されていない場合など、外部シナリオではストレージクラスターの fsid は取得されません。これにより、Playbook の rolling_update.yml に失敗します。今回のリリースでは、インベントリーに定義された Ceph Monitor がない場合に fsid の取得が省略され、Ceph Monitor が存在しない場合に Playbook rolling_update.yml を実行できるようになりました。

(BZ#1877426)

ローリングアップデートを実行する際に、hosts フィールドに無効な値がある。

Ceph Ansible Playbook rolling_update.ymlhosts 値の評価で構文が変更になったため、Red Hat Ceph Storage のローリングアップデートに失敗しました。今回のリリースにより、コードに対する修正により、hosts フィールドが Playbook で指定されると構文が適切に更新されるようになりました。

(BZ#1876803)

コンテナー化された環境で FileStore を使用する場合は、Ceph Ansible の Playbook shrink-osd.yml が失敗する

Ceph Ansible の Playbook shrink-osd.yml にはデフォルト値がありませんでした。これにより、コンテナー化された環境で FileStore がサポートする Ceph OSD を縮小する際にエラーが生じていました。ceph-disk および dmcrypt を使用して以前に準備した Ceph OSD は、対応する Ceph OSD ファイルで encrypted キーを未定義のままにしていました。今回のリリースにより、デフォルト値が追加され、Ceph Ansible の Playbook shrink-osd.yml がコンテナー化された環境で dmcrypt を使用して準備されている Ceph OSD で実行できるようになりました。

(BZ#1862416)

カスタムソフトウェアリポジトリーを使用した Ceph インストールに失敗しなくなる

以前のリリースでは、カスタムリポジトリーを使用した Ceph のインストールが許可されませんでした。これは、redhat_custom_repository.yml ファイルが削除されたために生じました。今回の更新により、redhat_custom_repository.yml ファイルが追加され、カスタムリポジトリーを使用して Red Hat Ceph Storage をインストールできるようになりました。

注記

Red Hat が署名するパッケージのみが、カスタムソフトウェアリポジトリーを使用して Ceph をインストールすることができます。カスタムのサードパーティーソフトウェアリポジトリーはサポートされません。

(BZ#1808362)

Red Hat Ceph Storage の Red Hat OpenStack Platform へのインストールに失敗しなくなりました。

以前のリリースでは、Red Hat OpenStack Platform 16 で Red Hat Ceph Storage をインストールしようとすると、ceph-ansible ユーティリティーが応答しなくなり、以下のようなエラーが返されます。

'Error: unable to exec into ceph-mon-dcn1-computehci1-2: no container with name or ID ceph-mon-dcn1-computehci1-2 found: no such container'

これは、ceph-ansible が、handler_osds.yml の誤ったノードから container_exec_cmd の値を読み取るために生じました。

今回の更新で、ceph-ansible は正しいノードから container_exec_cmd の値を読み取るようになり、インストールは正常に実行されるようになりました。

(BZ#1792320)

Ansible は Dashboard が有効な場合にマルチサイト Ceph Object Gateway をアップグレードします。

以前のリリースでは、Red Hat Ceph Storage Dashboard が有効になっていて、Ansible を使用して Red Hat Ceph Storage の新しいバージョンへのアップグレードを試みると、マルチサイト設定のセカンダリー Ceph Object Gateway サイトへのアップグレードに失敗していました。Red Hat Ceph Storage に今回の更新で、セカンダリーサイトのアップグレードが期待どおりに機能するようになりました。

(BZ#1794351)

Ceph Ansible が Ceph Dashboard のデプロイメント時に複数の grafana インスタンスをサポートする

以前のリリースでは、マルチノード環境では、1 つのノードのみがサポートされているため、ceph-ansible は複数の grafana インスタンスを設定することができませんでした。これにより、残りのノードが未設定のままになりました。今回の更新により、ceph-ansible は複数のインスタンスをサポートし、Ceph Dashboard のデプロイメント時に Ceph 固有のレイアウトを全 Ceph Monitor ノードに挿入するようになりました。

(BZ#1784011)

スタンドアロンの nfs-ganesha デーモンを外部 Ceph ストレージクラスターで使用すると、デプロイメント時にキーリングがコピーされなくなりました。

以前のリリースでは、スタンドアロンの nfs-ganesha デーモンと外部の Ceph ストレージクラスターで構成される設定では、Ceph Ansible デプロイメント時に Ceph キーリングが /etc/ceph にコピーされませんでした。

今回の更新により、Ceph キーリングが /etc/ceph/ ディレクトリーにコピーされるようになりました。

(BZ#1814942)

Ceph Ansible が Ansible 2.9 と動作する

以前のリリースでは、ceph-ansible バージョン 4.0 以降は Ansible バージョン 2.9 では機能しませんでした。これは、ceph-validate ロールにより Ansible 2.9 に対して ceph-ansible を実行できなかったために生じました。今回の更新により、ceph-ansible が Ansible 2.9 と連携するようになりました。

(BZ#1807085)

Ceph Ansible の Playbook shrink-osd.yml は Ceph OSD を適切に消去しません。

ceph_volume モジュールにより実行される zap アクションは、osd_fsid パラメーターを処理しません。そのため、基になるデバイスに論理ボリュームを残すことにより、Ceph OSD が誤ってザッピングされていました。今回のリリースにより、zap アクションが osd_fsid パラメーターを適切に処理し、縮小後に Ceph OSD を適切にクリーンアップできるようになりました。

(BZ#1873010)

Ceph Object Gateway セカンダリーサイトをデプロイする際に Red Hat Ceph Storage Dashboard が失敗する

以前のリリースでは、Red Hat Ceph Storage Dashboard は Ceph Object Gateway マルチサイトのデプロイメントにセカンダリーサイトをデプロイすることができませんでした。これは、Ceph Ansible が radosgw-admin user create コマンドを実行するとエラーを返すためです。今回のリリースにより、デプロイメントプロセスの Ceph Ansible タスクが 2 つの異なるタスクに分割されました。これにより、Red Hat Ceph Storage Dashboard は Ceph Object Gateway のセカンダリーサイトを正常にデプロイできます。

(BZ#1851764)

Ceph クラスターのデプロイメント後にレプリケーションプールのサイズを変更できるようになりました。

以前のリリースでは、director を使用して Ceph クラスターをデプロイすると、レプリケーションプールのサイズを増やすことができませんでした。これは、プールサイズのカスタマイズを担当するタスクの問題が原因で、Playbook の再実行時に実行できなくなりました。今回の更新により、クラスターのデプロイメント後にプールサイズを変更できるようになりました。

(BZ#1743242)

Dashboard がインストールされていない場合は、ceph-ansible パージ Playbook が失敗しない

以前のバージョンでは、ダッシュボードがデプロイされていない場合、purge Playbook は存在しないダッシュボード関連のリソースの削除を試行するため、クラスターのパージ時に失敗していました。そのため、purge Playbook でダッシュボードがデプロイされ、パージに失敗すると記述されていました。この更新により、デプロイメントの一部ではない場合、ceph-ansible はダッシュボード関連のリソースをパージせず、パージが正常に完了するようになりました。

(BZ#1808988)

古いコンテナーからストレージディレクトリーが削除される

以前のバージョンでは、古いコンテナーのストレージディレクトリーが削除されませんでした。これにより、ディスクの使用量が多くなる可能性があります。これは、Red Hat Ceph Storage をインストールしてそれをパージし、再インストールすると確認できます。Red Hat Ceph Storage 4.1z1 では、使用されなくなったコンテナーのストレージディレクトリーは削除され、過剰なディスク使用量は発生しません。

(BZ#1834974)

Ceph Ansible によって、初回インストール後にダッシュボードの admin ユーザーの権限が更新されます。

以前のリリースでは、ceph-ansible は初回作成時にダッシュボードユーザーの権限を設定できました。インストール時に dashboard_admin_user_ro: false を変更した後に Playbook を実行しても、ユーザーの権限は更新されませんでした。Red Hat Ceph Storage 4.1z1 では、ceph-ansible は、Playbook の連続実行でのダッシュボードユーザーの権限の変更をサポートするように更新されました。

(BZ#1826002)

4.2. Cockpit Ceph インストーラー

ansible-runner-service.sh スクリプトは、リポジトリーがないために失敗しなくなりました。

以前のバージョンでは、/etc/containers/registries.conf にリポジトリーがないため、Cockpit Ceph Installer の起動スクリプトが失敗していました。欠落していたリポジトリーは registry.redhat.io でした。Red Hat Ceph Storage 4.1z1 では、ansible-runner-service.sh スクリプトが更新され、リポジトリーを /etc/containers/registries.conf に含める必要がなくなりました。

(BZ#1809003)

ブリッジを持つ物理ネットワークデバイスで Cockpit Ceph インストーラーが失敗しなくなりました。

以前のリリースでは、Cockpit Ceph Installer は、物理ネットワークデバイスが Linux ソフトウェアブリッジで使用されていると失敗していました。これは、コードの論理エラーが原因です。Red Hat Ceph Storage 4.1z1 ではコードが修正され、Cockpit Ceph Installer を使用して物理ネットワークインターフェース上にブリッジを持つノードにデプロイすることができます。

(BZ#1816478)

Cockpit Ceph インストーラーで Red Hat Enterprise Linux 8 の RPM インストールタイプが可能

以前のリリースでは、Red Hat Enterprise Linux 8 では、Cockpit Ceph Installer でインストールタイプ用に RPM を選択できず、コンテナー化されたものしかインストールできませんでした。Red Hat Ceph Storage 4.1z1 では、RPM を選択してベアメタルに Ceph をインストールできます。

(BZ#1850814)

cockpit-ceph-installer がダッシュボードおよび grafana の管理パスワードを設定しないため、クラスターのインストールが失敗しなくなりました。

以前のバージョンでは、cockpit-ceph-installer ではダッシュボードおよび Grafana の admin パスワードを設定できませんでした。これにより、ceph-ansible のデフォルトパスワードの変更が必要なストレージクラスターの設定に失敗していました。

今回の更新により、cockpit-ceph-installer では Cockpit で admin パスワードを設定できるようになりました。これにより、ストレージクラスターの設定が正常に実行できるようになりました。

(BZ#1839149)

Cockpit Ceph インストーラーが RADOS Gateway に対して Beast の代わりに Civetweb をデプロイしない

以前のバージョンでは、Cockpit Ceph Installer により、RADOS Gateway (RGW) が、現在サポートされている Beast フロントエンドではなく、非推奨の Civetweb フロントエンドを使用するように設定されていました。Red Hat Ceph Storage への今回の更新により、Cockpit Ceph Installer が想定通りに Beast フロントエンドを RGW でデプロイするようになりました。

(BZ#1806791)

4.3. Ceph ファイルシステム

サブボリュームスナップショットの数が増える際の Ceph File System パフォーマンスの向上

以前のリリースでは、400 を超えるサブボリュームスナップショットを作成すると、ファイルシステムの操作が遅くなり、Ceph File System のパフォーマンスが低下していました。今回のリリースで、サブボリュームルートディレクトリーのサブボリュームスナップショットのみをサポートするようにサブボリュームを設定したり、サブボリューム間のリンクや名前変更をしないようにすることができるようになりました。これにより、多数のサブボリュームスナップショットを作成でき、Ceph File System のパフォーマンスは低下しません。

(BZ#1848503)

4.4. Ceph Manager プラグイン

アラート間隔の設定時に Ceph Manager がクラッシュする

Ceph Manager のアラートモジュールにはコードバグがあり、これにより Ceph Manager がクラッシュしていました。今回のリリースにより、このコードのバグが修正され、Ceph Manager のクラッシュなしでアラート間隔を設定することができます。

(BZ#1849894)

4.5. ceph-volume ユーティリティー

ceph-volume コマンドは、論理ボリュームを生のデバイスとして処理しています。

ceph-volume コマンドは、論理ボリュームを生のデバイスとして処理していたため、Playbook の add-osds.yml が失敗していました。そのため、追加の Ceph OSD をストレージクラスターに追加できませんでした。今回のリリースで、ceph-volume でコードのバグが修正され、論理ボリュームが適切に処理され、Playbook の add-osds.yml を使用して Ceph OSD をストレージクラスターに追加できるようになりました。

(BZ#1850955)

ceph-volume lvm batch コマンドが、複数のデバイスタイプで失敗する

lvm batch サブコマンドを使用してデバイスをフィルタリングする場合や、Ceph OSD ストラテジーが変更すると、ceph-volume コマンドは予想される戻りコードを返しませんでした。これにより、ceph-ansible タスクが失敗していました。今回のリリースで、Ceph OSD ストラテジーの変更時に ceph-volume コマンドは正しいステータスコードを返すようになりました。これにより、ceph-ansible は新しい Ceph OSD を追加できるかどうかを適切に確認できるようになりました。

(BZ#1825113)

4.6. コンテナー

nfs-ganesha デーモンが通常どおり起動する

以前のリリースでは、nfs-ganesha と RADOS バックエンドの設定は起動しませんでした。これは、nfs-ganesha-rados-urls ライブラリーがないためです。これは、RADOS バックエンドの nfs-ganesha ライブラリーパッケージが専用のパッケージに移動されたために生じました。今回の更新で、nfs-ganesha-rados-urls パッケージが Ceph コンテナーイメージに追加され、nfs-ganesha デーモンが正常に起動するようになりました。

(BZ#1797075)

4.7. Object Gateway

rgw.none バケット統計の多数のオブジェクト

統計情報を計算するコードが、バケットインデックスエントリーが既に存在するオブジェクトを参照しているかどうかのチェックに失敗する場合がありました。そのため、バケット統計が正しく行われませんでした。今回のリリースにより、存在を確認するためにコードが追加され、バケット統計が修正されました。

(BZ#1846035)

rgw_parse_bucket_key が呼び出されるとバケットのテナントの状態が正しく解釈される

以前のバージョンでは、ループでキーを処理する radosgw-admin bucket stats のような rgw_parse_bucket_key の呼び出し元は、テナントバケットの一部が一覧表示されている場合に、テナント化されていないバケットをテナントと誤って解釈する可能性がありました。rgw_parse_bucket_key が空でない rgw バケット引数で呼び出された場合は、キーにテナントがない場合に bucket::tenant の空の値を正しく割り当てませんでした。Red Hat Ceph Storage 4.1z1 では、テナントが適用されず、バケットのテナント状態が正しく解釈されていない場合は、バケットのテナントメンバーがクリアされるようになりました。

(BZ#1830330)

radosgw-admin bucket check コマンドが、不完全なマルチパートアップロードを表示しないようになりました。

以前のリリースでは、radosgw-admin bucket check コマンドを実行すると、不完全なマルチパートアップロードが表示されていました。これにより、出力がバケットインデックスが破損したかのように出力が表示される可能性があるため、サイト管理者に混乱する可能性があります。今回の更新により、コマンドにエラーと孤立したオブジェクトのみが表示され、不完全なアップロードが除外されるようになりました。

(BZ#1687971)

Ceph Object Gateway が AWS 要求署名を適切に適用

以前のバージョンでは、Ceph Object Gateway はヘッダーの署名に AWS リクエストを適切に適用せず、以下のエラーメッセージを生成していました。

SignatureDoesNotMatch

今回のリリースで、Ceph Object Gateway コードはヘッダーを正しく署名するように修正されました。これにより、要求時に正常に行われる署名リクエストが生成されます。

(BZ#1665683)

Ceph Object Gateway は匿名のユーザー情報をキャッシュしてアクセスしようとします。

以前のリリースでは、Ceph Object Gateway は認証されていないリクエストごとに匿名のユーザー情報の取得を試みていました。この認証されていないアクセスにより、ストレージクラスター内の単一の Ceph OSD に高負荷がかかる可能性がありました。今回のリリースにより、Ceph Object Gateway は匿名のユーザー情報の取得を試みないため、レイテンシーが減少し、1 つの Ceph OSD への負荷が低下するようになりました。

(BZ#1831865)

オブジェクトのライフサイクルの有効期限が正しく報告される

以前のバージョンでは、接頭辞ルールが存在することにより、一部のオブジェクトについて誤ったライフサイクルの有効期限が報告されることがありました。これは、S3 HEAD および GET リクエストで使用される有効期限ヘッダーを生成する際に、ライフサイクル有効期限ルールの任意の接頭辞の制限が無視されるために生じました。Red Hat Ceph Storage 4.1z1 では、ルールの接頭辞が有効期限ヘッダールールのマッチングの一部となり、オブジェクトのライフサイクル有効期限が正しく報告されるようになりました。

(BZ#1833309)

バケットシャードオブジェクトを使用した omap キーの不均等分散

バージョン管理されたバケットでは、オブジェクト操作が完全に完了できないことがありました。この状態では、これらのオブジェクトのバケットインデックスエントリーには、名前およびインスタンス文字列が完全に取り除かれています。後続のリシャードがある場合は、空の名前とインスタンスの文字列によりエントリーがシャード 0 に変更になりました。シャード 0 に属していないエントリーは、そこで終了しました。これにより、シャード 0 には不釣り合いな数のエントリーが置かれ、他のシャードよりも大きくなりました。今回のリリースにより、削除操作のこの部分で名前およびインスタンス文字列が消去されなくなりました。リシャードが行われと、完全には削除されなかったエントリーは正しいシャードに置かれ、シャード 0 に強制されることはありません。

(BZ#1749090)

順序付けされたバケットリストへの呼び出しがスタックする

バケットが順序付けされたリスト操作のコードバグにより、特定の状況ではこの操作がループで停止し、完了しない可能性があります。今回のリリースにより、このコードのバグが修正され、順序付けされたバケット一覧への呼び出しが予想通りに完了するようになりました。

(BZ#1853052)

Object Gateway のライフサイクル処理パフォーマンスの全体的なスループットの向上

以前のバージョンでは、Object Gateway のライフサイクル処理のパフォーマンスは、特定の環境内の多くのバケットまたはコンテナーが含まれるオブジェクトまたはバケットのワークロードが並列化されていないために制限されました。今回の更新により、並列処理は 2 次元となり、単一のオブジェクトゲートウェイインスタンスに複数のライフサイクル処理スレッドを含めることができ、各スレッドにはライフサイクルが機能する複数のワークプールスレッドを持つようになりました。また今回の更新では、シャード のワーカーへの割り当てが改善され、スループット全体が増加しました。

(BZ#1794715)

ライフサイクル処理が NoncurrentVersionExpirationNoncurrentDays を無視

並列ライフサイクル処理中にオブジェクトの修正時間を格納する変数が間違って初期化されていました。このため、バケット内のオブジェクトの最新バージョン以外の期限切れルールを持つオブジェクトが、意図した期限切れ時間よりも前に期限切れになってしまうという問題がありました。今回のリリースにより、変更時間 (mtime) が正しく初期化され、ライフサイクルの処理キューに伝播されるようになりました。これにより、最新バージョン以外の有効期限は、正しい期間で切れます。

(BZ#1875305)

4.8. Object Gateway マルチサイト

RGW デーモンがシャットダウン時にクラッシュしなくなる

以前のリリースでは、radosgw のシャットダウン時の競合状態により、特定の状況で RGW プロセスが中断していました。たとえば、マルチサイトを使用しているときにオブジェクトを削除するときに問題が発生していました。これは、安全でないメモリーを逆参照することが原因で生じていました。Red Hat Ceph Storage 4.1z1 の安全でないメモリーは逆参照されなくなり、RGW デーモンがクラッシュしなくなりました。

(BZ#1840858)

4.9. RADOS

Ceph Manager または OSD がストレージクラスターにない場合に健常性警告のステータスが報告される

以前の Red Hat Ceph Storage リリースでは、ストレージクラスターに Ceph Manager または OSD がない場合でも、ストレージクラスターの健常性ステータスは HEALTH_OK でした。今回のリリースにより、この健常性ステータスは変更され、ストレージクラスターが Ceph Manager で設定されていない場合や、すべての Ceph Manager がダウンした場合に健常性の警告が報告されるようになりました。Red Hat Ceph Storage は Ceph Manager に大きく依存して主要な機能を提供するため、Ceph Manager または OSD を使用せずに Ceph ストレージクラスターを実行することは推奨されません。

(BZ#1761474)

低速のオペレーションがクラスタログに記録されない

以前のバージョンでは、低速なオペレーションのログがクラスターログに記録されませんでした。osd ログまたは mon ログに記録されていても、予想されるレベルの詳細さではありませんでした。今回のリリースにより、低速なオペレーションがクラスターログに記録されるようになりました。これにより、ログのデバッグに役立ちます。

(BZ#1807184)

ceph config show コマンドが正しい fsid を表示します。

以前のリリースでは、ceph config show コマンドは Ceph Monitor のデータベースに存在する設定キーのみを表示し、fsidNO_MON_UPDATE 設定値であるため、fsid が正しく表示されませんでした。今回のリリースにより、ceph config show コマンドに正しい fsid 値が表示されるようになりました。

(BZ#1772310)

配置グループのマージ時にバックフィルが遅延しなくなりました。

以前のリリースでは、Red Hat Ceph Storage の配置グループのマージで、ソースおよびターゲットの配置グループの動作セットがマージ前に一致しない場合に、予想よりも長い時間がかかる可能性がありました。ミスマッチがあるときに行われるバックフィルは、失速しているように見えることがあります。Red Hat Ceph Storage 4.1z1 では、動作セットが一致する配置グループのみをマージするコードが更新されました。この変更により、マージは遅延せずに完了できます。

(BZ#1810949)

smartctl がゼロ以外のエラーコードで終了すると、健常性メトリクスが適切に報告されます。

以前では、smartctl を実行して正しい情報を報告した場合でも、smartctl がゼロ以外のエラーコードで終了した場合、ceph device get-health-metrics コマンドはメトリックの報告に失敗していました。この場合も JSON エラーが報告されました。Red Hat Ceph Storage 4.1z1 では、smartctl 自体が正しい情報を報告する限り、smartctl がゼロ以外のエラーコードで終了した場合でも、ceph device get-health-metrics コマンドはメトリクスを報告します。

(BZ#1837645)

RADOS の小規模なオブジェクトおよびファイルでは、必要以上に領域を使用しないようになりました。

Ceph Object Gateway および Ceph ファイルシステム (CephFS) は、小規模なオブジェクトおよびファイルを RADOS に個別のオブジェクトとして格納します。以前のバージョンでは、BlueStore のデフォルト最小割り当てサイズ (min_alloc_size) (16 KB) より小さいオブジェクトは、必要以上に多くの領域を使用していました。これは、以前の BlueStore の min_alloc_size のデフォルト値がソリッドステートデバイス (SSD) の場合は 16 KB であったために生じました。現在、SSD の min_alloc_size のデフォルト値は 4 KB です。これにより、パフォーマンスに影響を及ぼさずに領域の使用が改善されます。

(BZ#1788347)

Ceph Monitors がメモリーターゲットを超えて拡張できる

メモリターゲットの自動チューニングは Ceph Monitor のリーダーのみで、リーダーに続く Ceph Monitor では行われていませんでした。これにより、Ceph Monitor のフォロワーが設定されたメモリーターゲットを超過する可能性があり、メモリーが枯渇すると Ceph Monitor がクラッシュしていました。今回のリリースにより、自動チューニングプロセスが Ceph Monitor リーダーのメモリーターゲットを適用し、システムでメモリーが枯渇しなくなりました。

(BZ#1827856)

OSD が長時間停止した場合にディスク領域の使用量が増大しない

以前のバージョンでは、OSD が長時間ダウンすると、多数の osdmap が保存され、トリミングされていませんでした。これにより、ディスクが過剰に使用されていました。Red Hat Ceph Storage 4.1z1 では、OSD がダウンしているかどうかに関わらず osdmap がトリミングされており、ディスク容量を過剰に使用しているわけではありません。

(BZ#1829646)

負の時間スパンによる Ceph モニターのクラッシュ

以前は、Ceph Monitorsは、過去にさかのぼる単調な時計によってトリガーされるとクラッシュする可能性がありました。このクラッシュにより、負の単調な期間が発生し、Ceph Monitorへのアサーションをトリガーして、クラッシュを引き起こしました。Ceph Monitor コードは、このアサーションを許容するように更新され、負の値ではなく、ゼロ長の間隔として解釈されていました。その結果、このアサーションが行われたときに Ceph Monitor がクラッシュすることはありません。

(BZ#1847685)

4.10. ブロックデバイス (RBD)

複数の rbd unmap コマンドを同時に実行でき、対応する RBD ブロックデバイスが正常にマッピングされません。

以前のバージョンでは、同時に rbd の unmap コマンドを実行すると、udev 関連のイベント競合状態が発生する可能性がありました。コマンドは散発的に失敗し、対応する RBD ブロックデバイスはノードにマッピングされる可能性があります。今回の更新で、udev 関連のイベント競合状態が修正され、コマンドが失敗しなくなりました。

(BZ#1784895)

第5章 既知の問題

本セクションでは、Red Hat Ceph Storage の今回リリースされた既知の問題を説明します。

5.1. ceph-ansible ユーティリティー

Playbook の filestore-to-bluestore が「osd_auto_discovery」シナリオに対応しない

osd_auto_recovery のシナリオをベースとした Red Hat Ceph Storage 4 デプロイメントでは、BlueStore の移行を容易にするために Playbook filestore-to-bluestore を使用することができません。

(BZ#1881523)

配置グループ Autoscaler のデプロイが期待どおりに機能しない

Red Hat Ceph Storage 4 では、Ceph Manager pg_autoscaler モジュールはデフォルトで有効になっていません。今回のリリースで、Ceph Ansible はデフォルトで Ceph Manager pg_autoscaler モジュールを有効にするようになりました。これにより、配置グループ Autoscaler が期待どおりに機能します。

(BZ#1836431)

5.2. Ceph Management Dashboard

Dashboard が正しい Ceph iSCSI エラーメッセージを提供しない

ユーザーのログイン中に iSCSI ターゲットを削除しようとする場合に Ceph iSCSI がエラー (HTTP の「400」など) を返すと、Red Hat Ceph Storage Dashboard はポップアップ通知を使用してそのエラーコードおよびメッセージを Dashboard ユーザーに転送しませんが、一般的な「500 Internal Server Error」を表示します。したがって、Dashboard が提供するというメッセージは通知されず、誤解を招く場合もあります。予想される動作 (「users cannot delete a busy resource」) は、運用上の失敗 (「internal server error」)として取り上げられます。この問題を回避するには、Dashboard ログを参照してください。

(BZ#1786457)

5.3. ceph-volume ユーティリティー

udev が BlueStore DB および WAL デバイスのパーミッションをリセットするため、Ceph OSD が起動しない

ceph-volume lvm create コマンドを使用して OSD に BlueStore DB パーティションおよび WAL パーティションを指定すると、または Ceph Ansible に lvm_volume オプションを使用すると、起動時にこのデバイスが失敗する可能性があります。udev サブシステムは、パーティションのパーミッションを root:disk にリセットします。

この問題を回避するには、systemd ceph-volume サービスを手動で起動します。たとえば、ID が 8 で OSD を起動するには、systemctl start 'ceph-volume@lvm-8-*' を実行します。service コマンドも使用できます (例: service ceph-volume@lvm-8-4c6ddc44-9037-477d-903c-63b5a789ade5 start)。OSD を手動で起動すると、パーティションに正しいパーミッション ceph:ceph が割り当てられます。

(BZ#1822134)

5.4. Object Gateway

Ceph Object Gateway でバケットまたはオブジェクトを削除すると、孤立した RADOS オブジェクトが生じます。

Ceph Object Gateway ガベージコレクション (GC) が GC キューを処理した後にバケットまたはオブジェクトを削除すると、孤立した RADOS オブジェクトが大量に発生します。これらの RADOS オブジェクトは、削除されたバケットに属していた「リークした」データです。

時間の経過とともに、孤立した RADOS オブジェクトの数がデータプールを埋め、ストレージクラスターのパフォーマンスを低下させる可能性があります。

これらの孤立した RADOS オブジェクトから領域を回収するには、『Red Hat Ceph Storage Object Gateway 設定および管理ガイド』「孤立したオブジェクトおよびメモリーリークがあるオブジェクト」セクションを参照してください。

(BZ#1844720)

5.5. Object Gateway マルチサイト

マルチサイトの Ceph Obejct Gateway 環境では、セカンダリーゾーンで、ユーザーの作成および変更を行う radosgw-admin コマンドを使用することができません。

radosgw-admin コマンドを使用してセカンダリーゾーンでユーザーとサブユーザーを作成または変更しても、--yes-i-really-mean-it オプションが指定されていても、その変更はマスターゾーンに伝播されません。

この問題を回避するには、radosgw-admin コマンドの代わりに REST API を使用します。REST API を使用すると、セカンダリーゾーンでユーザーを作成および変更し、それらの変更をマスターゾーンに伝播できます。

(BZ#1553202)

5.6. RADOS

MegaRaid デバイスのクエリー時に ceph device コマンドが機能しない

現時点で、ceph device query-daemon-health-metrics コマンドは、MegaRaid デバイスに接続されているディスクの健常性メトリックのクエリーには対応していません。このコマンドにより、以下のようなエラーが表示されます。

smartctl returned invalid JSON

現時点で、MgaRaid デバイスのディスク障害予測モジュールは利用できません。現在、この問題に対する回避策はありません。

Red Hat Ceph Storage で RAID ソリューションの詳細は、『Red Hat Ceph Storage ハードウェアガイド』を参照してください。

(BZ#1810396)

5.7. パッケージ

Grafana の現行バージョンにより、Dashboard に特定のバグが発生します。

Red Hat Ceph Storage 4 は、Grafana バージョン 5.2.4 を使用します。このバージョンにより、Red Hat Ceph Storage Dashboard で以下のバグが生じます。

  • Pools > Overall Performance に移動する際に、Grafana は以下のエラーを返します。

    TypeError: l.c[t.type] is undefined
    true
  • プールのパフォーマンス詳細 (Pools > select a pool from the list > Performance Details) を表示すると、Grafana のバーは他のグラフや値と共に表示されますが、存在しないはずです。

これらのバグは、Red Hat Ceph Storage の今後のリリースで、Grafana の新規バージョンにリベースした後に修正されます。

(BZ#1786107)

第6章 非推奨の機能

本セクションでは、Red Hat Ceph Storage の本リリースまでのマイナーリリースで非推奨となった機能の概要を説明します。

Ubuntu への Red Hat Ceph Storage 4 クラスターのインストールはサポートされなくなりました。Red Hat Enterprise Linux を基礎となるオペレーティングシステムとして使用します。

第7章 ソース

更新された Red Hat Ceph Storage ソースコードパッケージは、以下の場所から入手できます。

法律上の通知

Copyright © 2020 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.