7.4. コマンドラインインターフェイスを使用したストレージクラスターのアップグレード
ストレージクラスターの実行中に、Red Hat Ceph Storage 3.3 から Red Hat Ceph Storage 4 にアップグレードできます。これらのバージョンの重要な違いは、Red Hat Ceph Storage4 がデフォルトで msgr2 プロトコルを使用することです。これはポート 3300 を使用します。開いていない場合、クラスターは HEALTH_WARN エラーを発行します。
ストレージクラスターのアップグレード時に考慮すべき制約を以下に示します。
-
Red Hat Ceph Storage 4 では、デフォルトで
msgr2プロトコルが使用されます。Ceph Monitor ノードでポート3300が開いていることを確認します。 -
ceph-monitorデーモンを Red Hat Ceph Storage 3 から Red Hat Ceph Storage 4 にアップグレードしたら、Red Hat Ceph Storage 3 のceph-osdデーモンは、Red Hat Ceph Storage 4 にアップグレードするまで、新しい OSD を作成 できません。 - アップグレードの進行中はプールを 作成しないでください。
前提条件
- Ceph Monitor ノード、OSD ノード、および Object Gateway ノードへのルートレベルのアクセス。
手順
Red Hat Ceph Storage 3 の実行中に、クラスターがすべての PG の完全スクラブを 1 つ以上完了していることを確認します。これを実行しないと、モニターデーモンは起動時にクォーラムへの参加を拒否し、機能しなくなる可能性があります。クラスターがすべての PG の完全スクラブを 1 つ以上完了していることを確認するには、以下を実行します。
# ceph osd dump | grep ^flagsRed Hat Ceph Storage 3 から Red Hat Ceph Storage 4 へのアップグレードを続行するには、OSD マップに
recovery_deletesフラグおよびpurged_snapdirsフラグが含まれている必要があります。クラスターが正常な状態でクリーンな状態であることを確認します。
ceph health HEALTH_OKceph-monおよびceph-managerを実行しているノードの場合は、以下のコマンドを実行します。# subscription-manager repos --enable=rhel-7-server-rhceph-4-mon-rpmsRed Hat Ceph Storage 4 パッケージを有効にしたら、それぞれの
ceph-monノードおよびceph- managerノードで以下のコマンドを実行します。# firewall-cmd --add-port=3300/tcp # firewall-cmd --add-port=3300/tcp --permanent # yum update -y # systemctl restart ceph-mon@<mon-hostname> # systemctl restart ceph-mgr@<mgr-hostname><mon-hostname>および<mgr-hostname>をターゲットホストのホスト名に置き換えます。OSD をアップグレードする前に、Ceph Monitor ノードで
nooutフラグおよびnodeep-scrubフラグを設定して、アップグレード中に OSD がリバランスされないようにします。# ceph osd set noout # ceph osd det nodeep-scrub各 OSD ノードで、以下を実行します。
# subscription-manager repos --enable=rhel-7-server-rhceph-4-osd-rpmsRed Hat Ceph Storage 4 パッケージを有効にしたら、OSD ノードを更新します。
# yum update -yノードで実行している各 OSD デーモンについて、以下のコマンドを実行します。
# systemctl restart ceph-osd@<osd-num><osd-num>を、再起動する osd 番号に置き換えてください。次の OSD ノードに進む前に、ノード上の全 OSD が再起動したことを確認します。ceph-diskを使用してデプロイされたストレージクラスターに OSD がある場合には、ceph-volumeにデーモンを起動するように指示します。# ceph-volume simple scan # ceph-volume simple activate --allNautilus の機能のみを有効にします。
# ceph osd require-osd-release nautilus重要このステップの実行に失敗すると、
msgr2が有効になってから OSD が通信できなくなります。すべての OSD ノードをアップグレードしたら、Ceph Monitor ノードで
nooutフラグおよびnodeep-scrubフラグの設定を解除します。# ceph osd unset noout # ceph osd unset nodeep-scrub既存の CRUSH バケットを、最新のバケットタイプ
straw2に切り替えます。# ceph osd getcrushmap -o backup-crushmap # ceph osd crush set-all-straw-buckets-to-straw2Red Hat Ceph Storage 3 から Red Hat Ceph Storage 4 にアップグレードした後、すべてのデーモンが更新されたら、以下のステップを実行します。
Specify v2 プロトコル
msgr2を有効にします。ceph mon enable-msgr2これにより、古いデフォルトポート 6789 にバインドされるすべての Ceph Monitor が新しいポート 3300 にバインドされるように指示します。
monitor のステータスを確認します。
ceph mon dump注記nautilus OSD を実行しても、v2 アドレスに自動的にバインドされません。再起動する必要があります。
-
Red Hat Ceph Storage 3 から Red Hat Ceph Storage 4 にアップグレードされたホストごとに、
ceph.confファイルを更新して、モニターポートを指定しないか、v2 と v1 の両方のアドレスとポートを参照します。 ceph.confファイルの設定オプションをストレージクラスターの設定データベースにインポートします。例
[root@mon ~]# ceph config assimilate-conf -i /etc/ceph/ceph.confストレージクラスターの設定データベースを確認してください。
例
[root@mon ~]# ceph config dumpオプション: Red Hat Ceph Storage 4 にアップグレードした後、ホストごとに最小限の
ceph.confファイルを作成します。例
[root@mon ~]# ceph config generate-minimal-conf > /etc/ceph/ceph.conf.new [root@mon ~]# mv /etc/ceph/ceph.conf.new /etc/ceph/ceph.conf
Ceph Object Gateway ノードで、以下を実行します。
# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpmsRed Hat Ceph Storage 4 パッケージを有効にしたら、ノードを更新して、
ceph-rgwデーモンを再起動します。# yum update -y # systemctl restart ceph-rgw@<rgw-target><rgw-target>を、再起動する rgw ターゲットに置き換えてください。管理ノードの場合には、以下のコマンドを実行します。
# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms # yum update -yクラスターが正常な状態でクリーンな状態であることを確認します。
# ceph health HEALTH_OK必要に応じて、クライアントノードで、Ceph クライアント側ライブラリーに依存するアプリケーションを再起動します。
注記QEMU または KVM インスタンスを実行している OpenStack Nova コンピュートノードをアップグレードする場合や、専用の QEMU または KVM クライアントを使用する場合には、インスタンスを再起動しても機能しないため、QEMU または KVM インスタンスを停止して起動してください。