1.3. アップグレードの準備
ストレージ管理者は、Ceph Storage クラスターを Red Hat Ceph Storage 5 にアップグレードできます。ただし、ストレージクラスターの一部のコンポーネントは、アップグレードを行う前に特定のソフトウェアバージョンを実行している必要があります。以下は、Red Hat Ceph Storage 5 にアップグレードする前にストレージクラスターにインストールする必要のある最小のソフトウェアバージョンを示しています。
- Red Hat Ceph Storage 4.3 以降
- Ansible 2.9
- Ceph-ansible には、最新バージョンの Red Hat Ceph Storage が同梱されている
- Red Hat Enterprise Linux 8.4 EUS 以降
- FileStore OSD が BlueStore に移行されている必要がある。OSD を FileStore から BlueStore に変換する方法については、BlueStore を参照してください。
Red Hat Ceph Storage 4.3 よりも前のバージョンから直接アップグレードする方法はありません。Red Hat Ceph Storage 3 からアップグレードする場合は、まず Red Hat Ceph Storage 4.3 以降にアップグレードしてから Red Hat Ceph Storage 5 にアップグレードする必要があります。
Red Hat Ceph Storage 5 の最新バージョンにのみアップグレードできます。たとえば、バージョン 5.1 が利用可能な場合、4 から 5.0 にアップグレードすることはできません。5.1 に直接アップグレードする必要があります。
Red Hat Enterprise Linux-8.7 (またはそれ以降) への Red Hat Ceph Storage-4.3.z1 の新規デプロイメント、または Red Hat Enterprise Linux-8.7 (またはそれ以降) のホスト OS を使用した Red Hat Ceph Storage-4.3.z1 から 5.X へのアップグレードは、TASK [ceph-mgr : wait for all mgr to be up]
で失敗します。Red Hat Enterprise Linux 8.7 でリリースされた podman
は、SELinux のラベル再設定に関する動作が変更されました。このため、起動順序によっては、一部の Ceph コンテナーが必要なファイルにアクセスできず、起動に失敗することがあります。
回避策については、ナレッジベースの RHCS 4.3 installation fails while executing the command `ceph mgr dump` を参照してください。
ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードするには、クラスターで Red Hat Ceph Storage 4.3 以降を実行することを推奨しています。ナレッジベースの記事 What are the Red Hat Ceph Storage Releases? を参照してください。この記事には、Ceph パッケージと ceph-ansible の最新バージョンへのダウンロードリンクが含まれています。
アップグレードプロセスでは、Ansible Playbook を使用して、Red Hat Ceph Storage 4 ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードします。Red Hat Ceph Storage 4 ストレージクラスターがコンテナー化されていないクラスターである場合、アップグレードプロセスには、クラスターをコンテナー化バージョンに変換するステップが含まれます。Red Hat Ceph Storage 5 は、コンテナー化されていないクラスターでは実行されません。
ミラーリングまたはマルチサイト設定がある場合は、一度に 1 つのクラスターをアップグレードします。別のクラスターをアップグレードする前に、アップグレードした各クラスターが適切に実行されていることを確認します。
leapp
は、暗号化された OSD または暗号化されたパーティションを持つ OSD のアップグレードをサポートしていません。OSD が暗号化され、ホスト OS をアップグレードする場合は、OS をアップグレードする前に ceph-ansible
の dmcrypt
を無効にします。leapp
の使用方法は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
この手順の最初 3 つのステップは、ストレージクラスターが最新バージョンの RRed Hat Ceph Storage 4 をまだ実行していない場合に のみ 実行してください。Red Hat Ceph Storage 4 の最新バージョンは 4.3 以降である必要があります。
前提条件
- Red Hat Ceph Storage 4 クラスターが実行されている。
- ストレージクラスター内すべてのノードへの sudo レベルのアクセス。
- 有効なカスタマーサブスクリプション。
- Ansible 管理ノードへの root レベルのアクセス。
- Ansible アプリケーションで使用する Ansible ユーザーアカウント。
- Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。
手順
Ansible 管理ノードで Ceph および Ansible リポジトリーを有効にします。
例:
[root@admin ceph-ansible]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
Ansible を更新します。
例:
[root@admin ceph-ansible]# dnf update ansible ceph-ansible
アップグレードするストレージクラスターに、
exclusive-lock
機能を使用する Ceph Block Device イメージが含まれる場合は、すべての Ceph Block Device ユーザーにクライアントの拒否リストを作成するパーミッションがあるようにしてください。構文
ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'
ストレージクラスターが Cockpit を使用して最初にインストールされている場合は、
/usr/share/ceph-ansible
ディレクトリーに、Cockpit が作成したインベントリーファイルへのシンボリックリンクを/usr/share/ansible-runner-service/inventory/hosts
に作成します。/usr/share/ceph-ansible
ディレクトリーに移動します。# cd /usr/share/ceph-ansible
シンボリックリンクを作成します。
# ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
ceph-ansible
を使用してクラスターをアップグレードするには、hosts
インベントリーファイルのシンボリックリンクをetc/ansible/hosts
ディレクトリーに作成します。# ln -s /etc/ansible/hosts hosts
ストレージクラスターが元々 Cockpit を使用してインストールされた場合は、コックピットで生成された SSH キーを Ansible ユーザーの
~/.ssh
ディレクトリーにコピーします。鍵をコピーします。
構文
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa
ANSIBLE_USERNAME を Ansible のユーザー名に置き換えます。通常のデフォルトのユーザー名は
admin
です。例:
# cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa
キーファイルに適切な所有者、グループ、およびパーミッションを設定します。
構文
# chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa
ANSIBLE_USERNAME を、Ansible のユーザー名に置き換えます。通常のデフォルトのユーザー名は
admin
です。例:
# chown admin:admin /home/admin/.ssh/id_rsa.pub # chown admin:admin /home/admin/.ssh/id_rsa # chmod 644 /home/admin/.ssh/id_rsa.pub # chmod 600 /home/admin/.ssh/id_rsa
関連情報
- What are the Red Hat Ceph Storage Releases?
- FileStore から BlueStore への変換に関する詳細は、BlueStore を参照してください。