日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

クラスタをアップグレード

寄稿者 netapp-mwallis

Ansible を使用して、 SolidFire ESDS クラスタで無停止のローリングアップグレードを実行できます。ネットアップが提供する「 nar_solidfire_sds_upgrade 」ロールを使用すると、 Ansible は、すべてのボリュームへのデータ可用性を維持しながら、一度に 1 ノードずつローリングアップグレードを実行します。

アップグレード前に、次の条件が満たされていることを確認します。

  • Element UI でクラスタエラーは発生しません。

  • インベントリファイルは、現在の RPM ファイルのビルド情報とクラスタメンバーノードに関する詳細が記録された最新の状態です。

  • ホストは、 IP アドレスを使用してインベントリファイルに定義されます( Fully Qualified Domain Name [FQD; 完全修飾ドメイン名 ] ではありません)。

重要 FQDN を使用してホストを定義すると、アップグレードが失敗します。
  • ホストは、次の例の形式を使用してインベントリファイルに定義されます。

    hosts:
      10.117.136.26:
      10.117.136.27:
  • インベントリファイル内のノードの数は、アップグレードするクラスタ内のノードの数と同じです。番号が一致しない場合、アップグレード手順は次のようなエラーで失敗します。「 Cluster 10.194.79.151 consists of more nodes than what has been specified for upgrade! 」

  • インベントリファイルには、次の変数が指定されています。 sf_mgmt_virt_ip ( MVIP )、 sf_cluster_admin_username 、 sf_cluster_admin_passwd 、 solidfire_element_rpm (新しい RPM ファイルへのパス)

アップグレードプロセスの概要を次に示します。

  • インベントリファイルに入力した情報が検証されます。

  • ノード情報が収集されます。

  • RPM は、インベントリファイルに含まれるすべてのノードに並行してインストールされます。

  • RPM が各ノードにインストールされると、各 SolidFire ESDS ノードが一度に 1 つずつアップグレードされます。各ノードは自動的にメンテナンスモードになります。アップグレードプレイブックを実行している場合は、保守モードを手動で有効にする必要はありません。

  • 最初のノードがメンテナンスモードになると、その SolidFire ESDS ノードでホストされているボリュームが、クラスタ内の残りの SolidFire ESDS ノードにフェイルオーバーされます。

  • SolidFire サービスが再起動され、アプリケーションの最新バージョンが取得されます。

  • ノードのメンテナンスモードが非アクティブになり、クラスタはノードがリカバリされるまで待機します。

  • ノードがオンラインに戻ったら、クラスタのバランスが調整されます。

  • クラスタ内のすべてのノードに対して同じ手順を繰り返します。

  • すべてのノードをアップグレードしたあと、クラスタに最新バージョンが表示されます。

注記 アップグレード中にエラーが発生した場合やクラスタに障害が発生した場合、アップグレードは停止しません。アップグレードに成功したノードとアップグレードに失敗したノードのリストが出力される範囲まで進められます。エラーを修正したら、プレイブックを再実行するか、ファイルを拒否してアップグレードプロセスを完了できます。
注意 障害のためにアップグレードが失敗した場合は、その問題を解決してからアップグレードを再開する必要があります。アップグレードが完了するまで、クラスタはアップグレードステータスのままになります。クラスタのアップグレード中に Element によって障害がクリアされない場合は、ネットアップサポートにお問い合わせください。エラーの性質によっては、問題が解決しない場合、サポートから「 yes_i_bwant to ignore_cluster_faults 」変数を追加し、アップグレード・プレイブックで true に設定して、プレイブックを再実行するように指示される場合があります。サポートに相談しないでください。
手順
  1. 'Ansible galxy install コマンドを実行して 'nar_solidfire_sds_upgrade' ロールをインストールします

    ansible-galaxy install git+https://github.com/NetApp-Automation/nar_solidfire_sds_upgrade.git

    ロールは、からコピーして手動でインストールすることもできます "NetApp GitHub リポジトリ" そして '~/. epla/roles ディレクトリにロールを配置しますネットアップは README ファイルを提供しています。このファイルには、ロールの実行方法に関する情報が含まれています。

    注記 必ず最新バージョンのロールをダウンロードしてください。
  2. ダウンロードしたロールを、インストールしたディレクトリから 1 つ上のディレクトリに移動します。

     $ mv ~/.ansible/roles/ansible/nar_solidfire_sds_* ~/.ansible/roles/
  3. Ansible galxy role list コマンドを実行して、新しい役割を利用するように Ansible が設定されていることを確認します。

     $ ansible-galaxy role list
     # ~/.ansible/roles
     - nar_solidfire_sds_install, (unknown version)
     - nar_solidfire_sds_upgrade, (unknown version)
     - ansible, (unknown version)
     - nar_solidfire_sds_compliance, (unknown version)
     - nar_solidfire_cluster_config, (unknown version)
     - nar_solidfire_sds_uninstall, (unknown version)
  4. アップグレードに使用するプレイブックを作成します。すでにプレイブックを持っていて、それを使いたい場合は、このプレイブックで「 nar_solidfire_sds_upgrade 」ロールを指定してください。

  5. プレイブックを実行します

     $ ansible-playbook -i inventory.yaml playbook_upgrade_sample.yaml
    注記 ここで使用するプレイブックの名前は一例です。このコマンドは、プレイブックの名前に置き換える必要があります。

    Playbook を実行すると、インベントリファイルに入力した情報が検証され、インベントリにリストされているすべてのノードに RPM がインストールされます。Ansible の出力を確認して、各ノードがアップグレードされていることを確認できます。

  6. アップグレードの完了後、 Element UI またはクラスタ API を使用して各ノードで新しいバージョンが実行されていることを確認します。