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
コマンドを実行し、ftype
が 1
になっていることを確認します。ftype
の値が 1
でない場合は、新しいディスクをアタッチするか、ボリュームを作成します。この新しいデバイスの上に、新しい XFS ファイルシステムを作成し、/var/lib/containers
にマウントします。
Red Hat Enterprise Linux 8 以降、mkfs.xfs
はデフォルトで ftype=1
を有効にします。
手順
アクティブな MDS ランクを 1 にします。
構文
ceph fs set FILE_SYSTEM_NAME max_mds 1
例
[root@mds ~]# ceph fs set fs1 max_mds 1
クラスターがすべての MDS ランクを停止するのを待ちます。すべての MDS が停止したら、ランク 0 だけがアクティブになるはずです。残りはスタンバイモードにしておきます。ファイルシステムの状態を確認します。
[root@mds ~]# ceph status
systemctl
を使用して、スタンバイしているすべての MDS をオフラインにします。[root@mds ~]# systemctl stop ceph-mds.target
MDS が 1 つだけオンラインになっており、ファイルシステムのランクが 0 であることを確認します。
[root@mds ~]# ceph status
OS のバージョンに合わせて、ツールのリポジトリーを無効にします。
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
Red Hat Ceph Storage 4 を使用している場合は、Red Hat Ceph Storage 4 のツールリポジトリーを無効にします。
[root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
-
leapp
ユーティリティーをインストールします。leapp
の詳細については、Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 へのアップグレード を参照してください。 -
leapp
のアップグレード前のチェックを行います。詳細は、コマンドラインからのアップグレード可能性の評価 を参照してください。 -
etc/ssh/sshd_config
を編集し、PermitRootLogin
をyes
に設定します。 OpenSSH SSH デーモンを再起動します。
[root@mds ~]# systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
[root@mds ~]# modprobe -r iscsi
- アップグレードを行います。RHEL 7 から RHEL 8 へのアップグレードの実行 を参照してください。
- MDS ノードを再起動します。
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
ceph-mds
パッケージをインストールします。[root@mds ~]# dnf install ceph-mds -y
- 必要に応じて、このノードにコロケーションされる Ceph サービスのパッケージをインストールします。必要に応じて、追加の Ceph リポジトリーを有効にします。
必要に応じて、他の Ceph サービスに必要な
leveldb
パッケージをインストールします。[root@mds ~]# dnf install leveldb
-
アップグレードされていないノードまたはそれらのファイルを復元しているノードから
ceph-client-admin.keyring
ファイルおよびceph.conf
ファイルを復元します。 既存の CRUSH バケットを、最新のバケットタイプ
straw2
に切り替えます。# ceph osd getcrushmap -o backup-crushmap # ceph osd crush set-all-straw-buckets-to-straw2
MDS サービスを開始します。
[root@mds ~]# systemctl restart ceph-mds.target
デーモンが有効であることを確認します。
[root@mds ~]# ceph -s
- スタンバイ中のデーモンについても同じプロセスを実行します。
スタンバイ中のすべての MDS の再起動が完了したら、クラスターの
max_mds
の値を以前の値に戻します。構文
ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE
例
[root@mds ~]# ceph fs set fs1 max_mds 5