director を使用した Red Hat Ceph Storage および Red Hat OpenStack Platform のデプロイ
Red Hat Ceph Storage クラスターのデプロイおよび使用を行うための director の設定
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
Jira でドキュメントのフィードバックを提供する
問題の作成 フォームを使用して、Red Hat OpenStack Services on OpenShift (RHOSO) または Red Hat OpenStack Platform (RHOSP) の以前のリリースのドキュメントに関するフィードバックを提供します。RHOSO または RHOSP ドキュメントの問題を作成すると、その問題は RHOSO Jira プロジェクトに記録され、フィードバックの進行状況を追跡できるようになります。
問題の作成 フォームを完了するには、Jira にログインしていることを確認してください。Red Hat Jira アカウントをお持ちでない場合は、https://issues.redhat.com でアカウントを作成できます。
- 次のリンクをクリックして、問題の作成 ページを開きます (問題の作成)。
- Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
- Create をクリックします。
第1章 オーバークラウドと Red Hat Ceph Storage のデプロイ
Red Hat OpenStack Platform (RHOSP) director は、オーバークラウドとも呼ばれるクラウド環境と Red Hat Ceph Storage をデプロイします。Director は、tripleo-ansible
パッケージを通じて提供される Ansible Playbook を使用して、Ceph Storage クラスターをデプロイします。director は、Ceph Storage クラスターの設定およびスケーリング操作も管理します。
Red Hat Ceph Storage に関する詳細は、Red Hat Ceph Storage Architecture Guide を参照してください。
Red Hat OpenStack Platform のサービスの詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の CLI ツールを使用した基本的なオーバークラウドの設定 を参照してください。
1.1. Red Hat Ceph Storage クラスター
Red Hat Ceph Storage は、パフォーマンス、信頼性、およびスケーラビリティのために設計された分散データオブジェクトストアです。分散オブジェクトストアは、非構造化データを使用して、最新のオブジェクトインターフェイスと従来のオブジェクトインターフェイスを同時に処理します。
Ceph Storage はクラスターとしてデプロイされます。Ceph Storage クラスターは、次の 2 つの主要なタイプのデーモンで構成されます。
- Ceph Object Storage Daemon (CephOSD) - CephOSD は、データストレージ、データレプリケーション、リバランス、リカバリー、モニタリング、およびレポートのタスクを実行します。
- Ceph Monitor (CephMon) - CephMon は、クラスターの現在の状態でクラスターマップのプライマリーコピーを維持します。
Red Hat Ceph Storage に関する詳細は、Red Hat Ceph Storage アーキテクチャーガイド を参照してください。
1.2. Red Hat Ceph Storage ノードと RHEL の互換性
RHOSP 17.1 は RHEL 9.2 でサポートされています。ただし、Ceph Storage ロールにマップされているホストは、最新のメジャー RHEL リリースに更新されます。
1.3. Red Hat Ceph Storage の互換性
RHOSP 17.1 は、新しいデプロイメントで Red Hat Ceph Storage 6 をサポートします。RHOSP 17.1 は、RHOSP 16.2 および Red Hat Ceph Storage 4 からアップグレードするデプロイメントでのみ Red Hat Ceph Storage 5 をサポートします。
1.4. Red Hat Ceph Storage の導入
以下の 2 つのフェーズで Red Hat Ceph Storage をデプロイします。
- オーバークラウドをデプロイする前に、Red Hat Ceph Storage クラスターを作成します。
- オーバークラウドのデプロイメント中に Red Hat Ceph Storage クラスターを設定します。
Ceph RADOS Block Device (RBD) サービスを提供する準備が整った Ceph Storage クラスターが作成されます。さらに、次のサービスが適切なノードで実行されています。
- Ceph Monitor (CephMon)
- Ceph マネージャー (CephMgr)
- Ceph OSD (CephOSD)
プールと cephx キーは、設定フェーズで作成されます。
以下の Ceph Storage コンポーネントは、設定フェーズが完了するまで使用できません。
- Ceph ダッシュボード (CephDashboard)
- Ceph オブジェクトゲートウェイ (CephRGW)
- Ceph MDS (CephMds)
Red Hat Ceph Storage クラスター設定は、オーバークラウドのデプロイ中に最終決定されます。Ceph Object Gateway や Ceph Dashboard などのデーモンおよびサービスは、オーバークラウドの定義に従ってデプロイされます。Red Hat OpenStack Platform (RHOSP) サービスは、Ceph Storage クラスタークライアントとして設定されます。
1.5. Red Hat Ceph Storage のデプロイメント要件
Ceph Storage クラスターを作成する前に、ネットワークリソースとベアメタルインスタンスのプロビジョニングが必要です。Red Hat Ceph Storage クラスターを作成する前に、以下を設定します。
-
openstack overcloud network provision
コマンドとcli-overcloud-network-provision.yaml
ansible playbook を使用してネットワークをプロビジョニングします。 -
openstack overcloud node provision
コマンドでベアメタルインスタンスをプロビジョニングし、cli-overcloud-node-provision.yaml
ansible playbook を使用してベアメタルインスタンスをプロビジョニングします。
これらのタスクの詳細については、次を参照してください。
Ceph Storage クラスター設定を完了するには、以下の要素がオーバークラウド環境に存在する必要があります。
- アンダークラウドホストにインストールされた Red Hat OpenStack Platform director。director を使用した Red Hat OpenStack Platform のインストールと管理の director のインストールを参照してください。
- Red Hat Ceph Storage をサポートするための推奨ハードウェアのインストール。推奨されるハードウェアの詳細は、Red Hat Ceph Storage Hardware Guide を参照してください。
1.6. デプロイ後の検証
Director は、cephadm
コマンドによって実行される tripleo-ansible
ロールを使用して、Ceph RADOS Block Device (RBD) を提供する準備ができている Ceph Storage クラスターをデプロイします。
cephadm
が Ceph Storage デプロイメントを完了した後、以下が整っていることを確認します。
-
sudo cephadm shell
コマンドを使用するための CephMon サービスノードへの SSH アクセス。 すべての OSD が動作しています。
注記動作していない OSD をチェックして、クリーンアップされていないディスクなどの環境問題を確認します。
-
CephMon サービスノードの
/etc/ceph
ディレクトリーにある Ceph 設定ファイルとクライアント管理キーリングファイル。 - Ceph Storage クラスターは、RBD を提供する準備ができています。
プール、cephx キー、CephDashboard、および CephRGW は、openstack overcloud deploy
command によるオーバークラウドのデプロイメント中に設定されます。これには 2 つの理由があります。
-
Dashboard および RGW サービスは、
haproxy
と統合する必要があります。これは、オーバークラウドとともにデプロイされます。 - プールと cephx キーの作成は、デプロイされている OpenStack クライアントによって異なります。
これらのリソースは、クライアント管理キーリングファイルと、openstack overcloud ceph deploy
コマンドによって出力される ~/deployed_ceph.yaml
ファイルを使用して、Ceph Storage クラスターに作成されます。
cephadm
の詳細については、Red Hat Ceph Storage Installation Guide を参照してください。
第2章 デプロイメント用の Ceph Storage ノードの準備
Red Hat Ceph Storage ノードは、IPMI 電源管理を備えたベアメタルシステムです。director は、各ノードに Red Hat Enterprise Linux をインストールします。
director は、イントロスペクションおよびプロビジョニングプロセス中に、プロビジョニングネットワークで各ノードと通信します。すべてのノードは、ネイティブ VLAN でプロビジョニングネットワークに接続します。
オーバークラウドのデプロイメント前のベアメタルプロビジョニングの詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのプロビジョニングとデプロイメント を参照してください。
ベアメタルプロビジョニングの完全なガイドについては、ベアメタルプロビジョニングサービスの設定 を参照してください。
2.1. Ceph Storage ノードのディスクのクリーニング
Ceph Storage OSD とジャーナルパーティションには、ファクトリークリーンディスクが必要です。Ceph OSD サービスをインストールする前に、Bare Metal Provisioning サービス (ironic) によって、これらのディスクからすべてのデータとメタデータを消去する必要があります。
Bare Metal Provisioning サービスを使用して、デフォルトですべてのディスクデータとメタデータを削除するように、director を設定できます。director がこのタスクを実行するように設定されている場合、Bare Metal Provisioning サービスは、ノードが available
に設定されるたびに、ノードを起動する追加の手順を実行します。
Bare Metal Provisioning サービスは、wipefs --force --all
コマンドを使用します。このコマンドは、ディスク上のすべてのデータとメタデータを削除しますが、セキュアな消去は実行しません。Secure Erase には非常に長い時間がかかります。
手順
/home/stack/undercloud.conf
を開き、次のパラメーターを追加します。clean_nodes=true
-
/home/stack/undercloud.conf
を保存します。 アンダークラウド設定を更新します。
openstack undercloud install
2.2. ノードの登録
director と通信できるように、ノードを登録します。
手順
-
/home/stack
にノードインベントリー JSON ファイルを作成します。 ノードごとのハードウェアおよび電源管理の詳細を入力します。
以下に例を示します。
{ "nodes":[ { "mac":[ "b1:b1:b1:b1:b1:b1" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.205" }, { "mac":[ "b2:b2:b2:b2:b2:b2" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.206" }, { "mac":[ "b3:b3:b3:b3:b3:b3" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.207" }, { "mac":[ "c1:c1:c1:c1:c1:c1" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.208" }, { "mac":[ "c2:c2:c2:c2:c2:c2" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.209" }, { "mac":[ "c3:c3:c3:c3:c3:c3" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.210" }, { "mac":[ "d1:d1:d1:d1:d1:d1" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.211" }, { "mac":[ "d2:d2:d2:d2:d2:d2" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.212" }, { "mac":[ "d3:d3:d3:d3:d3:d3" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"ipmi", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.213" } ] }
- 新しいファイルを保存します。
スタックユーザーを初期化します。
$ source ~/stackrc
JSON インベントリーファイルを director にインポートし、ノードを登録する
$ openstack overcloud node import <inventory_file>
<inventory_file>
を最初の手順で作成したファイルの名前に置き換えます。カーネルと ramdisk イメージを各ノードに割り当てます。
$ openstack overcloud node configure <node>
2.3. 利用可能な Red Hat Ceph Storage パッケージの確認
オーバークラウドのデプロイの失敗を回避するために、必要なすべてのパッケージが利用可能であることを確認します。
2.3.1. cephadm パッケージのインストールの確認
cephadm
パッケージが 1 つ以上のオーバークラウドノードにインストールされていることを確認します。cephadm
パッケージは、Ceph Storage クラスターの最初のノードをブートストラップするために使用されます。
cephadm
パッケージは overcloud-hardened-uefi-full.qcow2
イメージに含まれています。tripleo_cephadm
ロールは、Ansible パッケージモジュールを使用して、イメージ内に存在することを確認します。
2.4. マルチディスク Ceph クラスターのルートディスクの定義
Ceph Storage ノードは通常、複数のディスクを使用します。Director は、複数のディスク設定でルートディスクを識別する必要があります。オーバークラウドイメージは、プロビジョニングプロセス中にルートディスクに書き込まれます。
ハードウェアプロパティーは、ルートディスクを識別するために使用されます。ルートディスクの識別に使用できるプロパティーの詳細は、ルートディスクを識別するプロパティー を参照してください。
手順
各ノードのハードウェアイントロスペクションからのディスク情報を確認します。
(undercloud)$ openstack baremetal introspection data save <node_uuid> --file <output_file_name>
-
<node_uuid>
をノードの UUID に置き換えます。 <output_file_name>
を、ノードイントロスペクションの出力を含むファイルの名前に置き換えます。たとえば、1 つのノードのデータで 3 つのディスクが表示される場合があります。
[ { "size": 299439751168, "rotational": true, "vendor": "DELL", "name": "/dev/sda", "wwn_vendor_extension": "0x1ea4dcc412a9632b", "wwn_with_extension": "0x61866da04f3807001ea4dcc412a9632b", "model": "PERC H330 Mini", "wwn": "0x61866da04f380700", "serial": "61866da04f3807001ea4dcc412a9632b" } { "size": 299439751168, "rotational": true, "vendor": "DELL", "name": "/dev/sdb", "wwn_vendor_extension": "0x1ea4e13c12e36ad6", "wwn_with_extension": "0x61866da04f380d001ea4e13c12e36ad6", "model": "PERC H330 Mini", "wwn": "0x61866da04f380d00", "serial": "61866da04f380d001ea4e13c12e36ad6" } { "size": 299439751168, "rotational": true, "vendor": "DELL", "name": "/dev/sdc", "wwn_vendor_extension": "0x1ea4e31e121cfb45", "wwn_with_extension": "0x61866da04f37fc001ea4e31e121cfb45", "model": "PERC H330 Mini", "wwn": "0x61866da04f37fc00", "serial": "61866da04f37fc001ea4e31e121cfb45" } ]
-
一意のハードウェアプロパティーを使用して、ノードのルートディスクを設定します。
(undercloud)$ openstack baremetal node set --property root_device='{<property_value>}' <node-uuid>
-
<property_value>
を、ルートディスクの設定に使用するイントロスペクションデータからの一意のハードウェアプロパティー値に置き換えます。 <node_uuid>
をノードの UUID に置き換えます。注記一意のハードウェアプロパティーは、ディスクを一意に識別するハードウェアイントロスペクションステップからの任意のプロパティーです。たとえば、次のコマンドは、ディスクのシリアル番号を使用してルートディスクを設定します。
(undercloud)$ openstack baremetal node set --property root_device='{"serial": "61866da04f380d001ea4e13c12e36ad6"}' 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0
-
- 最初にネットワークから起動し、次にルートディスクから起動するように、各ノードの BIOS を設定します。
director は、ルートディスクとして使用する特定のディスクを把握します。openstack overcloud node provision
コマンドを実行すると、director はオーバークラウドをプロビジョニングし、ルートディスクにオーバークラウドのイメージを書き込みます。
2.4.1. ルートディスクを識別するプロパティー
以下の属性を定義すると、director がルートディスクを特定するのに役立ちます。
-
model
(文字列): デバイスの ID -
vendor
(文字列): デバイスのベンダー -
serial
(文字列): ディスクのシリアル番号 -
hctl
(文字列): SCSI のホスト、チャンネル、ターゲット、Lun -
size
(整数): デバイスのサイズ (GB 単位) -
wwn
(文字列): 一意のストレージ ID -
wwn_with_extension
(文字列): ベンダー拡張子を追加した一意のストレージ ID -
wwn_vendor_extension
(文字列): 一意のベンダーストレージ ID -
rotational
(ブール値): 回転式デバイス (HDD) には true、そうでない場合 (SSD) には false -
name
(文字列): デバイス名 (例: /dev/sdb1)
永続的な名前を持つデバイスには name
プロパティーを使用します。ノードの起動時に値が変更される可能性があるため、name
プロパティーを使用して永続的な名前を持たないデバイスのルートディスクを設定しないでください。
2.5. overcloud-minimal イメージの使用による Red Hat サブスクリプションエンタイトルメントの使用回避
Red Hat OpenStack Platform (RHOSP) デプロイメントのデフォルトイメージは overcloud-hardened-uefi-full.qcow2
です。overcloud-hardened-uefi-full.qcow2
イメージは、有効な Red Hat OpenStack Platform (RHOSP) サブスクリプションを使用します。サブスクリプションのエンタイトルメントを消費したくない場合は overcloud-minimal
イメージを使用して、有償の Red Hat サブスクリプションが限度に達するのを回避できます。これは、たとえば Ceph デーモンのみでノードをプロビジョニングする場合や、他の OpenStack サービスを実行したくないベアオペレーティングシステム (OS) をプロビジョニングする場合に役立ちます。overcloud-minimal
イメージの取得方法に関する情報は、オーバークラウドノードのイメージの取得 を参照してください。
overcloud-minimal
イメージでは、標準の Linux ブリッジのみサポートされます。overcloud-minimal
イメージでは、Open vSwitch (OVS) はサポートされません。OVS は、Red Hat OpenStack Platform サブスクリプションエンタイトルメントを必要とする OpenStack サービスだからです。Ceph Storage ノードをデプロイするのに OVS は必要ありません。ovs_bond
を使用してボンディングを定義する代わりに、linux_bond
を使用します。
手順
-
/home/stack/templates/overcloud-baremetal-deploy.yaml
ファイルを開きます。 overcloud-minimal
イメージを使用するノードのimage
プロパティーを追加または更新します。特定のノードまたはロールのすべてのノードでイメージをovercloud-minimal
に設定できます。注記オーバークラウドの最小イメージは、ディスクイメージ全体ではありません。カーネルと RAM ディスクは
/home/stack/templates/overcloud-baremetal-deploy.yaml
ファイルで指定する必要があります。特定のノード
- name: Ceph count: 3 instances: - hostname: overcloud-ceph-0 name: node00 image: href: file:///var/lib/ironic/images/overcloud-minimal.raw kernel: file://var/lib/ironic/images/overcloud-minimal.vmlinuz ramdisk: file://var/lib/ironic/images/overcloud-minimal.initrd - hostname: overcloud-ceph-1 name: node01 image: href: file:///var/lib/ironic/images/overcloud-minimal.raw kernel: file://var/lib/ironic/images/overcloud-minimal.vmlinuz ramdisk: file://var/lib/ironic/images/overcloud-minimal.initrd - hostname: overcloud-ceph-2 name: node02 image: href: file:///var/lib/ironic/images/overcloud-minimal.raw kernel: file://var/lib/ironic/images/overcloud-minimal.vmlinuz ramdisk: file://var/lib/ironic/images/overcloud-minimal.initrd
特定のロールのすべてのノード
- name: Ceph count: 3 defaults: image: href: file:///var/lib/ironic/images/overcloud-minimal.raw kernel: file://var/lib/ironic/images/overcloud-minimal.vmlinuz ramdisk: file://var/lib/ironic/images/overcloud-minimal.initrd instances: - hostname: overcloud-ceph-0 name: node00 - hostname: overcloud-ceph-1 name: node01 - hostname: overcloud-ceph-2 name: node02
roles_data.yaml
ロール定義ファイルで、rhsm_enforce
パラメーターをFalse
に設定します。rhsm_enforce: False
プロビジョニングコマンドを実行します。
(undercloud)$ openstack overcloud node provision \ --stack overcloud \ --output /home/stack/templates/overcloud-baremetal-deployed.yaml \ /home/stack/templates/overcloud-baremetal-deploy.yaml
-
overcloud-baremetal-deployed.yaml
環境ファイルをopenstack overcloud ceph deploy
コマンドに渡します。
2.6. Red Hat Ceph Storage のノードの指定
Red Hat Ceph Storage のノードを指定するには、新しいロールファイルを作成して CephStorage
ロールを設定し、ベアメタルノードを CephStorage
のリソースクラスで設定する必要があります。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。[stack@director ~]$ source ~/stackrc
Controller
、Compute
、およびCephStorage
ロールを含む、roles_data.yaml
という名前の新しいロールデータファイルを生成します。(undercloud)$ openstack overcloud roles \ generate Controller Compute CephStorage -o /home/stack/templates/roles_data.yaml \
roles_data.yaml
を開き、次のパラメーターとセクションがあることを確認します。セクション/パラメーター 値 ロールのコメント
Role: CephStorage
ロール名
name: CephStorage
description
Ceph node role
HostnameFormatDefault
%stackname%-novaceph-%index%
deprecated_nic_config_name
ceph.yaml
- ノード定義テンプレートに追加して、オーバークラウドの Ceph ノードを登録します。
ノードのハードウェアを検査します。
(undercloud)$ openstack overcloud node introspect --all-manageable --provide
カスタム Ceph リソースクラスを使用して、Ceph 用に指定する各ベアメタルノードにタグを付けます。
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.CEPH <node>
<node>
をベアメタルノードの ID に置き換えてください。CephStorage
ロールをovercloud-baremetal-deploy.yaml
ファイルに追加し、ノードに割り当てる予測可能なノード配置、リソースクラス、またはその他の属性を定義します。- name: Controller count: 3 - name: Compute count: 3 - name: CephStorage count: 5 defaults: resource_class: baremetal.CEPH
プロビジョニングコマンドを実行します。
(undercloud)$ openstack overcloud node provision \ --stack stack \ --output /home/stack/templates/overcloud-baremetal-deployed.yaml \ /home/stack/templates/overcloud-baremetal-deploy.yaml
別のターミナルでプロビジョニングの進捗をモニタリングします。プロビジョニングが成功すると、ノードの状態が
available
からactive
に変わります。(undercloud)$ watch openstack baremetal node list
関連情報
- ノード登録の詳細については、「ノードの登録」 を参照してください。
- ノードハードウェアの検査の詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの ベアメタルノードハードウェアのインベントリーの作成 を参照してください。
第3章 Red Hat Ceph Storage クラスターの設定
Red Hat OpenStack Platform 環境に Red Hat Ceph Storage クラスターをデプロイするには、最初に環境の Red Hat Ceph Storage クラスターオプションを設定する必要があります。
Red Hat Ceph Storage クラスターオプションを設定します。
前提条件
Red Hat Ceph Storage クラスターを設定してデプロイする前に、Bare Metal Provisioning サービス (ironic) を使用して、ベアメタルインスタンスとネットワークをプロビジョニングします。詳細は、Bare Metal Provisioning サービスの設定 を参照してください。
3.1. openstack overcloud ceph deploy
コマンド
director を使用して Ceph クラスターをデプロイする場合は、openstack overcloud ceph deploy
コマンドを使用する必要があります。コマンドオプションおよびパラメーターの完全な一覧は、コマンドラインインターフェイスリファレンス の openstack overcloud ceph deploy を参照してください。
コマンド openstack overcloud ceph deploy --help
は、環境で使用可能な現在のオプションとパラメーターを提供します。
3.2. Ceph 設定ファイル
標準形式の初期化ファイルは、Ceph クラスター設定を実行する 1 つの方法です。この初期化ファイルは、Ceph クラスターを設定するために使用されます。このファイルを使用するには、* cephadm bootstap --config <file_name>
* openstack overcloud ceph deploy --config <file_name>
コマンドのいずれかを使用します。
例
以下の例では、initial-ceph.conf
という単純な初期化ファイルを作成し、openstack overcloud ceph deploy
コマンドを使用して Ceph クラスターを設定します。ネットワーク上を通過するすべてのデータを暗号化するセキュアモードを使用するようにメッセンジャー v2 プロトコルを設定する方法を示します。
$ cat <<EOF > initial-ceph.conf [global] ms_cluster_mode = secure ms_service_mode = secure ms_client_mode = secure EOF $ openstack overcloud ceph deploy --config initial-ceph.conf ...
3.3. 時刻同期の設定
時刻同期サービス (chrony) は、デフォルトで時刻同期が有効になっています。以下のタスクを実行してサービスを設定できます。
時刻同期は、区切り文字付きリストまたは環境ファイルを使用して設定されます。管理に最適な手順を使用してください。
3.3.1. 区切りリストを使用した時刻同期の設定
区切りリストを使用して NTP サーバーを設定するように時刻同期サービス (chrony) を設定できます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 区切りリストを使用して NTP サーバーを設定します。
openstack overcloud ceph deploy \ --ntp-server "<ntp_server_list>"
<ntp_server_list>
をコンマ区切りのサーバーのリストに置き換えます。openstack overcloud ceph deploy \ --ntp-server "0.pool.ntp.org,1.pool.ntp.org"
3.3.2. 環境ファイルを使用した時刻同期の設定
NTP サーバーを定義する環境ファイルを使用するように時刻同期サービス (chrony) を設定できます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 -
/home/stack/templates/ntp-parameters.yaml
などの環境ファイルを作成して、NTP サーバー設定を含めます。 NtpServer
パラメーターを追加します。NtpServer
パラメーターには、NTP サーバーのコンマ区切りリストが含まれます。parameter_defaults: NtpServer: 0.pool.ntp.org,1.pool.ntp.org
環境ファイルを使用して NTP サーバーを設定します。
openstack overcloud ceph deploy \ --ntp-heat-env-file "<ntp_file_name>"
<ntp_file_name>
を、作成した環境ファイルの名前に置き換えます。openstack overcloud ceph deploy \ --ntp-heat-env-file "/home/stack/templates/ntp-parameters.yaml"
3.3.3. 時刻同期の無効化
時刻同期サービス (chrony) はデフォルトで有効になっています。サービスを使用したくない場合は、サービスを無効にすることができます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 時刻同期サービス (chrony) を無効にします。
openstack overcloud ceph deploy \ --skip-ntp
3.4. トップレベルドメイン接尾辞の設定
トップレベルドメイン (TLD) 接尾辞を設定できます。この接尾辞は、短いホスト名に追加して、オーバークラウドノードの完全修飾ドメイン名を作成します。
TLS-e の設定には完全修飾ドメイン名が必要です。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 最上位のドメイン接尾辞を設定します。
openstack overcloud ceph deploy \ --tld "<domain_name>"
<domain_name>
は、必要なドメイン名に置き換えます。openstack overcloud ceph deploy \ --tld "example.local"
3.5. Red Hat Ceph Storage クラスター名の設定
設定した名前で Red Hat Ceph Storage クラスターをデプロイできます。デフォルト名は ceph です。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 次のコマンドを使用して、Ceph Storage クラスターの名前を設定します。
openstack overcloud ceph deploy \ --cluster <cluster_name>
$ openstack overcloud ceph deploy \ --cluster central \
キーリングファイルは、現時点では作成されません。キーリングファイルは、オーバークラウドのデプロイメント中に作成されます。キーリングファイルは、この手順で設定されたクラスター名を継承します。オーバークラウドのデプロイメントの詳細は、「オーバークラウドデプロイメントの開始」 を参照してください。
上記の例では、Ceph クラスターの名前は central です。central の Ceph クラスターの設定ファイルとキーリングファイルは、デプロイプロセス中に /etc/ceph
に作成されます。
[root@oc0-controller-0 ~]# ls -l /etc/ceph/ total 16 -rw-------. 1 root root 63 Mar 26 21:49 central.client.admin.keyring -rw-------. 1 167 167 201 Mar 26 22:17 central.client.openstack.keyring -rw-------. 1 167 167 134 Mar 26 22:17 central.client.radosgw.keyring -rw-r--r--. 1 root root 177 Mar 26 21:49 central.conf
トラブルシューティング
Ceph Storage クラスターのカスタム名を設定すると、次のエラーが表示される場合があります。
monclient: get_monmap_and_config cannot identify monitors to contact because
このエラーが表示された場合は、Ceph のデプロイ後に次のコマンドを使用します。
cephadm shell --config <configuration_file> --keyring <keyring_file>
たとえば、クラスター名を central
に設定したときにこのエラーが表示された場合は、次のコマンドを使用します。
cephadm shell --config /etc/ceph/central.conf \ --keyring /etc/ceph/central.client.admin.keyring
代わりに次のコマンドを使用することもできます。
cephadm shell --mount /etc/ceph:/etc/ceph export CEPH_ARGS='--cluster central'
3.6. ネットワークデータファイルを使用したネットワークオプションの設定
ネットワークデータファイルには、Red Hat Ceph Storage クラスターが使用するネットワークが記述されています。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 network_data.yaml
というカスタムネットワーク属性を定義する YAML 形式のファイルを作成します。重要ネットワーク分離を使用すると、標準のネットワークデプロイメントは、2 つの Ceph ネットワークにマッピングされる 2 つのストレージネットワークで構成されます。
-
ストレージネットワーク
storage
は、Ceph ネットワークpublic_network
にマップされます。このネットワークは、コンピュートノードから Ceph クラスターへの RBD トラフィックなどのストレージトラフィックを処理します。 -
ストレージネットワーク
storage_mgmt
は、Ceph ネットワークcluster_network
にマップされます。このネットワークは、Ceph OSD 間のデータレプリケーションなどのストレージ管理トラフィックを処理します。
-
ストレージネットワーク
openstack overcloud ceph deploy
コマンドと--config
オプションを使用して、設定をデプロイします。openstack overcloud ceph deploy \ deployed_metal.yaml \ -o deployed_ceph.yaml \ --network-data network_data.yaml
重要openstack overcloud ceph deploy
コマンドは、--network-data
オプションで指定されたネットワークデータファイルを使用して、public_network
およびcluster_network
として使用するネットワークを決定します。コマンドは、--public-network-name
および--cluster-network-name
オプションで別の名前が指定されていない限り、これらのネットワークがネットワークデータファイルでstorage
およびstorage_mgmt
という名前であると想定します。ネットワーク分離を使用してデプロイする場合は、
--network-data
オプションを使用する必要があります。このオプションを使用しない場合、デフォルトのアンダークラウド (192.168.24.0/24) がpublic_network
とcluster_network
の両方に使用されます。
3.7. 設定ファイルを使用したネットワークオプションの設定
ネットワークオプションは、ネットワークデータファイルの代わりに設定ファイルで指定できます。
この方法を使用してネットワークオプションを設定すると、network_data.yaml
で自動的に生成された値が上書きされます。このネットワーク設定方法を使用する場合は、必ず 4 つの値をすべて設定してください。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 - Ceph クラスターを設定する標準形式の初期化ファイルを作成します。他の設定オプションを含むファイルをすでに作成している場合は、それにネットワーク設定を追加できます。
ファイルの
[global]
セクションに次のパラメーターを追加します。-
public_network
-
cluster_network
ms_bind_ipv4
重要public_network
およびcluster_network
がstorage
およびstorage_mgmt
と同じネットワークにマップされていることを確認します。以下は、複数のサブネットとカスタムネットワーク名を持つネットワーク設定の設定ファイルエントリーの例です。
[global] public_network = 172.16.14.0/24,172.16.15.0/24 cluster_network = 172.16.12.0/24,172.16.13.0/24 ms_bind_ipv4 = True ms_bind_ipv6 = False
-
コマンド
openstack overcloud ceph deploy
を--config
オプションとともに使用して、設定ファイルをデプロイします。$ openstack overcloud ceph deploy \ --config initial-ceph.conf --network-data network_data.yaml
3.8. OSD の CRUSH 階層の設定
OSD デプロイメント中にカスタム Controlled Replication Under Scalable Hashing (CRUSH) 階層を設定して、OSD location
属性を Ceph Storage クラスター hosts
仕様に追加できます。location
属性は、OSD が CRUSH 階層内のどこに配置されるかを設定します。
location
属性は、最初の CRUSH ロケーションのみを設定します。その後の属性変更は無視されます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
-
カスタム CRUSH 階層を定義する設定ファイルを作成します (例:
crush_hierarchy.yaml
)。 そのファイルに以下の設定を追加します。
<osd_host>: root: default rack: <rack_num> <osd_host>: root: default rack: <rack_num> <osd_host>: root: default rack: <rack_num>
-
<osd_host>
を、OSD がデプロイされているノードのホスト名 (ceph-0
など) に置き換えます。 -
<rack_num>
を、OSD がデプロイメントされているラックの番号 (r0
など) に置き換えます。
-
カスタム OSD レイアウトを使用して Ceph クラスターをデプロイします。
openstack overcloud ceph deploy \ deployed_metal.yaml \ -o deployed_ceph.yaml \ --osd-spec osd_spec.yaml \ --crush-hierarchy crush_hierarchy.yaml
Ceph クラスターは、カスタム OSD レイアウトで作成されます。
上記のサンプルファイルは、次の OSD レイアウトになります。
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.02939 root default -3 0.00980 rack r0 -2 0.00980 host ceph-node-00 0 hdd 0.00980 osd.0 up 1.00000 1.00000 -5 0.00980 rack r1 -4 0.00980 host ceph-node-01 1 hdd 0.00980 osd.1 up 1.00000 1.00000 -7 0.00980 rack r2 -6 0.00980 host ceph-node-02 2 hdd 0.00980 osd.2 up 1.00000 1.00000
デバイスクラスは Ceph によって自動的に検出されますが、CRUSH ルールはプールに関連付けられています。プールは、引き続きオーバークラウドのデプロイメント中に CephCrushRules
パラメーターを使用して定義および作成されます。
関連情報
詳細は、Red Hat Ceph Storage インストールガイド の Red Hat Ceph Storage ワークロードの考慮事項 を参照してください。
3.9. Ceph サービス配置オプションの設定
カスタムロールファイルを使用して、どのノードがどの Ceph サービスを実行するかを定義できます。カスタムロールファイルは、環境が理由でデフォルトのロール割り当てが使用されない場合にのみ必要です。たとえば、ハイパーコンバージドノードをデプロイする場合、事前にデプロイされたコンピュートノードは、サービスタイプが osd の osd としてラベル付けされ、コンピュートインスタンスのリストを含む配置リストを持つ必要があります。
roles_data.yaml
ファイルのサービス定義は、どのベアメタルインスタンスがどのサービスを実行するかを決定します。デフォルトでは、Controller ロールには CephMon および CephMgr サービスがあり、CephStorage ロールには CephOSD サービスがあります。ほとんどのコンポーザブルサービスとは異なり、Ceph サービスでは、サービスの設定方法を決定するために heat 出力は必要ありません。デプロイされた Ceph プロセスが Heat の実行前に発生する場合でも、roles_data.yaml
ファイルが常に Ceph サービスの配置を決定します。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 - カスタムロールを定義する YAML 形式のファイルを作成します。
設定ファイルをデプロイします。
$ openstack overcloud ceph deploy \ deployed_metal.yaml \ -o deployed_ceph.yaml \ --roles-data custom_roles.yaml
3.10. Ceph ノードの SSH ユーザーオプションの設定
openstack overcloud ceph deploy
コマンドはユーザーとキーを作成し、それらをホストに配布するため、このセクションの手順を実行する必要はありません。ただし、これはサポート対象のオプションです。
Cephadm は、SSH を使用してすべての管理対象のリモート Ceph ノードに接続します。Red Hat Ceph Storage クラスターのデプロイメントプロセスにより、すべてのオーバークラウド Ceph ノードでアカウントと SSH キーのペアが作成されます。その後、鍵ペアが Cephadm に渡され、ノードと通信できるようになります。
3.10.1. Red Hat Ceph Storage クラスター作成前の SSH ユーザーの作成
openstack overcloud ceph user enable
コマンドを使用して、Ceph クラスターを作成する前に SSH ユーザーを作成できます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 SSH ユーザーを作成します。
$ openstack overcloud ceph user enable <specification_file>
<specation_file>
を、ユーザーが作成され、公開 SSH キーがインストールされているクラスターを記述した Ceph 仕様ファイルのパスと名前に置き換えます。仕様ファイルは、どのノードを変更するか、また秘密鍵が必要かどうかを決定するための情報を提供します。仕様ファイルの作成の詳細は、サービス仕様の生成 を参照してください。
注記デフォルトのユーザー名は
ceph-admin
です。別のユーザー名を指定するには、--cephadm-ssh-user
オプションを使用して別のユーザー名を指定します。openstack overcloud ceph user enable --cephadm-ssh-user <custom_user_name>
--cephadm-ssh-user
パラメーターを使用せずに、デフォルト名を使用することが推奨されます。ユーザーが事前に作成されている場合は、
openstack overcloud ceph deploy
を実行するときにパラメーター--skip-user-create
を使用します。
3.10.2. SSH ユーザーの無効化
SSH ユーザーを無効にすると、cephadm
が無効になります。cephadm
を無効にすると、Ceph クラスターを管理するサービスの機能が削除され、関連するコマンドが機能しなくなります。また、Ceph ノードのオーバークラウドのスケーリング操作も防ぎます。また、すべての公開および秘密 SSH キーも削除されます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 openstack overcloud ceph user disable --fsid <FSID> <specification_file>
コマンドを使用して、SSH ユーザーを無効にします。-
<FSID>
を、クラスターのファイルシステム ID に置き換えます。FSID は、そのクラスターの一意の識別子です。FSID は、deployed_ceph.yaml
環境ファイルにあります。 <specation_file>
を、ユーザーが作成されたクラスターを記述した Ceph 仕様ファイルのパスと名前に置き換えます。重要cephadm
を無効にする必要がある場合を除き、openstack overcloud ceph user disable
コマンドは推奨されません。重要SSH ユーザーと Ceph オーケストレーターサービスを無効にした後に有効にするには、
openstack overcloud ceph user enable --fsid <FSID> <specification_file>
コマンドを使用します。注記このコマンドでは、以下を判別するために Ceph 仕様ファイルへのパスが必要です。
- SSH ユーザーを必要とするホスト。
- _admin ラベルがあり、プライベート SSH キーを必要とするホスト。
- 公開 SSH キーを必要とするホスト。
仕様ファイルとその生成方法の詳細は、サービス仕様の生成を参照してください。
-
3.11. Ceph Storage コンテナーへのアクセス
director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの コンテナーイメージの準備 には、コンテナーイメージを使用するためにレジストリーとアンダークラウドおよびオーバークラウド設定を準備する方法に関する手順と情報が記載されています。このセクションの情報を使用して、これらの手順を Ceph Storage コンテナーにアクセスするように調整します。
オーバークラウドから Ceph Storage コンテナーにアクセスするには 2 つのオプションがあります。
3.11.1. リモートレジストリーからコンテナーを直接ダウンロードする
リモートレジストリーからコンテナーを直接ダウンロードするように Ceph を設定できます。
cephadm
コマンドは、containers-prepare-parameter.yaml
ファイルに設定されている認証情報を使用してリモートレジストリーに認証し、Red Hat Ceph Storage コンテナーをダウンロードします。
手順
-
director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの コンテナーイメージの準備 の手順を使用して、
containers-prepare-parameter.yaml
ファイルを作成します。 -
プライベートレジストリーからコンテナーイメージを取得する の説明に従って、
ContainerImageRegistryCredentials
パラメーターを使用して、リモートレジストリーの認証情報をcontainers-prepare-parameter.yaml
ファイルに追加します。 Ceph をデプロイするときは、
openstack overcloud ceph deploy
コマンドを使用して、containers-prepare-parameter.yaml
ファイルを渡します。openstack overcloud ceph deploy \ --container-image-prepare containers-prepare-parameter.yaml
注記アンダークラウドでのコンテナーのキャッシュ で説明されているように、アンダークラウドでコンテナーをキャッシュしない場合は、Ceph をデプロイするときに同じ
containers-prepare-parameter.yaml
ファイルをopenstack overcloud ceph deploy
コマンドに渡す必要があります。これにより、コンテナーがアンダークラウドにキャッシュされます。
3.11.2. アンダークラウド上のコンテナーのキャッシュ
準備プロセスにおけるイメージの変更 手順では、次のコマンドの使用について説明しています。
sudo openstack tripleo container image prepare \ -e ~/containers-prepare-parameter.yaml \
リモートレジストリーからのコンテナーの直接ダウンロードで説明されているように、--container-image-prepare
オプションを使用しないで openstack overcloud ceph deploy
コマンドに認証認証情報を提供し、リモートレジストリーから Ceph コンテナーを直接ダウンロードする場合は、Ceph をデプロイする前に sudo openstack tripleo container image prepare
コマンドを実行する必要があります。
第4章 Red Hat Ceph Storage クラスターのカスタマイズ
director は、デフォルト設定で Red Hat Ceph Storage をデプロイします。このデフォルト設定をカスタマイズできます。
前提条件
- ストレージネットワークが設定された状態でデプロイされた Ceph Storage ノード。
-
openstack overcloud node provision -o ~/deployed_metal.yaml …
によって出力されたデプロイされたベアメタルファイル。
4.1. 設定オプション
Red Hat Ceph Storage クラスターを設定するには、複数のオプションがあります。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 オプション: 標準形式の初期化 (ini) ファイルを使用して Ceph クラスターを設定します。
設定オプションを含むファイルを作成します。
以下は、単純な設定ファイルの例です。
[global] osd_crush_chooseleaf type = 0 log_file = /var/log/ceph/$cluster-$type.$id.log [mon] mon_cluster_log_to_syslog = true
- 設定ファイルを作成します。
openstack overcloud ceph deploy --config <configuration_file_name>
コマンドを使用して設定をデプロイします。<configuration_file_name>
を作成したファイルの名前に置き換えます。$ openstack overcloud ceph deploy --config initial-ceph.conf
オプション: 設定値を
cephadm bootstrap
コマンドに送信します。openstack overcloud ceph deploy --force \ --cephadm-extra-args '<optional_arguments>' \
<optional_arguments>
を設定値に置き換えて、基になるコマンドに提供します。注記引数
--log-to-file
および--skip-prepare-host
を使用する場合は、コマンドopenstack overcloud ceph deploy --force \ --cephadm-extra-args '--log-to-file --skip-prepare-host' \
が使用されます。
4.2. サービス仕様の生成 (オプション)
Red Hat Ceph Storage クラスターサービス仕様は、Ceph Storage サービスのデプロイメントを記述する YAML ファイルです。Ceph Storage クラスターがデプロイされる前に、tripleo
によって自動的に生成されます。通常は、個別に生成する必要はありません。
カスタムサービス仕様を作成して、Red Hat Ceph Storage クラスターをカスタマイズできます。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 仕様ファイルを生成します。
openstack overcloud ceph spec deployed_metal.yaml -o <specification_file>
<specification_file>
を現在のサービス仕様で生成するファイルの名前に置き換えます。注記deployed_metal.yaml
は、openstack overcloud node provision
コマンドの出力から取得されます。
- 生成されたファイルを編集して必要な設定を追加します。
カスタムサービス仕様をデプロイします。
openstack overcloud ceph deploy \ deployed_metal.yaml \ -o deployed_ceph.yaml \ --ceph-spec <specification_file>
-
<specification_file>
をカスタムサービス仕様ファイルの名前に置き換えます。
-
4.3. Red Hat OpenStack Platform と Red Hat Ceph Storage の Ceph コンテナー
NFS Ganesha で Red Hat Ceph Storage を使用するように、Red Hat Openstack Platform (RHOSP) を設定するには、Ceph Storage コンテナーが必要です。外部 Ceph Storage クラスターがブロック (RBD 経由)、オブジェクト (RGW 経由)、またはファイル (ネイティブ CephFS 経由) ストレージのみを提供する場合、Ceph Storage コンテナーは不要です。
RHOSP 17.1 は Red Hat Ceph Storage 6.x (Ceph パッケージ 17.x) をデプロイします。Ceph Storage 6.x コンテナーは、認証が必要なレジストリーである registry.redhat.io
でホスティングされます。詳細は、コンテナーイメージ準備のパラメーター を参照してください。
4.4. 高度な OSD 仕様の設定
デフォルトの仕様では、Ceph Storage クラスターに必要な機能が提供されない場合、高度な OSD 仕様を設定します。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 高度な OSD 仕様を定義する YAML 形式のファイルを作成します。
以下は、カスタム OSD 仕様の例です。
data_devices: rotational: 1 db_devices: rotational: 0
この例では、すべてのローテーションデバイスがデータデバイスになり、すべての非ローテーションデバイスが共有デバイスとして使用される OSD 仕様を作成します。動的 Ceph サービス仕様が構築されると、
service_type
がosd
の場合、仕様ファイルにあるものは、すべて仕様のセクションに追加されます。注記カスタム OSD 仕様ファイルには完全な OSD 仕様を含めることはできません。
以下は、完全な OSD 仕様の例です。
service_type: osd service_id: osd_spec_hdd placement: host_pattern: 'storage-*' data_devices: paths: - /dev/sda - /dev/sdb
カスタム OSD 仕様ファイルには、同じファイルに複数の YAML ドキュメントを含めないでください。
以下は、同じファイル内の複数の YAML ドキュメントの例です。
data_devices: paths: - /dev/sda - /dev/sdb - /dev/sdc --- data_devices: paths: - /dev/sdk - /dev/sdl - /dev/sdm
環境の初回デプロイ後に Red Hat Ceph Storage コマンドラインツールを使用して、これらの要件で OSD 仕様を設定します。詳細は、Red Hat Ceph Storage Operations Guide の Deploying Ceph OSDs using advanced service specifications を参照してください。
- 仕様ファイルを保存します。
仕様をデプロイします。
openstack overcloud ceph deploy \ --osd-spec <osd_specification_file>
<osd_specification_file>
を作成した仕様ファイルの名前に置き換えます。$ openstack overcloud ceph deploy \ --osd-spec osd_spec.yaml \
関連情報
サービス仕様で OSD を設定するために使用される OSD 関連の属性のリストは、Red Hat Ceph Storage 操作ガイド の OSD をデプロイするための高度なサービス仕様およびフィルター を参照してください。
4.5. ノード固有のオーバーライドからの移行
Red Hat OpenStack Platform 17.0 より前は、ノード固有のオーバーライドを使用して、同種ではないサーバーハードウェアを管理していました。これは、カスタム OSD 仕様ファイルで実行されるようになりました。カスタム OSD 仕様ファイルの作成方法は、高度な OSD 仕様の設定 を参照してください。
4.6. Ceph 伝送時暗号化の有効化
メッセンジャーバージョン 2 プロトコルの secure mode
を使用して、すべての Ceph Storage トラフィックの暗号化を有効にします。Red Hat Ceph Storage Red Hat OpenStack Platform のデータ強化 の 暗号化とキー管理 の説明に従って Ceph Storage を設定し、Ceph オンワイヤー暗号化を有効にします。
関連情報
Ceph 伝送時暗号化に関する詳しい情報は、Red Hat Ceph Storage アーキテクチャーガイド の Ceph on-wire encryption を参照してください。
第5章 ストレージサービスのカスタマイズ
director の heat テンプレートコレクションには、基本的な Ceph Storage 設定を有効にするために必要なテンプレートと環境ファイルが含まれています。
director は /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml
環境ファイルを使用して、openstack overcloud ceph deploy
によってデプロイされた Ceph Storage クラスターに設定を追加し、デプロイ中にそれをオーバークラウドと統合します。
5.1. カスタム環境ファイルの設定
Director は、デプロイされた Red Hat Ceph Storage クラスターに基本的なデフォルト設定を適用します。カスタム環境ファイルで追加の設定を定義する必要があります。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 カスタム設定を定義するファイルを作成します。
vi /home/stack/templates/storage-config.yaml
-
ファイルに
parameter_defaults
セクションを追加します。 カスタム設定パラメーターを追加します。パラメーター定義の詳細は、オーバークラウドのパラメーター を参照してください。
parameter_defaults: CinderEnableIscsiBackend: false CinderEnableRbdBackend: true CinderBackupBackend: ceph NovaEnableRbdBackend: true GlanceBackend: rbd
注記カスタム設定ファイルで定義されたパラメーターは、
/usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml
の対応するデフォルト設定をオーバーライドします。- ファイルを保存します。
関連情報
カスタム設定は、オーバークラウドのデプロイ中に、適用されます。
5.2. Red Hat Ceph Storage 配置グループ
配置グループ (PG) は、大規模な動的で効率的なオブジェクトトラッキングを容易にします。OSD 障害または Ceph Storage クラスターの再調整が発生した場合、Ceph は配置グループと配置グループの内容を移動または複製できます。これにより、Ceph Storage クラスターは効率的に再調整および回復できます。
次のパラメーターが Ceph 設定ファイルに含まれていないかぎり、配置グループとレプリカ数の設定はデフォルトから変更されません。
-
osd_pool_default_size
-
osd_pool_default_pg_num
-
osd_pool_default_pgp_num
openstack overcloud deploy
コマンドを使用して、オーバークラウドをデプロイすると、有効な Red Hat OpenStack Platform サービスごとにプールが作成されます。たとえば、次のコマンドは、Compute サービス (nova)、Block Storage サービス (cinder)、および Image サービス (glance) のプールを作成します。
openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm-rbd-only.yaml
コマンドに -e environments/cinder-backup.yaml
を追加すると、backups
という名前のプールが作成されます。
openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm-rbd-only.yaml -e environments/cinder-backup.yaml
プールごとに配置グループ番号を設定する必要はありません。pg_autoscale_mode
属性はデフォルトで有効になっています。ただし、target_size_ratio
または pg_num
属性を設定することを推奨します。これにより、データの再調整が最小限に抑えられます。
プールごとに target_size_ratio
属性を設定するには、次の例のような設定ファイルエントリーを使用します。
parameter_defaults: CephPools: - name: volumes target_size_ratio: 0.4 application: rbd - name: images target_size_ratio: 0.1 application: rbd - name: vms target_size_ratio: 0.3 application: rbd
この例では、サービスごとに使用されるデータの割合は次のようになります。
- Cinder ボリューム - 40%
- Glance イメージ - 10%
- Nova vms - 30%
- 他のプール用の空き容量 - 20%
これらの値は、予想される使用量に基づいて設定してください。CephPools
パラメーターをオーバーライドしない場合、各プールはデフォルトの配置グループ番号を使用します。オートスケーラーは使用状況に基づいて時間の経過とともにこの数を自動的に調整しますが、データは Ceph クラスター内で移動されます。これは、計算リソースを使用します。
ターゲットサイズ比ではなく、配置グループ数を設定する場合は、例の target_size_ratio
を pg_num
に置き換えます。予想される使用量に基づいて、プールごとに異なる整数を使用してください。
Red Hat Ceph Storage プロセッサー、ネットワークインターフェイスカード、および電源管理インターフェイスに関する推奨事項は、Red Hat Ceph Storage Hardware Guide を参照してください。
5.3. Ceph Metadata Server の有効化
Ceph Metadata Server (MDS) は ceph-mds
デーモンを実行します。このデーモンは、CephFS に保存されているファイルに関連するメタデータを管理します。CephFS は、ネイティブまたは NFS プロトコルで使用できます。
Red Hat は、Shared File Systems サービス (manila) のネイティブ CephFS および CephFS NFS バックエンドを使用した Ceph MDS のデプロイをサポートしています。
手順
Ceph MDS を有効にするには、オーバークラウドのデプロイ時、以下の環境ファイルを使用します。
/usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml
デフォルトでは、Ceph MDS はコントローラーノードにデプロイされます。Ceph MDS を独自の専用ノードにデプロイできます。
関連情報
5.4. Ceph Object Gateway オブジェクトストレージ
Ceph Object Gateway (RGW) は、Red Hat Ceph Storage クラスター内のオブジェクトストレージ機能にアクセスするためのインターフェイスを提供します。
director を使用して、Ceph をデプロイすると、director は RGW を自動的に有効にします。これは、Object Storage サービス (swift) を直接置き換えるものです。通常、Object Storage サービスを使用するサービスは、追加の設定なしで、代わりに RGW を使用できます。Object Storage サービスは、アップグレードされた Ceph クラスターのオブジェクトストレージオプションとして引き続き利用できます。
個別の RGW 環境ファイルを有効にする必要はありません。その他のオブジェクトストレージオプションの環境ファイルの詳細については、「Red Hat OpenStack Platform オブジェクトストレージのデプロイメントオプション」 を参照してください。
デフォルトでは、Ceph Storage は Object Storage Daemon (OSD) ごとに 250 の配置グループを許可します。RGW を有効にすると、Ceph Storage は RGW に必要な次の 6 つの追加プールを作成します。
-
.rgw.root
-
<zone_name>.rgw.control
-
<zone_name>.rgw.meta
-
<zone_name>.rgw.log
-
<zone_name>.rgw.buckets.index
-
<zone_name>.rgw.buckets.data
デプロイメントでは、<zone_name>
は、プールが属するゾーンの名前に置き換えられます。
関連情報
- RGW の詳細は、Red Hat Ceph Storage Object Gateway ガイド を参照してください。
- Swift の代わりに RGW を使用する方法は、BLock Storage ボリュームのバックアップ ガイドを参照してください。
5.5. Red Hat OpenStack Platform オブジェクトストレージのデプロイメントオプション
オーバークラウドのオブジェクトストレージをデプロイするには、3 つのオプションがあります。
Ceph オブジェクトゲートウェイ (RGW)
「Ceph Object Gateway オブジェクトストレージ」 の説明に従って、RGW をデプロイするには、オーバークラウドのデプロイ時、以下の環境ファイルを含めます。
-e environments/cephadm/cephadm.yaml
この環境ファイルは、Ceph ブロックストレージ (RBD) と RGW の両方を設定します。
Object Storage サービス (swift)
RGW ではなく、Object Storage サービス (swift) をデプロイするには、オーバークラウドのデプロイ時、以下の環境ファイルを含めます。
-e environments/cephadm/cephadm-rbd-only.yaml
cephadm-rbd-only.yaml
ファイルは Ceph RBD を設定しますが、RGW は設定しません。注記Red Hat Ceph Storage クラスターをアップグレードする前に、Object Storage サービス (swift) を使用した場合は、アップグレード中に、
environments/ceph-ansible/ceph-ansible.yaml
ファイルをenvironment/cephadm/cephadm-rbd-only.yaml
に置き換えると、RGW ではなく、Object Storage サービス (swift) を引き続き使用できます。詳細は、Red Hat OpenStack Platform のマイナー更新の実行 を参照してください。Red Hat OpenStack Platform は、Object Storage サービス (swift) から Ceph Object Gateway (RGW) への移行をサポートしていません。
オブジェクトストレージなし
RGW または Object Storage サービス (swift) ではなく、RBD で Ceph をデプロイするには、オーバークラウドのデプロイ時、以下の環境ファイルを含めます。
-e environments/cephadm/cephadm-rbd-only.yaml -e environments/disable-swift.yaml
cephadm-rbd-only.yaml
ファイルは RBD を設定しますが、RGW は設定しません。disable-swift.yaml
ファイルは、Object Storage サービス (swift) がデプロイされないようにします。
5.6. Ceph を使用するための Block Storage Backup Service の設定
Block Storage Backup サービス (cinder-backup) はデフォルトで無効になっています。Ceph で使用するには、有効にする必要があります。
手順
Block Storage Backup サービス (cinder-backup) を有効にするには、オーバークラウドのデプロイ時、以下の環境ファイルを使用します。
`/usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml`.
5.7. Ceph ノード向けの複数のボンディングされたインターフェイスの設定
ボンディングされたインターフェイスを使用して、複数の NIC を組み合わせ、ネットワーク接続に冗長性を追加します。Ceph ノードに十分な NIC がある場合には、各ノードに複数のボンディングされたインターフェイスを作成して冗長化機能を拡張することができます。
ノードが必要とするネットワーク接続ごとに結合インターフェイスを使用します。これにより、冗長性と各ネットワーク専用の接続の両方が提供されます。
情報と手順については director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドネットワークのプロビジョニング を参照してください。
第8章 オーバークラウドデプロイメントの開始
サービスの初期設定とカスタマイズが完了したら、オーバークラウドをデプロイします。
8.1. オーバークラウドデプロイメントの開始
オーバークラウドをデプロイして、Red Hat OpenStack Platform (RHOSP) 環境の設定を実装します。
前提条件
-
アンダークラウドのインストール時に、
undercloud.conf
ファイルにgenerate_service_certificate=false
を設定します。設定しない場合は、オーバークラウドのデプロイ時にトラストアンカーを挿入する必要があります。
オーバークラウドのデプロイメント中に Ceph Dashboard を追加する場合は、10章Red Hat Ceph Storage Dashboard のオーバークラウドデプロイメントへの追加 を参照してください。
手順
openstack overcloud deploy
コマンドを使用して、オーバークラウドをデプロイします。すべてのコマンド引数の完全なリストについては、コマンドラインインターフェイスリファレンス の openstack overcloud deploy
を参照してください。
コマンドの使用例を次に示します。
$ openstack overcloud deploy --templates -r /home/stack/templates/roles_data_custom.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml \ -e /home/stack/templates/storage-config.yaml \ -e /home/stack/templates/deployed-ceph.yaml \ -e /home/stack/templates/networks-deployed.yaml \ -e /home/stack/templates/deployed-metal.yaml \ -e /home/stack/templates/deployed-vips.yaml \ --ntp-server pool.ntp.org
上記のコマンド例は、以下のオプションを使用します。
--templates
-
デフォルトの heat テンプレートコレクション
/usr/share/openstack-tripleo-heat-templates/
からオーバークラウドを作成します。
-
デフォルトの heat テンプレートコレクション
-r /home/stack/templates/roles_data_custom.yaml
- カスタマイズされたロール定義ファイルを指定します。
-e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml
- 以前にデプロイされた Ceph Storage クラスターをファイナライズするように、director を設定します。この環境ファイルは、デフォルトで RGW をデプロイします。また、プール、キー、およびデーモンも作成します。RGW またはオブジェクトストレージをデプロイしない場合は、「Red Hat OpenStack Platform オブジェクトストレージのデプロイメントオプション」 で説明されているオプションを参照してください。
-e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml
- 「Ceph Metadata Server の有効化」 で説明されているように、Ceph メタデータサーバーを有効にします。
-e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml
-
「Ceph を使用するための Block Storage Backup Service の設定」 で説明されているように、Block Storage Backup サービス (
cinder-backup
) を有効にします。
-
「Ceph を使用するための Block Storage Backup Service の設定」 で説明されているように、Block Storage Backup サービス (
-e /home/stack/templates/storage-config.yaml
- 「カスタム環境ファイルの設定」 で説明されているように、カスタム Ceph Storage 設定を含む環境ファイルを追加します。
-e /home/stack/templates/deployed-ceph.yaml
-
以前に実行した
openstack overcloud ceph deploy
コマンドによる出力として、Ceph クラスター設定を含む環境ファイルを追加します。
-
以前に実行した
-e /home/stack/templates/networks-deployed.yaml
-
openstack overcloud network provision
による出力として、Ceph クラスターのネットワーク設定を含む環境ファイルを追加します。
-
-e /home/stack/templates/deployed-metal.yaml
-
openstack overcloud node provision
による出力として、Ceph クラスターノード設定を含む環境ファイルを追加します。
-
-e /home/stack/templates/deployed-vips.yaml
-
openstack overcloud network vip provision
による出力として、Ceph クラスターのネットワーク VIP 設定を含む環境ファイルを追加します。
-
--ntp-server pool.ntp.org
- NTP サーバーを設定します。
第9章 director を使用した多様なワークロードのパフォーマンス層の定義
Red Hat OpenStack Platform (RHOSP) director は、Red Hat Ceph Storage パフォーマンス層をデプロイします。Ceph Storage CRUSH ルールを CephPools
パラメーターと組み合わせて、デバイスクラスの機能を使用します。これにより、さまざまなパフォーマンス要件を持つワークロードに対応するために、さまざまな層が構築されます。
たとえば、通常のワークロード用に HDD クラスと、高パフォーマンスのロードのために SSD 上でのみデータを分散する SSD クラスを定義できます。このシナリオでは、新規の Block Storage ボリュームを作成する場合には、HDD または SSD のいずれかのパフォーマンス層を選択することができます。
CRUSH ルールの作成の詳細については、CRUSH 階層の設定 を参照してください。
既存の環境でパフォーマンス層を定義すると、Ceph Storage クラスターでデータが移動する可能性があります。director は、スタックの更新中、cephadm
を使用します。cephadm
アプリケーションには、プールが存在し、データが含まれているかどうかを確認するロジックがありません。プールに関連付けられているデフォルトの CRUSH ルールを変更すると、データが移動します。プールに大量のデータが含まれている場合、そのデータは移動されます。
ノードの追加または削除に関する支援または推奨事項が必要な場合は、Red Hat サポートにお問い合わせください。
Ceph Storage は、ディスクタイプを自動的に検出し、対応するデバイスクラス HDD、SSD、または NVMe に割り当てます。Linux カーネルによって公開されるハードウェアプロパティーに基づいています。
前提条件
- 新しいデプロイメントの場合は、Red Hat Ceph Storage (RHCS) バージョン 5.2 以降を使用してください。
9.1. パフォーマンス層の設定
異なる Red Hat Ceph Storage パフォーマンス層をデプロイするには、CRUSH マップの詳細が含まれる新規の環境ファイルを作成し、これをデプロイメントコマンドに追加します。Director は、この機能の特定のパラメーターを公開しませんが、想定される tripleo-ansible
変数を生成できます。
パフォーマンス層の設定は、CRUSH 階層と組み合わせることができます。CRUSH ルールの作成は、Configuring CRUSH hierarchies を参照してください。
手順の例では、各 Ceph Storage ノードには OSD が 3 つ含まれます。sdb
および sdc
は動作中のディスクで、sdc
は SSD です。Ceph は正しいディスク種別を自動的に検出します。次に、HDD および SSD の 2 つの CRUSH ルールを設定し、2 つのデバイスクラスにそれぞれマッピングします。
HDD ルールはデフォルトで、別のルールでプールを設定しない限り、すべてのプールに適用されます。
最後に、fastpool
と呼ばれる追加のプールを作成し、SSD ルールにマッピングします。このプールは、最終的に Block Storage (cinder) バックエンドを通じて公開されます。この Block Storage バックエンドを使用するすべてのワークロードは、パフォーマンスを高速にする場合にのみ SSD によってサポートされます。これは、データまたはボリュームから起動 (boot from volume) のいずれかに活用できます。
- WARNING
-
既存の環境でパフォーマンス層を定義すると、Ceph クラスター内で大量のデータが移動する場合があります。スタックの更新時に director がトリガーする
cephadm
には、プールが Ceph クラスターにすでに定義されているかどうかや、データが含まれるかどうかを確認するロジックはありません。つまり、プールに関連付けられたデフォルトの CRUSH ルールを変更すると、データの移動が行われるため、既存の環境でパフォーマンス層を定義することは危険となる可能性があります。ノードの追加または削除に関する支援または推奨事項が必要な場合は、Red Hat サポートにお問い合わせください。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 -
Ceph config パラメーターおよびデバイスクラス変数を含む環境ファイル (
/home/stack/templates/ceph-config.yaml
等) を作成します。あるいは、既存の環境ファイルに以下の設定を追加することができます。 CephCrushRules
パラメーターを追加します。CephCrushRules
パラメーターには、定義した各クラスまたは Ceph が自動検出する各クラスにルールが含まれている必要があります。新しいプールを作成する際にルールが指定されていない場合は、Ceph が使用するルールがデフォルトとして選択されます。CephCrushRules: - name: HDD root: default type: host class: hdd default: true - name: SSD root: default type: host class: ssd default: false
CephPools
パラメーターを追加します。-
rule_name
パラメーターを使用して、デフォルトのルールを使用しない各プールの層を指定します。以下の例では、fastpool
プールは、fast tier として設定された SSD デバイスクラスを使用して Block Storage ボリュームを管理します。 CinderRbdExtraPools
パラメーターを使用して、fastpool
を Block Storage バックエンドとして設定します。CephPools: - name: fastpool rule_name: SSD application: rbd CinderRbdExtraPools: fastpool
-
以下の例を使用して、環境ファイルに正しい値が含まれることを確認します。
parameter_defaults: CephCrushRules: - name: replicated_hdd default: true class: hdd root: default type: host CinderRbdExtraPools: fastpool CephPools: - name: fastpool rule_name: SSD application: rbd
openstack overcloud deploy
コマンドで新規の環境ファイルを指定します。$ openstack overcloud deploy \ --templates \ … -e <other_overcloud_environment_files> \ -e /home/stack/templates/ceph-config.yaml \ …
<other_overcloud_environment_files>
をデプロイメントに追加する他の環境ファイルのリストに置き換えます。
既存の Ceph クラスターに環境ファイルを適用すると、既存の Ceph プールは新しいルールで更新されません。このため、デプロイメントの完了後に以下のコマンドを入力して、指定したプールにルールを設定する必要があります。
$ ceph osd pool set <pool> crush_rule <rule>
- <pool> を新しいルールを適用するプールの名前に置き換えます。
-
<rule> を
crush_rules
パラメーターで指定したルール名の 1 つに置き換えます。
このコマンドを使用してルールを変更するたびに、既存のエントリーを更新するか、既存のテンプレートの CephPools
パラメーターに新しいエントリーを追加します。
CephPools: - name: <pool> rule_name: <rule> application: rbd
9.2. CRUSH ルールとプールの確認
CRUSH ルールとプールの設定を確認します。
- WARNING
-
既存の環境でパフォーマンス層を定義すると、Ceph クラスター内で大量のデータが移動する場合があります。スタックの更新時に director がトリガーする
tripleo-ansible
には、プールが Ceph クラスターにすでに定義されているかどうかや、データが含まれるかどうかを確認するロジックはありません。つまり、プールに関連付けられたデフォルトの CRUSH ルールを変更すると、データの移動が行われるため、既存の環境でパフォーマンス層を定義することは危険となる可能性があります。ノードの追加または削除に関する支援または推奨事項が必要な場合は、Red Hat サポートにお問い合わせください。
手順
-
tripleo-admin
ユーザーとしてオーバークラウドのコントローラーノードにログインします。 OSD 層が正常に設定されていることを確認するには、以下のコマンドを入力します。
$ sudo cephadm shell ceph osd tree
-
作成されるツリービューで、各 OSD に設定したデバイスクラスが
CLASS
コラムに正しく表示されることを確認します。 また、以下のコマンドで、OSD がデバイスクラスに正しく割り当てられていることを確認します。
$ sudo cephadm shell ceph osd crush tree --show-shadow
作成された階層を以下のコマンドによる結果と比較し、ルールごとに同じ値が適用されることを確認します。
$ sudo cephadm shell ceph osd crush rule dump <rule_name>
- <rule_name> を、チェックするルールの名前に置き換えます。
作成したルール名と ID が、デプロイメント中に使用した
crush_rules
パラメーターに準じて正しいことを確認します。$ sudo cephadm shell ceph osd crush rule dump | grep -E "rule_(id|name)"
Ceph プールが、ステップ 3 で取得した正しい CRUSH ルール ID に関連付けられていることを確認します。
$ sudo cephadm shell -- ceph osd dump | grep pool
- 各プールについて、ルール ID が想定するルール名と一致することを確認してください。
第10章 Red Hat Ceph Storage Dashboard のオーバークラウドデプロイメントへの追加
Red Hat Ceph Storage Dashboard はデフォルトで無効になっていますが、Red Hat OpenStack Platform (RHOSP) director を使用してオーバークラウドで有効にすることができます。Ceph Dashboard は組み込みの Web ベースの Ceph 管理および監視アプリケーションであり、Ceph クラスター内のさまざまな側面およびオブジェクトを管理します。Red Hat Ceph Storage Dashboard は、以下のコンポーネントで構成されています。
- Ceph Dashboard Manager モジュール: ユーザーインターフェイスを提供し、プラットフォームフロントエンド Grafana が組み込まれています。
- Prometheus: モニタリングプラグイン
- Alertmanager: アラートを Dashboard に送信します。
- Node Exporters: Ceph クラスターデータを Dashboard にエクスポートします。
この機能は、Ceph Storage 4.1 以降でサポートされます。システムにインストールされている Ceph Storage のバージョンを確認する方法についての詳細は、Red Hat Ceph Storage releases and corresponding Ceph package versions を参照してください。
Red Hat Ceph Storage Dashboard は、常に他の Ceph Manager コンポーネントと同じノード上に配置されます。
以下の図は、Red Hat OpenStack Platform 上の Ceph Dashboard のアーキテクチャーを示しています。
Dashboard およびその機能と制限についての詳細は、Red Hat Ceph Storage Dashboard Guide の Dashboard features を参照してください。
10.1. Ceph Dashboard における TLS everywhere
Dashboard フロントエンドは、TLS everywhere フレームワークと完全に統合されています。必要な環境ファイルがあり、そのファイルが overcloud deploy コマンドに含まれている場合は、TLS everywhere を有効にすることができます。これにより、Grafana と Ceph Dashboard の両方の証明書要求がトリガーされ、生成された証明書とキーファイルがオーバークラウドのデプロイメント時に cephadm
に渡されます。Dashboard およびその他の RHOSP サービス向けに TLS を有効化する手順と詳細は、Advanced Overcloud Customization ガイドの以下の章を参照してください。
Ceph Dashboard に到達するポートは、TLS-everywhere コンテキストでも同じになります。
10.2. Ceph Dashboard に必要なコンテナーの追加
Ceph Dashboard テンプレートをオーバークラウドに追加する前に、containers-prepare-parameter.yaml
ファイルを使用して必要なコンテナーを追加する必要があります。コンテナーイメージを準備するために containers-prepare-parameter.yaml
ファイルを生成するには、以下の手順を実行します。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 デフォルトのコンテナーイメージ準備ファイルを生成します。
$ sudo openstack tripleo container image prepare default \ --local-push-destination \ --output-env-file containers-prepare-parameter.yaml
containers-prepare-parameter.yaml
ファイルを編集し、要件に合わせて変更を加えます。以下のcontainers-prepare-parameter.yaml
ファイルのサンプルには、Grafana、Prometheus、Alertmanager、および Node Exporter などの Dashboard サービスに関連するイメージの場所およびタグが含まれます。特定のシナリオに応じて値を編集します。parameter_defaults: ContainerImagePrepare: - push_destination: true set: ceph_alertmanager_image: ose-prometheus-alertmanager ceph_alertmanager_namespace: registry.redhat.io/openshift4 ceph_alertmanager_tag: v4.12 ceph_grafana_image: rhceph-6-dashboard-rhel9 ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: 6 ceph_image: rhceph-6-rhel9 ceph_namespace: registry.redhat.io/rhceph ceph_node_exporter_image: ose-prometheus-node-exporter ceph_node_exporter_namespace: registry.redhat.io/openshift4 ceph_node_exporter_tag: v4.12 ceph_prometheus_image: ose-prometheus ceph_prometheus_namespace: registry.redhat.io/openshift4 ceph_prometheus_tag: v4.12 ceph_tag: latest
containers-prepare-parameter.yaml
ファイルを使用したレジストリーとイメージの設定の詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ ガイドの コンテナーイメージ準備パラメーター を参照してください。
10.3. Ceph Dashboard のデプロイ
Ceph ダッシュボードをデプロイするには、ceph-dashboard
環境ファイルを含めます。
この手順を完了すると、結果として得られるデプロイメントは、grafana
、prometheus
、alertmanager
、および node-exporter
コンテナーを含む外部スタックで構成されます。Ceph Dashboard Manager モジュールは、このスタックのバックエンドで、grafana
レイアウトを組み込むことで、クラスター固有のメトリックをエンドユーザーに提供します。
コンポーザブルネットワークを使用して Ceph Dashboard をデプロイする場合は、「コンポーザブルネットワークを使用した Ceph Dashboard のデプロイ」 を参照してください。
Ceph Dashboard の管理ユーザーロールは、デフォルトで読み取り専用モードに設定されています。Ceph Dashboard のデフォルトの管理モードを変更するには、「デフォルト権限の変更」 を参照してください。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 オプション: Ceph ダッシュボードネットワークは、デフォルトでプロビジョニングネットワークに設定されます。Ceph ダッシュボードをデプロイし、別のネットワーク経由でアクセスする場合は、環境ファイル (例:
ceph_dashboard_network_override.yaml
) を作成します。CephDashboardNetwork
を既存のオーバークラウドでルーティングされたネットワークの 1 つ (例:external
) に設定します。parameter_defaults: ServiceNetMap: CephDashboardNetwork: external
重要初期デプロイメント後は、別のネットワークから Ceph Dashboard にアクセスするための
CephDashboardNetwork
値の変更はサポートされません。以下の環境ファイルを
openstack overcloud deploy
コマンドに含めます。デプロイメントの一部であるすべての環境ファイルと、デフォルトのネットワークを変更する場合はceph_dashboard_network_override.yaml
ファイルを含めます。$ openstack overcloud deploy \ --templates \ -e <overcloud_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-dashboard.yaml \ -e ceph_dashboard_network_override.yaml
<overcloud_environment_files>
をデプロイメントに追加する環境ファイルのリストに置き換えます。
10.4. コンポーザブルネットワークを使用した Ceph Dashboard のデプロイ
デフォルトのプロビジョニングネットワークではなく、コンポーザブルネットワークに Ceph Dashboard をデプロイすることができます。これにより、プロビジョニングネットワークに Ceph Dashboard サービスを公開する必要がなくなります。Dashboard をコンポーザブルネットワークにデプロイする際に、別個の承認プロファイルを実装することもできます。
最初にオーバークラウドをデプロイする場合にのみ Dashboard を新規ネットワークに適用することができるので、デプロイ前に使用するネットワークを選択する必要があります。デプロイ前にコンポーザブルネットワークを選択するには、以下の手順を使用します。
この手順を完了すると、結果として得られるデプロイメントは、grafana
、prometheus
、alertmanager
、および node-exporter
コンテナーを含む外部スタックで構成されます。Ceph Dashboard Manager モジュールは、このスタックのバックエンドで、grafana
レイアウトを組み込むことで、クラスター固有のメトリックをエンドユーザーに提供します。
手順
- アンダークラウドに stack ユーザーとしてログインします。
Controller 固有のロールを生成して、Dashboard コンポーザブルネットワークを追加します。
$ openstack overcloud roles generate -o /home/stack/roles_data_dashboard.yaml ControllerStorageDashboard Compute BlockStorage ObjectStorage CephStorage
-
コマンドの出力として定義された YAML ファイル内に新しい
ControllerStorageDashboard
ロールが生成されます。overcloud deploy
コマンドを使用する場合には、この YAML ファイルをテンプレートリストに含める必要があります。ControllerStorageDashboard
ロールには、CephNFS
もnetwork_data_dashboard.yaml
も含まれていません。 -
director は、コンポーザブルネットワークを定義するネットワーク環境ファイルを提供します。このファイルのデフォルトの場所は、
/usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml
です。overcloud deploy コマンドを使用する場合には、このファイルをオーバークラウドのテンプレートリストに含める必要があります。
-
コマンドの出力として定義された YAML ファイル内に新しい
openstack overcloud deploy
コマンドに、デプロイメントに含まれるすべての環境ファイルと共に以下の環境ファイルを追加します。$ openstack overcloud deploy \ --templates \ -r /home/stack/roles_data.yaml \ -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \ -e <overcloud_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-dashboard.yaml
<overcloud_environment_files>
をデプロイメントに追加する環境ファイルのリストに置き換えます。
10.5. デフォルト権限の変更
Ceph クラスターの安全な監視用に、Ceph Dashboard の管理ユーザーロールはデフォルトで読み取り専用モードに設定されます。管理ユーザーが Dashboard を使用して Ceph クラスターの要素を変更できるよう管理者権限を昇格させるには、CephDashboardAdminRO
パラメーターを使用してデフォルトの管理者権限を変更します。
完全な権限を持つユーザーは、director が設定する Ceph クラスターの要素を変更する可能性があります。これは、スタックの更新の実行時に、director が設定したオプションと競合する可能性があります。この問題を回避するには、Ceph Dashboard で director の設定オプション (Ceph OSP プール属性など) を変更しないでください。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 以下の
ceph_dashboard_admin.yaml
環境ファイルを作成します。parameter_defaults: CephDashboardAdminRO: false
overcloud deploy コマンドを実行して、既存のスタックを更新し、既存のデプロイメントに含まれるその他すべての環境ファイルと共に作成した環境ファイルを追加します。
$ openstack overcloud deploy \ --templates \ -e <existing_overcloud_environment_files> \ -e ceph_dashboard_admin.yml
<existing_overcloud_environment_files>
を既存のデプロイメントに含まれる環境ファイルのリストに置き換えます。
10.6. Ceph Dashboard へのアクセス
Ceph Dashboard が正常に実行されていることを確認するには、以下の検証手順を実施してアクセスし、Ceph クラスターから表示されるデータが正しいことを確認します。ダッシュボードは完全にアクセス可能であり、表示される数値とグラフは、ceph -s
コマンドによって表示されるものと同じクラスターステータス情報を反映する必要があります。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 Dashboard の管理ログイン認証情報を取得します。
[stack@undercloud ~]$ grep tripleo_cephadm_dashboard_admin_password <config-download>/<stack>/cephadm/cephadm-extra-vars-heat.yml
Ceph Dashboard にアクセスするための仮想 IP アドレスを取得します。
[stack@undercloud-0 ~]$ grep tripleo_cephadm_dashboard_frontend_vip <config-download>/<stack>/cephadm/cephadm-extra-vars-ansible.yml
Web ブラウザーを使用してフロントエンドの仮想 IP をポイントし、Dashboard にアクセスします。director はプロビジョニングネットワーク上で Dashboard を設定して公開するので、取得した仮想 IP を使用して、TCP ポート 8444 の Dashboard に直接アクセスできます。以下の条件を満たしていることを確認します。
- Web クライアントホストは、プロビジョニングネットワークに接続されたレイヤー 2 です。
プロビジョニングネットワークは適切にルーティングまたはプロキシーされ、Web クライアントホストからアクセスできます。これらの条件が満たされていない場合は、SSH トンネルを開いて、オーバークラウド上の Dashboard の仮想 IP に到達することができます。
client_host$ ssh -L 8444:<dashboard_vip>:8444 stack@<your undercloud>
<dashboard_vip> を取得したコントロールプレーンの仮想 IP の IP アドレスに置き換えます。
Dashboard にアクセスするには、Web ブラウザーで http://localhost:8444 にアクセスし、以下の詳細でログインします。
-
cephadm
が作成するデフォルトのユーザー: admin。 -
<config-download>/<stack>/cephadm/cephadm-extra-vars-heat.yml
のパスワード。
-
Red Hat Ceph Storage Dashboard に関する詳細は、Red Hat Ceph Storage Dashboard Guide を参照してください。
第11章 Red Hat Ceph Storage クラスターを管理するためのデプロイメント後の操作
コンテナー化された Red Hat Ceph Storage を使用して Red Hat OpenStack Platform (RHOSP) 環境をデプロイした後、Ceph Storage クラスターを管理するために使用できる操作がいくつかあります。
11.1. 設定オーバーライドの無効化
Ceph Storage クラスターが最初にデプロイされた後、オーバークラウドのデプロイ中、RGW などのサービスをセットアップできるように、クラスターが設定されます。オーバークラウドのデプロイが完了したら、クラスターをスケールアップする場合を除き、director を使用して、クラスター設定を変更しないでください。クラスター設定の変更は、Ceph コマンドを使用して、実行する必要があります。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 -
ファイル
deploy_ceph.yaml
または環境で使用するファイルを開いて、Ceph Storage クラスター設定を定義します。 -
ApplyCephConfigOverridesOnUpdate
パラメーターを見つけます。 -
ApplyCephConfigOverridesOnUpdate
パラメーター値をfalse
に変更します。 - ファイルを保存します。
関連情報
ApplyCephConfigOverridesOnUpdate
および CephConfigOverrides
パラメーターの詳細は、オーバークラウドのパラメーター を参照してください。
11.2. オーバークラウドへのアクセス
director は、アンダークラウドからオーバークラウドと対話するための設定を行い、認証をサポートするスクリプトを作成します。director は、このファイル overcloudrc
を stack
ユーザーのホームディレクトリーに保存します。
手順
次のコマンドを実行して、ファイルのソースを明らかにします。
$ source ~/overcloudrc
これにより、アンダークラウド CLI からオーバークラウドと対話するために必要な環境変数が読み込まれます。
アンダークラウドとの対話に戻るには、以下のコマンドを実行します。
$ source ~/stackrc
11.3. Red Hat Ceph Storage ノードのモニタリング
オーバークラウドを作成したら、Ceph クラスターのステータスをチェックして、正常に機能していることを確認します。
手順
tripleo-admin
ユーザーとしてコントローラーノードにログインします。$ nova list $ ssh tripleo-admin@192.168.0.25
Ceph クラスターの状態を確認します。
$ sudo cephadm shell -- ceph health
Ceph クラスターに問題がない場合は、上記のコマンドにより、
HEALTH_OK
というレポートが返されます。これは、Ceph クラスターが安全に使用できることを意味します。Ceph monitor サービスを実行するオーバークラウドノードにログインし、Ceph クラスター内の全 OSD のステータスを確認します。
$ sudo cephadm shell -- ceph osd tree
Ceph Monitor クォーラムのステータスを確認します。
$ sudo cephadm shell -- ceph quorum_status
これにより、クォーラムに参加するモニターとどれがリーダーであるかが表示されます。
すべての Ceph OSD が動作中であることを確認します。
$ sudo cephadm shell -- ceph osd stat
Ceph クラスターのモニタリングの詳細については、Red Hat Ceph Storage Administration Guide の Monitoring a Ceph Storage cluster を参照してください。
11.4. Block Storage (cinder) 種別の新しい Ceph プールへのマッピング
設定手順を完了したら、Block Storage (cinder) を使用して作成した fastpool
層にマッピングされた種別を作成して、RHOSP テナントにパフォーマンス層の機能を使用できるようにします。
手順
-
アンダークラウドノードに
stack
ユーザーとしてログインします。 source コマンドで
overcloudrc
ファイルを読み込みます。$ source overcloudrc
Block Storage ボリュームの既存種別を確認します。
$ cinder type-list
新規の Block Storage ボリューム fast_tier を作成します。
$ cinder type-create fast_tier
Block Storage 種別が作成されていることを確認します。
$ cinder type-list
fast_tier
Block Storage 種別が利用可能な場合は、作成した新しい層の Block Storage ボリュームバックエンドとしてfastpool
を設定します。$ cinder type-key fast_tier set volume_backend_name=tripleo_ceph_fastpool
新しい層を使用して、新しいボリュームを作成します。
$ cinder create 1 --volume-type fast_tier --name fastdisk
Red Hat Ceph Storage のドキュメントには、Ceph Storage クラスターの継続的なメンテナンスと操作に関する追加情報と手順が記載されています。Red Hat Ceph Storage の製品ドキュメント を参照してください。
第12章 ネイティブ CephFS デプロイ後の設定と検証
CephFS 共有を作成し、ユーザーにアクセス権限を付与し、CephFS 共有をマウントする前に、いくつかのデプロイメント後設定タスクを完了する必要があります。
- Networking サービス (neutron) ストレージネットワークを分散データセンターストレージネットワークにマッピングします。
- カスタムロールベースアクセス制御 (RBAC) でのみ、ストレージプロバイダーネットワークを信頼済みテナントで利用できるようにします。ストレージプロバイダーネットワークはグローバルに共有しないでください。
- プライベートファイル共有種別を作成します。
- 特定の信頼済みテナントにアクセス権限を付与します。
これらのステップを完了したら、テナントコンピュートインスタンスはネイティブ CephFS 共有を作成し、そのアクセスを許可し、マウントすることができます。
Shared File Systems サービス (manila) のバックエンドとしてネイティブ CephFS をデプロイすると、オーバークラウド環境に以下に示す新たな要素が追加されます。
- ストレージプロバイダーネットワーク
- コントローラーノード上の Ceph MDS サービス
ユーザーに利用を許可する前に、クラウド管理者はネイティブ CephFS 環境が安定して動作することを確認する必要があります。
ネイティブ CephFS で Shared File Systems サービスを使用する方法の詳細は、永続ストレージ ガイドの Shared File Systems サービスの設定 (manila) を参照してください。
12.1. ストレージプロバイダーネットワークの作成
新しい分離ストレージネットワークを Networking (neutron) プロバイダーネットワークにマッピングする必要があります。ネイティブ CephFS 共有のエクスポート場所にアクセスするために、コンピュートノードの仮想マシンをネットワークにアタッチします。
Shared File Systems サービスのネットワークセキュリティーに関する情報は、Red Hat OpenStack Platform の強化 の Shared File System サービスの強化 を参照してください。
手順
openstack network create
コマンドにより、ストレージ neutron ネットワークの設定を定義します。
source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
$ source ~/<credentials_file>
-
<credentials_file>
を認証情報ファイルの名前 (overcloudrc
など) に置き換えます。
-
アンダークラウドノードで、ストレージネットワークを作成します。
(overcloud) [stack@undercloud-0 ~]$ openstack network create Storage --provider-network-type vlan --provider-physical-network datacentre --provider-segment 30
以下のオプションを設定してこのコマンドを入力することができます。
-
--provider-physical-network
オプション: tripleo-heat-templates の NeutronBridgeMappings で別途 br-isolated ブリッジのタグを設定していない限り、デフォルト値datacentre
を使用します。 -
--provider-segment
オプション: ネットワーク環境ファイルで Storage 分離ネットワークに設定した値を使用します。これがカスタマイズされない場合、デフォルトの環境ファイルは/usr/share/openstack-tripleo-heat-templates/network_data.yaml
になります。分離ネットワークの定義を変更していない限り、Storage ネットワークに関連付けられた VLAN の値は30
です。 -
--provider-network-type
オプション: 値vlan
を使用します。
-
12.2. ストレージプロバイダーネットワークの設定
neutron プロバイダーネットワーク上に対応する StorageSubnet
を作成します。アンダークラウドの storage_subnet
と同じサブネットを設定します。また、ストレージサブネットと対応するアンダークラウドのサブネットの割り当て範囲が重複しないようにしてください。
要件
- 割り当てプールの IP 範囲 (開始および終了アドレス)
- サブネットの IP 範囲
手順
アンダークラウドノードから、以下のコマンドを入力します。
[stack@undercloud ~]$ source ~/overcloudrc
下記のコマンド例を使用して、ネットワークをプロビジョニングします。値を実際の環境に応じて更新します。
(overcloud) [stack@undercloud-0 ~]$ openstack subnet create \ --allocation-pool start=172.17.3.10,end=172.17.3.149 \ --dhcp \ --network Storage \ --subnet-range 172.17.3.0/24 \ --gateway none StorageSubnet
-
--allocation-pool
オプションの場合は、start=172.17.3.10,end=172.17.3.149
IP の値を、実際のネットワークの IP の値に置き換えます。 -
--subnet-range
オプション:172.17.3.0/24
のサブネット範囲を実際のネットワークのサブネット範囲に置き換えます。
-
12.3. ストレージプロバイダーネットワークにおけるロールベースアクセス制御の設定
ストレージネットワークを使用することができる信頼済みテナントまたはプロジェクトを特定した後に、Networking サービス (neutron) を使用してそれらのロールベースアクセス制御 (RBAC) ルールを設定します。
要件
ストレージネットワークへのアクセスを必要とするプロジェクトの名前
手順
アンダークラウドノードから、以下のコマンドを入力します。
[stack@undercloud ~]$ source ~/overcloudrc
アクセスが必要なプロジェクトを特定します。
(overcloud) [stack@undercloud-0 ~]$ openstack project list +----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 06f1068f79d2400b88d1c2c33eacea87 | demo | | 5038dde12dfb44fdaa0b3ee4bfe487ce | service | | 820e2d9c956644c2b1530b514127fd0d | admin | +----------------------------------+---------+
必要なプロジェクトでネットワーク RBAC ルールを作成します。
(overcloud) [stack@undercloud-0 ~]$ openstack network rbac create \ --action access_as_shared Storage \ --type network \ --target-project demo
ストレージネットワークへのアクセスを必要とするすべてのプロジェクトについて、このステップを繰り返します。
12.5. 分離ストレージネットワークが作成されていることの確認
Shared File Systems サービスのバックエンドとしてネイティブ CephFS をデプロイするのに使用する network_data.yaml
ファイルにより、ストレージ VLAN が作成されます。以下の手順を使用して、ストレージ VLAN が正常に作成されていることを確認します。
手順
- オーバークラウドのコントローラーノードのいずれかにログインします。
接続されたネットワークを確認し、
network_data.yaml
ファイルにより設定したとおりの VLAN が存在することを確認します。$ ip a 8: vlan30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 52:9c:82:7a:d4:75 brd ff:ff:ff:ff:ff:ff inet 172.17.3.144/24 brd 172.17.3.255 scope global vlan30 valid_lft forever preferred_lft forever inet6 fe80::509c:82ff:fe7a:d475/64 scope link valid_lft forever preferred_lft forever
12.6. Ceph MDS サービスの確認
Ceph MDS サービスのステータスを確認するには、systemctl status
コマンドを使用します。
手順
すべてのコントローラーノードで以下のコマンドを入力して、MDS コンテナーのステータスを確認します。
$ systemctl status ceph-mds<@CONTROLLER-HOST>
以下に例を示します。
$ systemctl status ceph-mds@controller-0.service ceph-mds@controller-0.service - Ceph MDS Loaded: loaded (/etc/systemd/system/ceph-mds@.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2018-09-18 20:11:53 UTC; 6 days ago Main PID: 65066 (conmon) Tasks: 16 (limit: 204320) Memory: 38.2M CGroup: /system.slice/system-ceph\x2dmds.slice/ceph-mds@controller-0.service └─60921 /usr/bin/podman run --rm --net=host --memory=32000m --cpus=4 -v /var/lib/ceph:/var/lib/ceph:z -v /etc/ceph:/etc/ceph:z -v /var/run/ceph:/var/run/ceph:z -v /etc/localtime:/etc/localtime:ro>
12.7. Ceph クラスターのステータスの確認
Ceph クラスターのステータスを確認し、クラスターがアクティブであることを確認します。
手順
- 任意のコントローラーノードにログインします。
Ceph monitor デーモンから、以下のコマンドを入力します。
$ sudo podman exec ceph-mon-controller-0 ceph -s cluster: id: 670dc288-cd36-4772-a4fc-47287f8e2ebf health: HEALTH_OK services: mon: 3 daemons, quorum controller-1,controller-2,controller-0 (age 14h) mgr: controller-1(active, since 8w), standbys: controller-0, controller-2 mds: cephfs:1 {0=controller-2=up:active} 2 up:standby osd: 15 osds: 15 up (since 8w), 15 in (since 8w) task status: scrub status: mds.controller-2: idle data: pools: 6 pools, 192 pgs objects: 309 objects, 1.6 GiB usage: 21 GiB used, 144 GiB / 165 GiB avail pgs: 192 active+clean
注記1 つのアクティブな MDS と 2 つのスタンバイ状態の MDS があります。
Ceph File System の詳細ステータスを表示するには、以下のコマンドを入力します。
$ sudo ceph fs ls name: cephfs metadata pool: manila_metadata, data pools: [manila_data]
注記以下の出力例では、
cephfs
は、ユーザーが Shared File Systems サービスを使用して作成する CephFS ファイル共有をホストするために director が作成する Ceph File System の名前です。
12.9. manila-api サービスがスケジューラーおよびファイル共有サービスを認識していることの確認
以下の手順を実施して、manila-api
サービスがスケジューラーおよびファイル共有サービスを認識していることを確認します。
手順
- アンダークラウドにログインします。
以下のコマンドを入力します。
$ source /home/stack/overcloudrc
以下のコマンドを入力して、
manila-scheduler
およびmanila-share
が有効であることを確認します。$ manila service-list | Id | Binary | Host | Zone | Status | State | Updated_at | | 2 | manila-scheduler | hostgroup | nova | enabled | up | 2018-08-08T04:15:03.000000 | | 5 | manila-share | hostgroup@cephfs | nova | enabled | up | 2018-08-08T04:15:03.000000 |
第13章 CephFS NFS デプロイ後の設定と検証
NFS 共有を作成し、ユーザーにアクセス権限を付与し、NFS 共有をマウントする前に、2 つのデプロイメント後設定タスクを完了する必要があります。
- Networking サービス (neutron) の StorageNFS ネットワークをデータセンターの Storage NFS 分離ネットワークにマッピングする。NFS トラフィックを別のネットワークに分離しない場合は、このオプションを省略できます。
- デフォルトのファイル共有種別を作成する。
これらのステップを完了したら、テナントコンピュートインスタンスは NFS 共有を作成し、そのアクセスを許可し、マウントすることができます。
CephFS-NFS を Shared File Systems (manila) のバックエンドとしてデプロイする場合、次の新しい要素をオーバークラウド環境に追加します。
- StorageNFS ネットワーク
- コントローラー上の Ceph MDS サービス
- コントローラー上の NFS-Ganesha サービス
ユーザーにサービスの利用を許可する前に、クラウド管理者は CephFS-NFS を使用する環境が安定して動作することを確認する必要があります。
13.1. ストレージプロバイダーネットワークの作成
新しい StorageNFS 分離ネットワークを Networking (neutron) プロバイダーネットワークにマッピングする必要があります。NFS-Ganesha ゲートウェイの提供するファイル共有のエクスポート場所にアクセスするために、コンピュートノードの仮想マシンをネットワークにアタッチします。
Shared File Systems サービスのネットワークセキュリティーに関する情報は、Red Hat OpenStack Platform の強化 の Shared File System サービスの強化 を参照してください。
手順
openstack network create
コマンドにより、StorageNFS neutron ネットワークの設定を定義します。
source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
$ source ~/<credentials_file>
-
<credentials_file>
を認証情報ファイルの名前 (overcloudrc
など) に置き換えます。
-
アンダークラウドノードで、StorageNFS ネットワークを作成します。
(overcloud) [stack@undercloud-0 ~]$ openstack network create StorageNFS --share --provider-network-type vlan --provider-physical-network datacentre --provider-segment 70
以下のオプションを設定してこのコマンドを入力することができます。
-
--provider-physical-network
オプション: tripleo-heat-templates の NeutronBridgeMappings で別途 br-isolated ブリッジのタグを設定していない限り、デフォルト値datacentre
を使用します。 -
--provider-segment
オプション: heat テンプレート (/usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml
) で StorageNFS 分離ネットワークに設定した VLAN の値を使用します。デプロイ時に分離ネットワークの定義を変更していない限り、この値は 70 です。 -
--provider-network-type
オプション: 値vlan
を使用します。
-
13.4. StorageNFS 分離ネットワークが作成されていることの確認
CephFS-NFS を Shared File Systems サービスのバックエンドとしてデプロイするのに使用する network_data_gansha.yaml
ファイルにより、StorageNFS VLAN が作成されます。StorageNFS 分離ネットワークが存在することを確認するには、以下の手順を実施します。
手順
- オーバークラウドのコントローラーのいずれかにログインします。
以下のコマンドを入力して接続されたネットワークを確認し、
network_data_ganesha.yaml
により設定したとおりの VLAN が存在することを確認します。$ ip a 15: vlan310: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 32:80:cf:0e:11:ca brd ff:ff:ff:ff:ff:ff inet 172.16.4.4/24 brd 172.16.4.255 scope global vlan310 valid_lft forever preferred_lft forever inet 172.16.4.7/32 brd 172.16.4.255 scope global vlan310 valid_lft forever preferred_lft forever inet6 fe80::3080:cfff:fe0e:11ca/64 scope link valid_lft forever preferred_lft forever
13.5. Ceph MDS サービスの確認
Ceph MDS サービスのステータスを確認するには、systemctl status
コマンドを使用します。
手順
すべてのコントローラーノードで以下のコマンドを入力して、MDS コンテナーのステータスを確認します。
$ systemctl status ceph-mds<@CONTROLLER-HOST>
以下に例を示します。
$ systemctl status ceph-mds@controller-0.service ceph-mds@controller-0.service - Ceph MDS Loaded: loaded (/etc/systemd/system/ceph-mds@.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2018-09-18 20:11:53 UTC; 6 days ago Main PID: 65066 (conmon) Tasks: 16 (limit: 204320) Memory: 38.2M CGroup: /system.slice/system-ceph\x2dmds.slice/ceph-mds@controller-0.service └─60921 /usr/bin/podman run --rm --net=host --memory=32000m --cpus=4 -v /var/lib/ceph:/var/lib/ceph:z -v /etc/ceph:/etc/ceph:z -v /var/run/ceph:/var/run/ceph:z -v /etc/localtime:/etc/localtime:ro>
13.6. Ceph クラスターのステータスの確認
Ceph クラスターのステータスを確認するには、以下の手順を実施します。
手順
- アクティブなコントローラーノードにログインします。
以下のコマンドを入力します。
$ sudo ceph -s cluster: id: 3369e280-7578-11e8-8ef3-801844eeec7c health: HEALTH_OK services: mon: 3 daemons, quorum overcloud-controller-1,overcloud-controller-2,overcloud-controller-0 mgr: overcloud-controller-1(active), standbys: overcloud-controller-2, overcloud-controller-0 mds: cephfs-1/1/1 up {0=overcloud-controller-0=up:active}, 2 up:standby osd: 6 osds: 6 up, 6 in
1 つのアクティブな MDS と 2 つのスタンバイ状態の MDS があります。
Ceph ファイルシステムのステータスをより詳細に確認するには、以下のコマンドを入力します。
<cephfs>
は、Ceph ファイルシステムの名前に置き換えてください。$ sudo ceph fs ls name: cephfs, metadata pool: manila_metadata, data pools: [manila_data]
13.8. manila-api サービスがスケジューラーおよびファイル共有サービスを認識していることの確認
以下の手順を実施して、manila-api
サービスがスケジューラーおよびファイル共有サービスを認識していることを確認します。
手順
- アンダークラウドにログインします。
以下のコマンドを入力します。
$ source /home/stack/overcloudrc
以下のコマンドを入力して、
manila-scheduler
およびmanila-share
が有効であることを確認します。$ manila service-list | Id | Binary | Host | Zone | Status | State | Updated_at | | 2 | manila-scheduler | hostgroup | nova | enabled | up | 2018-08-08T04:15:03.000000 | | 5 | manila-share | hostgroup@cephfs | nova | enabled | up | 2018-08-08T04:15:03.000000 |
第14章 環境のリブート
環境の再起動が必要になる場合があります。たとえば、物理サーバーを変更したり、停電から回復したりする必要がある場合です。このような状況では、Ceph Storage ノードの正常な起動を確認することが重要です。
ノードは、次の順序で起動する必要があります。
- すべての Ceph Monitor ノードを最初に起動します: これにより、高可用性 Ceph クラスター内の Ceph Monitor サービスを確実にアクティブにします。デフォルトでは、Ceph Monitor サービスは、コントローラーノードにインストールされます。Ceph Monitor がカスタムロールで Controller とは別の場合には、このカスタムの Ceph Monitor ロールを必ずアクティブにしてください。
- すべての Ceph Storage ノードを起動します: これにより、Ceph OSD クラスターはコントローラーノード上のアクティブな Ceph Monitor クラスターに接続できるようになります。
14.1. Ceph Storage (OSD) クラスターのリブート
Ceph Storage (OSD) ノードのクラスターを再起動するには、以下の手順を実施します。
前提条件
ceph-mon
サービスを実行している Ceph Monitor または Controller ノードで、Red Hat Ceph Storage クラスターのステータスが正常であり、pg ステータスがactive+clean
であることを確認する。$ sudo cephadm -- shell ceph status
Ceph クラスターが正常な場合、
HEALTH_OK
のステータスが返されます。Ceph クラスターのステータスが異常な場合、
HEALTH_WARN
またはHEALTH_ERR
のステータスが返されます。トラブルシューティングのガイダンスは、Red Hat Ceph Storage 5 トラブルシューティングガイド または Red Hat Ceph Storage 6 トラブルシューティングガイド を参照してください。
手順
ceph-mon
サービスを実行している Ceph Monitor または Controller ノードにログインし、Ceph Storage クラスターのリバランスを一時的に無効にします。$ sudo cephadm shell -- ceph osd set noout $ sudo cephadm shell -- ceph osd set norebalance
注記マルチスタックまたは分散コンピュートノード (DCN) アーキテクチャーを使用している場合は、
noout
フラグとnorebalance
フラグの設定時に Ceph クラスター名を指定する必要があります。例:sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring
。- 再起動する最初の Ceph Storage ノードを選択し、そのノードにログインします。
ノードをリブートします。
$ sudo reboot
- ノードがブートするまで待ちます。
ノードにログインし、Ceph クラスターのステータスを確認します。
$ sudo cephadm -- shell ceph status
pgmap
により、すべてのpgs
が正常な状態 (active+clean
) として報告されることを確認します。- ノードからログアウトして、次のノードを再起動し、ステータスを確認します。全 Ceph Storage ノードが再起動されるまで、このプロセスを繰り返します。
完了したら、
ceph-mon
サービスを実行している Ceph Monitor または Controller ノードにログインし、クラスターのリバランスを有効にします。$ sudo cephadm shell -- ceph osd unset noout $ sudo cephadm shell -- ceph osd unset norebalance
注記マルチスタックまたは分散コンピュートノード (DCN) アーキテクチャーを使用している場合は、
noout
フラグとnorebalance
フラグの設定解除時に Ceph クラスター名を指定する必要があります。例:sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring
。最終のステータスチェックを実行して、クラスターが
HEALTH_OK
を報告していることを確認します。$ sudo cephadm shell ceph status
14.2. Ceph Storage OSD の再起動による Ceph Monitor サービスへの接続の有効化
すべてのオーバークラウドノードが同時に起動する状況が発生した場合には、Ceph OSD サービスが Ceph Storage ノード上で正常に起動されない場合があります。そのような場合には、Ceph Storage OSD をリブートして、Ceph Monitor サービスに接続できるようにします。
手順
Ceph Storage ノードクラスターの
HEALTH_OK
ステータスを確認します。$ sudo ceph status
第15章 Ceph Storage クラスターのスケーリング
ストレージノードを追加または削除することで、Ceph Storage クラスターのサイズをスケーリングできます。
15.1. Ceph Storage クラスターのスケールアップ
容量とパフォーマンスの要件が変化するにつれ、需要の増加に対応するために Ceph Storage クラスターをスケールアップできます。この操作を実行する前に、更新するデプロイメント用に十分なノードがあることを確認してください。その後、Red Hat OpenStack Platform (RHOSP) 環境で新しいノードを登録してタグ付けできます。
この手順により、次のアクションが実行します。
-
ストレージネットワークとファイアウォールルールは、新しい
CephStorage
ノードで設定されます。 -
ceph-admin
ユーザーが新しいCephStorage
ノードに作成されます。 -
ceph-admin
ユーザーのパブリック SSH キーが新しいCephStorage
ノードに配布されるため、cephadm
は SSH を使用してノードを追加できます。 -
新しい
CephMon
またはCephMgr
ノードが追加されると、ceph-admin
プライベート SSH キーもそのノードに配布されます。 -
更新された Ceph 仕様が適用され、
cephadm
は新しいノードが Ceph クラスターに参加するようにスケジュールします。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
~/overcloud-baremetal-deploy.yaml
を変更して、デプロイメントに CephStorage ノードを追加します。次のサンプルファイルは、3 つの CephStorage ノードを持つ元のデプロイメントを表しています。
- name: CephStorage count: 3 instances: - hostname: ceph-0 name: ceph-0 - hostname: ceph-1 name: ceph-2 - hostname: ceph-2 name: ceph-2
次の例では、このファイルを変更して 3 つのノードを追加します。
- name: CephStorage count: 6 instances: - hostname: ceph-0 name: ceph-0 - hostname: ceph-1 name: ceph-2 - hostname: ceph-2 name: ceph-2 - hostname: ceph-3 name: ceph-3 - hostname: ceph-4 name: ceph-4 - hostname: ceph-5 name: ceph-5
更新された
~/overcloud-baremetal-deploy.yaml
ファイルでopenstack overcloud node provision
コマンドを使用します。$ openstack overcloud node provision \ --stack overcloud \ --network-config \ --output ~/overcloud-baremetal-deployed.yaml \ ~/overcloud-baremetal-deploy.yaml
注記このコマンドは、設定済みのノードをプロビジョニングし、
~/overcloud-baremetal-deployed.yaml
の更新済みコピーを出力します。新しいバージョンはCephStorage
ロールを更新します。DeployedServerPortMap
とHostnameMap
にも、新しいストレージノードが含まれています。Ceph 仕様ファイルを生成するには、
openstack overcloud ceph spec
コマンドを使用します。$ openstack overcloud ceph spec ~/overcloud-baremetal-deployed.yaml \ --osd-spec osd_spec.yaml \ --roles-data roles_data.yaml \ -o ceph_spec.yaml
注記openstack overcloud ceph spec
で使用されるファイルは、すでに使用可能になっているはずです。これらは次の場所に作成されます。-
overcloud-baremetal-deployed.yaml
ファイルは、この手順の前のステップで作成されました。 -
osd_spec.yaml
ファイルは、高度な OSD 仕様の設定 で作成されました。--osd-spec
パラメーターを使用して OSD 仕様を指定することはオプションです。 -
roles_data.yaml
ファイルは、Red Hat Ceph Storage のノードの指定 で作成されました。新しいノードは、このファイル内のロールの 1 つに割り当てられていると想定されます。
このコマンドの出力は
ceph_spec.yaml
ファイルになります。-
openstack overcloud ceph user enable
コマンドを使用して、クラスター内のすべてのノードにceph-admin
ユーザーを作成します。Ceph オーケストレーターによるノードへの SSH アクセスを有効にするには、すべてのノードにceph-admin
ユーザーが存在する必要があります。$ openstack overcloud ceph user enable ceph_spec.yaml
注記前の手順で作成した
ceph_spec.yaml
ファイルを使用します。- Red Hat Ceph Storage 運用ガイド の サービス仕様を使用した Ceph デーモンのデプロイ を使用して、仕様ファイルを Red Hat Ceph Storage クラスターに適用します。この仕様ファイルには、新しいノードが追加されたクラスターの動作状態が記述されます。
更新された
~/overcloud-baremetal-deployed.yaml
ファイルでopenstack overcloud deploy
コマンドを使用します。$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml \ -e deployed_ceph.yaml -e overcloud-baremetal-deploy.yaml
15.2. Red Hat Ceph Storage ノードのスケールダウンと置き換え
場合によっては、Red Hat Ceph Storage クラスターをスケールダウンしたり、Red Hat Ceph Storage ノードを置き換えたりしないといけない場合があります。いずれの場合も、データの損失を防ぐために、オーバークラウドから削除する Red Hat Ceph Storage ノードを無効にして再調整する必要があります。
Red Hat Ceph Storage クラスターに OSD を失うだけの容量がない場合は、この手順を続行しないでください。
-
tripleo-admin
ユーザーとしてオーバークラウドのコントローラーノードにログインします。 -
sudo cephadm shell
コマンドを使用して、Ceph シェルを開始します。 ceph osd tree
コマンドを使用して、サーバーによって削除される OSD を識別します。次の例では、
ceph-2
ホストの OSD を識別します。[ceph: root@oc0-controller-0 /]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.58557 root default -7 0.19519 host ceph-2 5 hdd 0.04880 osd.5 up 1.00000 1.00000 7 hdd 0.04880 osd.7 up 1.00000 1.00000 9 hdd 0.04880 osd.9 up 1.00000 1.00000 11 hdd 0.04880 osd.11 up 1.00000 1.00000
Ceph クラスター仕様を YAML ファイルにエクスポートします。
[ceph: root@oc0-controller-0 /]# ceph orch ls --export > spec.yml
-
エクスポートされた仕様ファイルを編集して、該当するホストが
service-type: osd hosts
リストから削除され、該当するホストのplacement: hosts
値が削除されるようにします。 - 編集したファイルを保存します。
変更した Ceph 仕様ファイルを適用します。
[ceph: root@oc0-controller-0 /]# ceph orch apply -i spec.yml
重要OSD を削除する前に Ceph 仕様ファイルをエクスポートして編集しない場合、Ceph Manager は OSD を再作成しようとします。
OSD を削除するには、コマンド
ceph orch osd rm --zap <osd_list>
を使用します。[ceph: root@oc0-controller-0 /]# ceph orch osd rm --zap 5 7 9 11 Scheduled OSD(s) for removal [ceph: root@oc0-controller-0 /]# ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE DRAIN_STARTED_AT 7 ceph-2 draining 27 False False 2021-04-23 21:35:51.215361 9 ceph-2 draining 8 False False 2021-04-23 21:35:49.111500 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
コマンド
ceph orch osd status
を使用して、OSD 削除のステータスを確認します。[ceph: root@oc0-controller-0 /]# ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE DRAIN_STARTED_AT 7 ceph-2 draining 34 False False 2021-04-23 21:35:51.215361 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
警告このコマンドが結果を返さなくなるまで、次のステップに進まないでください。
コマンド
ceph orch host drain <HOST>
を使用して、残りのデーモンをドレインします。[ceph: root@oc0-controller-0 /]# ceph orch host drain ceph-2
コマンド
ceph orch host rm <HOST>
を使用して、ホストを削除します。[ceph: root@oc0-controller-0 /]# ceph orch host rm ceph-2
注記このノードは Ceph クラスターでは使用されなくなりましたが、まだベアメタルノードとして director により管理されます。
Ceph シェルセッションを終了します。
注記Ceph クラスターのスケールダウンが一時的であり、削除されたノードが後で復元される場合、スケールアップアクションは
count
を増やし、以前はprovisioned: false
に設定されていたノードでprovisioned: true
を設定できます。ノードが再利用されない場合は、provisioned: false
を無期限で設定し、スケールアップアクションで新しいインスタンスエントリーを指定できます。次のファイルサンプルは、各インスタンスの例をいくつか示しています。
- name: Compute count: 2 instances: - hostname: overcloud-compute-0 name: node10 # Removed from deployment due to disk failure provisioned: false - hostname: overcloud-compute-1 name: node11 - hostname: overcloud-compute-2 name: node12
- director からノードを削除するには、director を 使用した Red Hat OpenStack Platform のインストールと管理 の ベアメタルノードのスケールダウン を参照してください。
第16章 障害のあるディスクの置き換え
Ceph Storage クラスター内のディスクに障害が発生した場合は、交換が可能です。
16.1. ディスクの交換
障害が発生したディスクの交換については、Red Hat Ceph Storage Installation Guide の Adding OSDs を参照してください。