5.2. Red Hat Ceph Storage クラスターのインストール
Playbook ceph-ansible
で Ansible アプリケーションを使用して、ベアメタルまたはコンテナーに Red Hat Ceph Storage をインストールします。実稼働環境で Ceph ストレージクラスターを使用するには、最小で 3 つの監視ノードと、複数の OSD デーモンが含まれる OSD ノードが必要です。通常、実稼働環境で実行されている一般的な Ceph ストレージクラスターは、10 台以上のノードで設定されます。
以下の手順では、特に指示しない限り、Ansible 管理ノードからコマンドを実行します。この手順は、指定しない限り、ベアメタルおよびコンテナーのデプロイメントの両方に適用されます。
Ceph はモニター 1 つで実行できますが、実稼働クラスターで高可用性を確保するためには、Red Hat は少なくとも 3 つのモニターノードを持つデプロイメントのみをサポートします。
Red Hat Ceph Storage 4 を Red Hat Enterprise Linux 7.7 のコンテナーにデプロイすると、Red Hat Ceph Storage 4 が Red Hat Enterprise Linux 8 コンテナーイメージにデプロイされます。
前提条件
- 有効なカスタマーサブスクリプションです。
- Ansible 管理ノードへのルートレベルのアクセス。
-
Ansible アプリケーションで使用する
ansible
ユーザーアカウント。 - Red Hat Ceph Storage Tools および Ansible リポジトリーの有効化
- ISO インストールの場合は、Ansible ノードに最新の ISO イメージをダウンロードします。Red Hat Ceph Storage インストールガイドの Red Hat Ceph Storage リポジトリーの有効化 の章の ISO のインストールセクションを参照してください。
手順
-
Ansible 管理ノードで
root
ユーザーアカウントとしてログインします。 すべてのデプロイメント (ベアメタル または コンテナー 内) については、
ceph-ansible
パッケージをインストールします。Red Hat Enterprise Linux 7
[root@admin ~]# yum install ceph-ansible
Red Hat Enterprise Linux 8
[root@admin ~]# dnf install ceph-ansible
/usr/share/ceph-ansible
ディレクトリーに移動します。[root@admin ~]# cd /usr/share/ceph-ansible
新しい
yml
ファイルを作成します。[root@admin ceph-ansible]# cp group_vars/all.yml.sample group_vars/all.yml [root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml
ベアメタル デプロイメント:
[root@admin ceph-ansible]# cp site.yml.sample site.yml
コンテナー デプロイメント:
[root@admin ceph-ansible]# cp site-container.yml.sample site-container.yml
新しいファイルを編集します。
group_vars/all.yml
ファイルを編集するために開きます。重要カスタムストレージクラスター名の使用はサポートされていません。
cluster
パラメーターにはceph
以外の値を設定しないでください。カスタムストレージクラスター名は、librados
、Ceph Object Gateway、RADOS ブロックデバイスミラーリングなどの Ceph クライアントでのみサポートされます。警告デフォルトでは、Ansible はインストール済みの再起動を試みますが、マスクされた
firewalld
サービスにより、Red Hat Ceph Storage デプロイメントが失敗する可能性があります。この問題を回避するには、all.yml
ファイルでconfigure_firewall
オプションをfalse
に設定します。firewalld
サービスを実行している場合は、all.yml
ファイルでconfigure_firewall
オプションを使用する必要はありません。注記ceph_rhcs_version
オプションを4
に設定すると、最新バージョンの Red Hat Ceph Storage 4 がプルされます。注記Red Hat は、
group_vars/all.yml
ファイルでdashboard_enabled
オプションをTrue
に設定し、これをFalse
に変更しないことを推奨します。Dashboard を無効にする場合には、Disabling the Ceph Dashboard を参照してください。注記Dashboard 関連のコンポーネントはコンテナー化されています。したがって、ベアメタル または コンテナー のデプロイメントでは、
ceph_docker_registry_username
およびceph_docker_registry_password
のパラメーターを追加して、ceph-ansible が、ダッシュボードに必要なコンテナーイメージを取得できるようにする必要があります。注記Red Hat レジストリーサービスアカウントがない場合は、レジストリーサービスアカウントの Web ページ を使用して作成します。トークンの作成および管理方法に関する詳細は、ナレッジベースアーティクル Red Hat Container Registry Authentication を参照してください。
注記ceph_docker_registry_username
およびceph_docker_registry_password
パラメーターにサービスアカウントを使用するだけでなく、カスタマーポータルの認証情報を使用することもできますが、ceph_docker_registry_password
パラメーターを暗号化してセキュリティーを確保してください。詳細は、ansible-vault で Ansible のパスワード変数を暗号化する を参照してください。CDN インストール用の
all.yml
ファイルの ベアメタル の例:fetch_directory: ~/ceph-ansible-keys ceph_origin: repository ceph_repository: rhcs ceph_repository_type: cdn ceph_rhcs_version: 4 monitor_interface: eth0 1 public_network: 192.168.0.0/24 ceph_docker_registry: registry.redhat.io ceph_docker_registry_auth: true ceph_docker_registry_username: SERVICE_ACCOUNT_USER_NAME ceph_docker_registry_password: TOKEN dashboard_admin_user: dashboard_admin_password: node_exporter_container_image: registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6 grafana_admin_user: grafana_admin_password: grafana_container_image: registry.redhat.io/rhceph/rhceph-4-dashboard-rhel8 prometheus_container_image: registry.redhat.io/openshift4/ose-prometheus:v4.6 alertmanager_container_image: registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.6
- 1
- これは、パブリックネットワーク上のインターフェイスです。
重要Red Hat Ceph Storage 4.1 以降、
/usr/share/ceph-ansible/group_vars/all.yml
のdashboard_admin_password
およびgrafana_admin_password
をコメント解除するか設定する必要があります。それぞれに安全なパスワードを設定します。dashboard_admin_user
およびgrafana_admin_user
のカスタムユーザー名も設定します。注記Red Hat Ceph Storage 4.2 で、インストールにローカルレジストリーを使用している場合は、Prometheus のイメージタグとして 4.6 を使用します。
ISO インストール
all.yml
ファイルの ベアメタル の例:fetch_directory: ~/ceph-ansible-keys ceph_origin: repository ceph_repository: rhcs ceph_repository_type: iso ceph_rhcs_iso_path: /home/rhceph-4-rhel-8-x86_64.iso ceph_rhcs_version: 4 monitor_interface: eth0 1 public_network: 192.168.0.0/24 ceph_docker_registry: registry.redhat.io ceph_docker_registry_auth: true ceph_docker_registry_username: SERVICE_ACCOUNT_USER_NAME ceph_docker_registry_password: TOKEN dashboard_admin_user: dashboard_admin_password: node_exporter_container_image: registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6 grafana_admin_user: grafana_admin_password: grafana_container_image: registry.redhat.io/rhceph/rhceph-4-dashboard-rhel8 prometheus_container_image: registry.redhat.io/openshift4/ose-prometheus:v4.6 alertmanager_container_image: registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.6
- 1
- これは、パブリックネットワーク上のインターフェイスです。
all.yml
ファイルの Containers の例:fetch_directory: ~/ceph-ansible-keys monitor_interface: eth0 1 public_network: 192.168.0.0/24 ceph_docker_image: rhceph/rhceph-4-rhel8 ceph_docker_image_tag: latest containerized_deployment: true ceph_docker_registry: registry.redhat.io ceph_docker_registry_auth: true ceph_docker_registry_username: SERVICE_ACCOUNT_USER_NAME ceph_docker_registry_password: TOKEN ceph_origin: repository ceph_repository: rhcs ceph_repository_type: cdn ceph_rhcs_version: 4 dashboard_admin_user: dashboard_admin_password: node_exporter_container_image: registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6 grafana_admin_user: grafana_admin_password: grafana_container_image: registry.redhat.io/rhceph/rhceph-4-dashboard-rhel8 prometheus_container_image: registry.redhat.io/openshift4/ose-prometheus:v4.6 alertmanager_container_image: registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.6
- 1
- これは、パブリックネットワーク上のインターフェイスです。
重要Red Hat Ecosystem Catalog で最新のコンテナーイメージタグを検索し、最新のパッチが適用された最新のコンテナーイメージをインストールします。
デプロイメント中に Red Hat Ceph Storage ノードがインターネットにアクセスできない場合の、
all.yml
ファイルの Containers の例:fetch_directory: ~/ceph-ansible-keys monitor_interface: eth0 1 public_network: 192.168.0.0/24 ceph_docker_image: rhceph/rhceph-4-rhel8 ceph_docker_image_tag: latest containerized_deployment: true ceph_docker_registry: LOCAL_NODE_FQDN:5000 ceph_docker_registry_auth: false ceph_origin: repository ceph_repository: rhcs ceph_repository_type: cdn ceph_rhcs_version: 4 dashboard_admin_user: dashboard_admin_password: node_exporter_container_image: LOCAL_NODE_FQDN:5000/openshift4/ose-prometheus-node-exporter:v4.6 grafana_admin_user: grafana_admin_password: grafana_container_image: LOCAL_NODE_FQDN:5000/rhceph/rhceph-4-dashboard-rhel8 prometheus_container_image: LOCAL_NODE_FQDN:5000/openshift4/ose-prometheus:4.6 alertmanager_container_image: LOCAL_NODE_FQDN:5000/openshift4/ose-prometheus-alertmanager:4.6
- 1
- これは、パブリックネットワーク上のインターフェイスです。
- 置き換え
- LOCAL_NODE_FQDN を、ローカルホストの FQDN に置き換えます。
Red Hat Ceph Storage 4.2 からは、
dashboard_protocol
はhttps
に設定されており、Ansible でダッシュボードと grafana の鍵と証明書が生成されます。ベアメタル または コンテナー デプロイメントでカスタム証明書の場合には、all.yml
ファイルで、dashboard_crt
、dashboard_key
、grafana_crt
、grafana_key
の Ansible インストーラーホストのパスを更新します。構文
dashboard_protocol: https dashboard_port: 8443 dashboard_crt: 'DASHBOARD_CERTIFICATE_PATH' dashboard_key: 'DASHBOARD_KEY_PATH' dashboard_tls_external: false dashboard_grafana_api_no_ssl_verify: "{{ True if dashboard_protocol == 'https' and not grafana_crt and not grafana_key else False }}" grafana_crt: 'GRAFANA_CERTIFICATE_PATH' grafana_key: 'GRAFANA_KEY_PATH'
http または https プロキシーで到達可能なコンテナーレジストリーを使用して Red Hat Ceph Storage をインストールするには、
group_vars/all.yml
ファイルのceph_docker_http_proxy
またはceph_docker_https_proxy
変数を設定します。例
ceph_docker_http_proxy: http://192.168.42.100:8080 ceph_docker_https_proxy: https://192.168.42.100:8080
プロキシー設定で一部のホストを除外する必要がある場合は、
group_vars/all.yml
ファイルでceph_docker_no_proxy
変数を使用できます。例
ceph_docker_no_proxy: "localhost,127.0.0.1"
Red Hat Ceph Storage のプロキシーインストール用に
all.yml
ファイルを編集する他に、/etc/environment
ファイルを編集します。例
HTTP_PROXY: http://192.168.42.100:8080 HTTPS_PROXY: https://192.168.42.100:8080 NO_PROXY: "localhost,127.0.0.1"
これにより、podman がトリガーされ、prometheus、grafana-server、alertmanager、node-exporter などのコンテナー化されたサービスを起動し、必要なイメージをダウンロードします。
全デプロイメントの場合には (ベアメタル または コンテナー)、
group_vars/osds.yml
ファイルを編集します。重要オペレーティングシステムがインストールされているデバイスに OSD をインストールしないでください。オペレーティングシステムと OSD 間で同じデバイスを共有すると、パフォーマンスの問題が発生することになります。
ceph-ansible は
ceph-volume
ツールを使用して、Ceph の使用に向けてストレージデバイスを準備します。ストレージデバイスを使用するようにosds.yml
を設定し、特定のワークロードのパフォーマンスを最適化することができます。重要以下の例では、BlueStore オブジェクトストアを使用します。これは、Ceph がデバイスにデータを保存するのに使用する形式です。以前のバージョンでは、Ceph は FileStore をオブジェクトストアとして使用していました。BlueStore はより多くの機能を提供し、パフォーマンスを向上させるため、この形式は Red Hat Ceph Storage 4.0 で非推奨になっています。FileStore は依然として使用できますが、Red Hat サポート例外が必要です。BlueStore の詳細は、Red Hat Ceph Storage アーキテクチャーガイド の Ceph BlueStore を参照してください。
自動検出
osd_auto_discovery: true
上記の例では、システム上の空のストレージデバイスをすべて使用して OSD を作成するため、明示的に指定する必要はありません。この
ceph-volume
ツールは、空のデバイスを確認するため、空ではないデバイスは使用されません。注記後で
purge-docker-cluster.yml
またはpurge-cluster.yml
を使用してクラスターを削除する場合は、osd_auto_discovery
をコメントアウトし、osds.yml
ファイルで OSD デバイスを宣言する必要があります。詳細については、Ansible によってデプロイされたストレージクラスターのパージ を参照してください。簡易設定
初回のシナリオ
devices: - /dev/sda - /dev/sdb
または、以下を実行します。
2 つ目のシナリオ
devices: - /dev/sda - /dev/sdb - /dev/nvme0n1 - /dev/sdc - /dev/sdd - /dev/nvme1n1
または、以下を実行します。
3 つ目のシナリオ
lvm_volumes: - data: /dev/sdb - data: /dev/sdc
または、以下を実行します。
4 つ目のシナリオ
lvm_volumes: - data: /dev/sdb - data:/dev/nvme0n1
devices
オプションのみを使用する場合には、ceph-volume lvm batch
モードは OSD 設定を自動的に最適化します。最初のシナリオでは、
devices
を従来のハードドライブまたは SSD の場合には、デバイスごとに OSD が 1 つ作成されます。2 つ目のシナリオでは、従来のハードドライブと SSD が混在している場合、データは従来のハードドライブ (
sda
、sdb
) に配置され、BlueStore データベースは SSD (nvme0n1
) にできる限り大きく作成されます。同様に、データは従来のハードドライブ (sdc
、sdd
) に配置され、デバイスの順序に関係なく、SSDnvme1n1
に BlueStore データベースが作成されます。注記デフォルトでは、
ceph-ansible
ではbluestore_block_db_size
およびbluestore_block_wal_size
のデフォルト値は上書きされません。group_vars/all.yml
ファイルのceph_conf_overrides
を使用してbluestore_block_db_size
を設定できます。bluestore_block_db_size
の値は 2 GB より大きくする必要があります。3 つ目のシナリオでは、データは従来のハードドライブ (
sdb
、sdc
) に置かれ、BlueStore データベースは同じデバイスに置かれます。4 番目のシナリオでは、従来のハードドライブ (
sdb
) および SSD (nvme1n1
) にデータが配置され、BlueStore データベースが同じデバイスに配置されます。これは、BlueStore データベースが SSD に配置されるdevices
ディレクティブの使用とは異なります。重要ceph-volume lvm batch mode
コマンドは、従来のハードドライブおよび BlueStore データベースに SSD にデータを配置することで、OSD 最適化設定を作成します。使用する論理ボリュームとボリュームグループを指定する場合は、以下の 高度な設定 シナリオに従って、論理ボリュームとボリュームグループを直接作成できます。高度な設定
初回のシナリオ
devices: - /dev/sda - /dev/sdb dedicated_devices: - /dev/sdx - /dev/sdy
または、以下を実行します。
2 つ目のシナリオ
devices: - /dev/sda - /dev/sdb dedicated_devices: - /dev/sdx - /dev/sdy bluestore_wal_devices: - /dev/nvme0n1 - /dev/nvme0n2
最初のシナリオでは、OSD が 2 つあります。
sda
デバイスおよびsdb
デバイスには、独自のデータセグメントと先行書き込みログがあります。追加のディクショナリーdedicated_devices
を使用して、sdx
とsdy
のデータベース (block.db
とも呼ばれる) を分離します。2 つ目のシナリオでは、別のディクショナリー
bluestore_wal_devices
を使用して、NVMe デバイスnvme0n1
およびnvme0n2
のログ先行書き込みを分離します。devices
オプション、dedicated_devices
オプション、bluestore_wal_devices,
オプションを一緒に使用すると、OSD のすべてのコンポーネントを別々のデバイスに分離できます。このように OSD を配置すると、全体的なパフォーマンスが向上する場合があります。事前作成された論理ボリューム
初回のシナリオ
lvm_volumes: - data: data-lv1 data_vg: data-vg1 db: db-lv1 db_vg: db-vg1 wal: wal-lv1 wal_vg: wal-vg1 - data: data-lv2 data_vg: data-vg2 db: db-lv2 db_vg: db-vg2 wal: wal-lv2 wal_vg: wal-vg2
または、以下を実行します。
2 つ目のシナリオ
lvm_volumes: - data: /dev/sdb db: db-lv1 db_vg: db-vg1 wal: wal-lv1 wal_vg: wal-vg1
デフォルトでは、Ceph は論理ボリュームマネージャーを使用して OSD デバイスに論理ボリュームを作成します。上記の 単純な設定 および 高度な設定 例では、Ceph はデバイス上に論理ボリュームを自動的に作成します。
lvm_volumes
ディクショナリーを指定すると、Ceph で以前に作成した論理ボリュームを使用できます。最初のシナリオでは、データは専用の論理ボリューム、データベース、および WAL に置かれます。データ、データおよび WAL、またはデータおよびデータベースのみを指定することもできます。
data:
行は、データの保存先の論理ボリューム名を指定し、data_vg:
データの論理ボリュームが含まれるボリュームグループの名前を指定する必要があります。同様に、db:
は、データベースが保存されている論理ボリュームを指定するために使用されます。db_vg:
は、論理ボリュームが存在するボリュームグループを指定するために使用されます。wal:
行は、WAL が格納する論理ボリュームを指定し、wal_vg:
行は、それを含むボリュームグループを指定します。2 つ目のシナリオでは、実際のデバイス名が
data:
オプションに設定されているため、data_vg:
オプションを指定する必要はありません。BlueStore データベースおよび WAL デバイスに、論理ボリューム名とボリュームグループの詳細を指定する必要があります。重要lvm_volumes:
では、ボリュームグループと論理ボリュームを、事前に作成する必要があります。ボリュームグループと論理ボリュームは、ceph-ansible
では作成されません。注記すべての NVMe SSD を使用する場合は、
osds_per_device: 2
を設定します。詳細は、Red Hat Ceph Storage インストールガイドの すべての NVMe ストレージに OSD Ansible 設定の設定 を参照してください。注記Ceph OSD ノードのリブート後には、ブロックデバイスの割り当てが変更される可能性があります。たとえば、
sdc
は、sdd
になる場合があります。従来のブロックデバイス名ではなく、/dev/disk/by-path/
デバイスパスなどの永続的な命名デバイスを使用できます。
すべてのデプロイメント (ベアメタル または コンテナー) について、Ansible インベントリーファイルを作成してから、そのファイルを開いて編集します。
[root@admin ~]# cd /usr/share/ceph-ansible/ [root@admin ceph-ansible]# touch hosts
それに応じて
hosts
ファイルを編集します。注記Ansible インベントリーの場所の編集に関する詳細は、Ansible インベントリーの場所の設定 を参照してください。
[grafana-server]
の下にノードを追加します。このロールは Grafana および Prometheus をインストールし、Ceph クラスターのパフォーマンスに関するリアルタイムの洞察を提供します。これらのメトリックは Ceph Dashboard に提示されています。これにより、クラスターの監視および管理が可能になります。Dashboard、Grafana、および Prometheus のインストールが必要です。Ansible Administration ノードでメトリック関数を同じ場所に配置できます。これを実行する場合は、ノードのシステムリソースが スタンドアロンのメトリックノードに必要とされるもの よりも大きいことを確認します。[grafana-server] GRAFANA-SERVER_NODE_NAME
[mons]
セクションに monitor ノードを追加します。[mons] MONITOR_NODE_NAME_1 MONITOR_NODE_NAME_2 MONITOR_NODE_NAME_3
[osds]
セクションに OSD ノードを追加します。[osds] OSD_NODE_NAME_1 OSD_NODE_NAME_2 OSD_NODE_NAME_3
注記ノード名が数値的に連続している場合は、ノード名の末尾に範囲指定子 (
[1:10]
) を追加できます。以下に例を示します。[osds] example-node[1:10]
注記新規インストールの OSD の場合、デフォルトのオブジェクトストア形式は BlueStore です。
-
必要に応じて、コンテナー デプロイメントで、
[mon]
セクションおよび[osd]
セクションに同じノードを追加して、Ceph Monitor デーモンを 1 つのノードの Ceph OSD デーモンと同じ場所に配置します。詳細は、Additional Resources セクションで、Ceph デーモンの配置に関するリンクを参照してください。 [mgrs]
セクションに Ceph Manager (ceph-mgr
) ノードを追加します。これは、Ceph Manager デーモンと Ceph Monitor デーモンを共存させます。[mgrs] MONITOR_NODE_NAME_1 MONITOR_NODE_NAME_2 MONITOR_NODE_NAME_3
必要に応じて、すべてのデプロイメント (ベアメタル または コンテナー 内) ホスト固有のパラメーターを使用する場合は、ホストに固有のパラメーターが含まれるホストファイルで
host_vars
ディレクトリーを作成します。host_vars
ディレクトリーを作成します。[ansible@admin ~]$ mkdir /usr/share/ceph-ansible/host_vars
host_vars
ディレクトリーに変更します。[ansible@admin ~]$ cd /usr/share/ceph-ansible/host_vars
ホストファイルを作成します。ファイル名に、host-name-short-name 形式を使用します。以下に例を示します。
[ansible@admin host_vars]$ touch tower-osd6
以下のように、ホスト固有のパラメーターでファイルを更新します。
bare-metal デプロイメントでは、
devices
パラメーターを使用して OSD ノードが使用するデバイスを指定します。OSD が異なる名前のデバイスを使用する場合や、いずれかの OSD でデバイスのいずれかに障害が発生した場合にdevices
の使用が役に立ちます。devices: DEVICE_1 DEVICE_2
例
devices: /dev/sdb /dev/sdc
注記デバイスを指定しない場合は、
group_vars/osds.yml
ファイルでosd_auto_discovery
パラメーターをtrue
に設定します。
オプションで、ベアメタルまたはコンテナー内のすべてのデプロイメントで、Ceph Ansible を使用してカスタム CRUSH 階層を作成できます。
Ansible のインベントリーファイルを設定します。
osd_crush_location
パラメーターを使用して、OSD ホストを CRUSH マップの階層内のどこに配置するかを指定します。OSD の場所を指定するために、2 つ以上の CRUSH バケットタイプを指定し、1 つのバケットのtype
をホストに指定する必要があります。デフォルトでは、これには、root
、datacenter
、room
、row
、pod
、pdu
、rack
、chassis
およびhost
が含まれます。構文
[osds] CEPH_OSD_NAME osd_crush_location="{ 'root': ROOT_BUCKET_', 'rack': 'RACK_BUCKET', 'pod': 'POD_BUCKET', 'host': 'CEPH_HOST_NAME' }"
例
[osds] ceph-osd-01 osd_crush_location="{ 'root': 'default', 'rack': 'rack1', 'pod': 'monpod', 'host': 'ceph-osd-01' }"
group_vars/osds.yml
ファイルを編集し、crush_rule_config
パラメーターとcreate_crush_tree
パラメーターをTrue
に設定します。デフォルトの CRUSH ルールを使用しない場合は、少なくとも 1 つの CRUSH ルールを作成します。次に例を示します。crush_rule_config: True crush_rule_hdd: name: replicated_hdd_rule root: root-hdd type: host class: hdd default: True crush_rules: - "{{ crush_rule_hdd }}" create_crush_tree: True
より高速な SSD デバイスを使用している場合は、次のようにパラメーターを編集します。
crush_rule_config: True crush_rule_ssd: name: replicated_ssd_rule root: root-ssd type: host class: ssd default: True crush_rules: - "{{ crush_rule_ssd }}" create_crush_tree: True
注記ssd
とhdd
の両方の OSD がデプロイされていない場合、デフォルトの CRUSH ルールは失敗します。これは、デフォルトのルールに、定義する必要のあるclass
パラメーターが含まれているためです。group_vars/clients.yml
ファイルで作成したcrush_rules
を使用してpools
を作成します。例
copy_admin_key: True user_config: True pool1: name: "pool1" pg_num: 128 pgp_num: 128 rule_name: "HDD" type: "replicated" device_class: "hdd" pools: - "{{ pool1 }}"
ツリーを表示します。
[root@mon ~]# ceph osd tree
プールを検証します。
[root@mon ~]# for i in $(rados lspools); do echo "pool: $i"; ceph osd pool get $i crush_rule; done pool: pool1 crush_rule: HDD
すべてのデプロイメント (ベアメタル または コンテナー 内) では、ログインするか、
ansible
ユーザーに切り替えます。Ansible が
ceph-ansible
Playbook で生成される一時的な値を保存するceph-ansible-keys
ディレクトリーを作成します。[ansible@admin ~]$ mkdir ~/ceph-ansible-keys
/usr/share/ceph-ansible/
ディレクトリーに移動します。[ansible@admin ~]$ cd /usr/share/ceph-ansible/
Ansible が Ceph ノードに到達できることを確認します。
[ansible@admin ceph-ansible]$ ansible all -m ping -i hosts
ceph-ansible
Playbook を実行します。ベアメタル デプロイメント:
[ansible@admin ceph-ansible]$ ansible-playbook site.yml -i hosts
コンテナー デプロイメント:
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml -i hosts
注記Red Hat Ceph Storage を Red Hat Enterprise Linux Atomic Host ホストにデプロイする場合は、
--skip-tags=with_pkg
オプションを使用します。[user@admin ceph-ansible]$ ansible-playbook site-container.yml --skip-tags=with_pkg -i hosts
注記デプロイメントの速度を増やすには、
--forks
オプションをansible-playbook
に指定します。デフォルトでは、ceph-ansible
はフォークを20
に設定します。この設定では、ノードを同時にインストールします。一度に最大 30 台までインストールするには、ansible-playbook --forks 30 PLAYBOOK FILE -i hosts
を実行します。管理ノードのリソースが過剰に使用されていないことを確認するために、監視する必要があります。そうである場合は、--forks
に渡される数を減らします。
Ceph デプロイメントが完了するまで待ちます。
出力例
INSTALLER STATUS ******************************* Install Ceph Monitor : Complete (0:00:30) Install Ceph Manager : Complete (0:00:47) Install Ceph OSD : Complete (0:00:58) Install Ceph RGW : Complete (0:00:34) Install Ceph Dashboard : Complete (0:00:58) Install Ceph Grafana : Complete (0:00:50) Install Ceph Node Exporter : Complete (0:01:14)
Ceph Storage クラスターのステータスを確認します。
ベアメタル デプロイメント:
[root@mon ~]# ceph health HEALTH_OK
コンテナー デプロイメント:
Red Hat Enterprise Linux 7
[root@mon ~]# docker exec ceph-mon-ID ceph health
Red Hat Enterprise Linux 8
[root@mon ~]# podman exec ceph-mon-ID ceph health
- 置き換え
ID
は、Ceph Monitor ノードのホスト名に置き換えます。例
[root@mon ~]# podman exec ceph-mon-mon0 ceph health HEALTH_OK
ベアメタル または コンテナー 内のすべてのデプロイメントについて、ストレージクラスターが
rados
を使用して機能していることを確認します。Ceph Monitor ノードから、8 つの配置グループ (PG) でテストプールを作成します。
構文
[root@mon ~]# ceph osd pool create POOL_NAME PG_NUMBER
例
[root@mon ~]# ceph osd pool create test 8
hello-world.txt
というファイルを作成します。構文
[root@mon ~]# vim FILE_NAME
例
[root@mon ~]# vim hello-world.txt
オブジェクト名
hello-world
を使用して、hello-world.txt
をテストプールにアップロードします。構文
[root@mon ~]# rados --pool POOL_NAME put OBJECT_NAME OBJECT_FILE_NAME
例
[root@mon ~]# rados --pool test put hello-world hello-world.txt
テストプールからファイル名
fetch.txt
としてhello-world
をダウンロードします。構文
[root@mon ~]# rados --pool POOL_NAME get OBJECT_NAME OBJECT_FILE_NAME
例
[root@mon ~]# rados --pool test get hello-world fetch.txt
fetch.txt
の内容を確認してください。[root@mon ~]# cat fetch.txt "Hello World!"
注記ストレージクラスターのステータスを確認する他に、
ceph-medic
ユーティリティーを使用して Ceph Storage クラスター全体の診断を行うことができます。Red Hat Ceph Storage 4 のトラブルシューティングガイドのceph-medic
をインストールおよび使用して Ceph Storage クラスターの検証 の章を参照してください。
関連情報
- 一般的な Ansible 設定 のリスト。
- 一般的な OSD 設定 のリスト。
- 詳細は、コンテナー化された Ceph デーモンのコロケーション を参照してください。