Menu Close

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 ノードへのルートレベルのアクセス。

手順

  1. Red Hat Ceph Storage 3 の実行中に、クラスターがすべての PG の完全スクラブを 1 つ以上完了していることを確認します。これを実行しないと、モニターデーモンは起動時にクォーラムへの参加を拒否し、機能しなくなる可能性があります。クラスターがすべての PG の完全スクラブを 1 つ以上完了していることを確認するには、以下を実行します。

    # ceph osd dump | grep ^flags

    Red Hat Ceph Storage 3 から Red Hat Ceph Storage 4 へのアップグレードを続行するには、OSD マップに recovery_deletes フラグおよび purged_snapdirsフラグが含まれている必要があります。

  2. クラスターが正常な状態でクリーンな状態であることを確認します。

    # ceph health
    HEALTH_OK
  3. ceph-mon および ceph-manager を実行しているノードの場合は、以下のコマンドを実行します。

    # subscription-manager repos --enable=rhel-7-server-rhceph-4-mon-rpms

    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>

    <mon-hostname> および <mgr-hostname> をターゲットホストのホスト名に置き換えます。

  4. OSD をアップグレードする前に、アップグレード中の OSD のリバランスを防ぐために、Ceph Monitor ノードで norebalance フラグを設定します。

    # ceph osd set norebalance
  5. 各 OSD ノードで、以下を実行します。

    # subscription-manager repos --enable=rhel-7-server-rhceph-4-osd-rpms

    Red Hat Ceph Storage 4 パッケージを有効にしたら、OSD ノードを更新します。

    # yum update -y

    ノードで実行している各 OSD デーモンについて、以下のコマンドを実行します。

    # systemctl restart ceph-osd@<osd-num>

    <osd-num> を、再起動する osd 番号に置き換えてください。次の OSD ノードに進む前に、ノード上の全 OSD が再起動したことを確認します。

  6. ceph-disk を使用してデプロイされたストレージクラスターに OSD がある場合には、ceph-volume にデーモンを起動するように指示します。

    # ceph-volume simple scan
    # ceph-volume simple activate --all
  7. Nautilus の機能のみを有効にします。

    # ceph osd require-osd-release nautilus
    重要

    このステップの実行に失敗すると、msgr2 が有効になってから OSD が通信できなくなります。

  8. すべての OSD ノードをアップグレードしたら、Ceph Monitor ノードで noout フラグの設定を解除します。

    # ceph osd unset noout
  9. 既存の CRUSH バケットを、最新のバケットタイプ straw2 に切り替えます。

    # ceph osd getcrushmap -o backup-crushmap
    # ceph osd crush set-all-straw-buckets-to-straw2
  10. Red Hat Ceph Storage 3 から Red Hat Ceph Storage 4 にアップグレードした後、すべてのデーモンが更新されたら、以下のステップを実行します。

    1. Specify v2 プロトコル msgr2 を有効にします。

      # ceph mon enable-msgr2

      これにより、古いデフォルトポート 6789 にバインドされるすべての Ceph Monitor が新しいポート 3300 にバインドされるように指示します。

    2. monitor のステータスを確認します。

      ceph mon dump
      注記

      nautilus OSD を実行しても、v2 アドレスに自動的にバインドされません。再起動する必要があります。

  11. Red Hat Ceph Storage 3 から Red Hat Ceph Storage 4 にアップグレードされたホストごとに、ceph.conf ファイルを更新して、モニターポートを指定しないか、v2 と v1 の両方のアドレスとポートを参照します。
  12. ceph.conf ファイルの設定オプションをストレージクラスターの設定データベースにインポートします。

    [root@mon ~]# ceph config assimilate-conf -i /etc/ceph/ceph.conf

    1. ストレージクラスターの設定データベースを確認してください。

      [root@mon ~]# ceph config dump

    2. オプション: 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

  13. Ceph Object Gateway ノードで、以下を実行します。

    # subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms

    Red Hat Ceph Storage 4 パッケージを有効にしたら、ノードを更新して、ceph-rgw デーモンを再起動します。

    # yum update -y
    # systemctl restart ceph-rgw@<rgw-target>

    <rgw-target> を、再起動する rgw ターゲットに置き換えてください。

  14. 管理ノードの場合には、以下のコマンドを実行します。

    # subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms
    # yum update -y
  15. クラスターが正常な状態でクリーンな状態であることを確認します。

    # ceph health
    HEALTH_OK
  16. 必要に応じて、クライアントノードで、Ceph クライアント側ライブラリーに依存するアプリケーションを再起動します。

    注記

    QEMU または KVM インスタンスを実行している OpenStack Nova コンピュートノードをアップグレードする場合や、専用の QEMU または KVM クライアントを使用する場合には、インスタンスを再起動しても機能しないため、QEMU または KVM インスタンスを停止して起動してください。