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