8.7. Ceph File System Metadata Server ノードとそのオペレーティングシステムを手動でアップグレードします。

Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph File System (CephFS) Metadata Server (MDS) ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。

重要

ストレージクラスターをアップグレードする前に、アクティブな MDS ランクの数を減らし、ファイルシステムごとに 1 つにします。これにより、複数の MDS 間でバージョンの競合が発生しなくなります。また、アップグレードを行う前に、すべてのスタンバイノードをオフラインにしてください。

これは、MDS クラスターにはバージョニングやファイルシステムフラグが組み込まれていないためです。これらの機能がないと、複数の MDS が異なるバージョンの MDS ソフトウェアを使用して通信することになり、アサーションやその他の不具合が発生する可能性があります。

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • 各ノード で Red Hat Enterprise Linux 7.9 を使用している。
  • ノードは Red Hat Ceph Storage バージョン 3.3z6 または 4.1 を使用している。
  • Red Hat Enterprise Linux 8.3 のインストールソースにアクセスできる。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。
重要

基盤となる XFS ファイルシステムが ftype=1 でフォーマットされているか、d_type をサポートしている。xfs_info /var コマンドを実行し、ftype1 になっていることを確認します。ftype の値が 1 でない場合は、新しいディスクをアタッチするか、ボリュームを作成します。この新しいデバイスの上に、新しい XFS ファイルシステムを作成し、/var/lib/containers にマウントします。

Red Hat Enterprise Linux 8 以降、mkfs.xfs はデフォルトで ftype=1 を有効にします。

手順

  1. アクティブな MDS ランクを 1 にします。

    構文

    ceph fs set FILE_SYSTEM_NAME max_mds 1

    [root@mds ~]# ceph fs set fs1 max_mds 1

  2. クラスターがすべての MDS ランクを停止するのを待ちます。すべての MDS が停止したら、ランク 0 だけがアクティブになるはずです。残りはスタンバイモードにしておきます。ファイルシステムの状態を確認します。

    [root@mds ~]# ceph status
  3. systemctl を使用して、スタンバイしているすべての MDS をオフラインにします。

    [root@mds ~]# systemctl stop ceph-mds.target
  4. MDS が 1 つだけオンラインになっており、ファイルシステムのランクが 0 であることを確認します。

    [root@mds ~]# ceph status
  5. OS のバージョンに合わせて、ツールのリポジトリーを無効にします。

    1. RHEL 7 で Red Hat Ceph Storage 3 からアップグレードする場合は、Red Hat Ceph Storage 3 のツールリポジトリーを無効にします。

      [root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-3-tools-rpms
    2. Red Hat Ceph Storage 4 を使用している場合は、Red Hat Ceph Storage 4 のツールリポジトリーを無効にします。

      [root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  6. leapp ユーティリティーをインストールします。leapp の詳細については、Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 へのアップグレード を参照してください。
  7. leapp のアップグレード前のチェックを行います。詳細は、コマンドラインからのアップグレード可能性の評価 を参照してください。
  8. etc/ssh/sshd_config を編集し、PermitRootLoginyes に設定します。
  9. OpenSSH SSH デーモンを再起動します。

    [root@mds ~]# systemctl restart sshd.service
  10. Linux カーネルから iSCSI モジュールを削除します。

    [root@mds ~]# modprobe -r iscsi
  11. アップグレードを行います。RHEL 7 から RHEL 8 へのアップグレードの実行 を参照してください。
  12. MDS ノードを再起動します。
  13. Red Hat Ceph Storage 4 for Red Hat Enterprise Linux 8 のツールリポジトリーを有効にします。

    [root@mds ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
  14. ceph-mds パッケージをインストールします。

    [root@mds ~]# dnf install ceph-mds -y
  15. 必要に応じて、このノードにコロケーションされる Ceph サービスのパッケージをインストールします。必要に応じて、追加の Ceph リポジトリーを有効にします。
  16. 必要に応じて、他の Ceph サービスに必要な leveldb パッケージをインストールします。

    [root@mds ~]# dnf install leveldb
  17. アップグレードされていないノードまたはそれらのファイルを復元しているノードから ceph-client-admin.keyring ファイルおよび ceph.conf ファイルを復元します。
  18. 既存の CRUSH バケットを、最新のバケットタイプ straw2 に切り替えます。

    # ceph osd getcrushmap -o backup-crushmap
    # ceph osd crush set-all-straw-buckets-to-straw2
  19. MDS サービスを開始します。

    [root@mds ~]# systemctl restart ceph-mds.target
  20. デーモンが有効であることを確認します。

    [root@mds ~]# ceph -s
  21. スタンバイ中のデーモンについても同じプロセスを実行します。
  22. スタンバイ中のすべての MDS の再起動が完了したら、クラスターの max_mds の値を以前の値に戻します。

    構文

    ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE

    [root@mds ~]# ceph fs set fs1 max_mds 5