1.5. コンテナー化されたデプロイメントへの変換
この手順は、コンテナー化されていないクラスターに必要です。ストレージクラスターがコンテナー化されていないクラスターである場合、この手順により、クラスターがコンテナー化されたバージョンに変換されます。
Red Hat Ceph Storage 5 はコンテナーベースのデプロイメントだけをサポートします。RHCS 5.x にアップグレードする前に、クラスターをコンテナー化する必要があります。
Red Hat Ceph Storage 4 ストレージクラスターがすでにコンテナー化されている場合は、本セクションを飛ばして次に進んでください。
この手順により、デーモンが停止され、再起動されます。この手順の実行中に Playbook の実行が停止された場合は、再起動する前に必ずクラスターの状態を分析してください。
前提条件
- コンテナー化されていない Red Hat Ceph Storage 4 クラスターが実行されている。
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
- 有効なカスタマーサブスクリプション。
- Ansible 管理ノードへの root レベルのアクセス。
- Ansible アプリケーションで使用する Ansible ユーザーアカウント。
手順
-
マルチサイト設定を実行している場合は、
rgw_multisite: false
をall.yml
に設定します。 group_vars/all.yml
に、設定パラメーターに以下のデフォルト値があることを確認します。ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: true
注記この値は、ローカルレジストリーとカスタムイメージ名を使用する場合によって異なります。
任意手順: ベアメタルストレージクラスターのコマンドラインインターフェイスを使用して設定された双方向 RBD ミラーリングの場合、クラスターは RBD ミラーリングを移行しません。このような設定では、コンテナー化されていないストレージクラスターをコンテナー化されたデプロイメントに移行する前に、以下の手順を実行します。
Ceph クライアントノードでユーザーを作成します。
構文
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
例
[root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
/etc/ceph
ディレクトリーのauth
ファイルでユーザー名を変更します。例
[client.rbd-mirror.rbd-client-site-a] key = AQCbKbVg+E7POBAA7COSZCodvOrg2LWIFc9+3g== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
auth
ファイルをインポートして、関連するパーミッションを追加します。構文
ceph auth import -i PATH_TO_KEYRING
例
[root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring
RBD ミラーノードのサービス名を確認します。
例
[root@rbd-client-site-a ~]# systemctl list-units --all systemctl stop ceph-rbd-mirror@rbd-client-site-a.service systemctl disable ceph-rbd-mirror@rbd-client-site-a.service systemctl reset-failed ceph-rbd-mirror@rbd-client-site-a.service systemctl start ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service systemctl enable ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service systemctl status ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
rbd-mirror ノードを
/etc/ansible/hosts
ファイルに追加します。例:
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
コンテナー化されていないデーモンを使用している場合は、それらをコンテナー化された形式に変換します。
構文
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
-vvvv
オプションは、変換プロセスの詳細ログを収集します。例:
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
Playbook が正常に完了したら、
all.yml
ファイルのrgw_multisite: true
の値を編集し、containerized_deployment
の値がtrue
となるようにします。注記ceph-iscsi
、libtcmu
、およびtcmu-runner
パッケージを管理ノードから必ず削除してください。