Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NorthStarからParagon Automationへのデータの移行

既存の NorthStar リリース 6.x から DeviceProfile、Cassandra DB、および Analytics (ES DB) データを移行できます。をParagon Automation設定に変更します。

概要 このトピックで説明されている手順を使用して、日付をNorthStarからParagon Automationに移行します。

前提 条件

  • NorthStarとParagon Automationの両方の設定が稼働していることを確認します。
  • CassandraはParagon Automationからアクセスできる必要があります。/opt/northstar/data/apache-cassandra/conf/cassandra.yaml パスの rpc_address パラメータを、Paragon Automation セットアップが接続できるアドレスに設定します。アドレスを設定したら、Cassandraを再起動して設定変更を有効にします。
  • NorthStarとParagon Automationの両方に、Cassandra DBを移行するのに十分なディスク容量があることを確認します。Cassandra の移行では、すべてのデータが CSV ファイルにエクスポートされるため、移行操作に十分なスペースが必要です。十分なスペースを確保するには、次のようにします。

    1. NorthStarにログインし、Cassandraによる現在のディスク使用量を確認してください。マルチサイトセットアップの場合は、セットアップ内のすべてのノードで次のコマンドを発行し、それらを追加して合計ディスク使用量を計算します。

    2. NorthStar と Paragonの両方で使用可能なディスク容量が、Cassandraの合計ディスク使用量を少なくとも2倍超えていることを確認します。Paragon Automationの場合、 /var/local ディレクトリに使用するデバイスでスケジューリングが有効になっているすべてのノードで、この容量が使用可能である必要があります。NorthStar の場合、データのエクスポート元のノードにのみ使用可能なディスク領域が必要です。

      例えば、Paragon Automationノードで、大きなルートパーティション「/」があり、'/var/local'のオプションパーティションがない場合:

      パーティションオプションの詳細については、 ディスク要件 を参照してください。

      NorthStarについて:

NorthStarからParagon Automationにデータを移行するには、次の手順に従います。

ns移行タスクポッドを作成します

  1. Paragon Automation プライマリノードにログインします。
  2. nsmigration タスクポッドを作成します。
  3. nsmigration タスクポッドにログインします。

カサンドラDBデータをCSVファイルにエクスポートする

移行手順では、NorthStarのCassandraデータベースの内容をCSVファイルにエクスポートし、そのファイルをParagon Automationにコピーする必要があります。
  1. opt/northstar/thirdparty/dsbulk-1.8.0.tar.gzファイルと/opt/northstar/util/db/export_csv/cass_dsbulk_export_csv.pyをParagon AutomationのnsmigrationコンテナからターゲットのNorthStarインストールにコピーします。

    ファイルを現在のノードにローカルにコピーします。

    ターゲットの NorthStar インストールにファイルをコピーします。

  2. NorthStarインスタンスにログインし、dsbulk-1.8.0.tar.gzファイルを抽出して移行ユーティリティをインストールします。
  3. cass_dsbulk_export_csv.py スクリプトを実行して、Cassandra データベースの内容を CSV ファイルにエクスポートします。--skip-historical-data オプションをこのスクリプトに渡すと、履歴イベント日付のエクスポートをスキップできます。詳しくは、表 1 を参照してください。

    NorthStar 環境ファイルのソースを作成します。

    exportスクリプトを実行します。

    表 1: 履歴イベント データ テーブル
    キースペース テーブル
    タスクスケジューラ タスクステータス
    パソコン トポロジー、lsp_topo、lsp_link、NTAD、メッセージ、pcs_lsp_event、link_event、node_event
    pcs_provision 支給

    スクリプトを実行すると、Cassandra データベースの内容 ( db_schema.jsonによる) が現在の作業ディレクトリの export_csv フォルダーにエクスポートされます。このスクリプトは、 dsbulk 呼び出しからの進行状況の出力をパイプ処理して stdoutします。各テーブルには、1 つ以上の CSV ファイルを含む独自のサブディレクトリがあります。大規模なデータベースでは、この手順に時間がかかる場合があります。

    手記:

    エクスポートされた CSV ファイルは、Cassandra DB データのバックアップとしても機能します。将来データを復元する必要がある場合に備えて、ファイルをアーカイブすることをお勧めします。

  4. export_csvフォルダーを、nsmigrationポッドが実行されているParagon Automationノードにコピーします。

    エクスポートしたファイルをノードの正しいディレクトリーにコピーします worker3

DeviceProfile と Cassandra DB の移行

  1. nsmigration タスクポッドから ns_data_migration.py -a -sp -dp スクリプトを実行します。完全なコマンド構文は ./ns_data_migration.py -a ns-app-server-ip -su root -sp ns-app-user-ssh-password -dh cassandra-db-host -du cassandra -dp cassandra-password -dcsv /opt/northstar/ns_db_migration/export_csv -pu postgres-user -pp postgres-password -ph postgres-host -po postgres-port -pah vip-of-ingress-controller-or-hostname-of-main-web-application -pau paragon-web-ui-login -pap paragon-web-ui-password -dr 1です。
    例えば:

    ns_data_migration.py スクリプトの実行中に、次のパラメーターを指定する必要があります。

    • -a APP, --app APP- アプリケーションサーバーのIPアドレスまたはホスト名
    • -su SSHUSER, --sshuser SSHUSER- SSH ユーザ名(デフォルトは root)
    • -sp SSHPASS, --sshpass SSHPASS- SSH パスワード
    • -so SSHPORT, --sshport SSHPORT- SSHポート(デフォルトは 22)
    • -du DBUSER, --dbuser DBUSER- カサンドラDBユーザー名(デフォルトは cassandra)
    • -dp DBPASS, --dbpass DBPASS—カサンドラDBのパスワード
    • -do DBPORT, --dbport DBPORT- カサンドラDBポート(デフォルトは 9042)
    • -dh DBHOST, --dbhost DBHOST- Cassandra DB のカンマ区切りホスト IP アドレス
    • -pu PGUSER, --pguser PGUSER- Postgres DB ユーザー名(デフォルトは northstar)
    • -dcsv DBCSV, --dbCsvPath DBCSV- カサンドラからエクスポートされた CSV データを含むパス
    • -pp PGPASS, --pgpass PGPASS—Postgres DB パスワード
    • -ph PGHOST, --pghost PGHOST- Postgres DB ホスト(デフォルトは atom-db.common)
    • -po PGPORT, --pgport PGPORT- Postgres DB ポート(デフォルトは 5432)
    • -pah PARAGONHOST, --paragonHost PARAGONHOST—Paragon Automation Web UIの仮想IP(VIP)アドレス
    • -pau PARAGONUSER, --paragonUser PARAGONUSER—Paragon Automation Web UIのユーザー名
    • -pap PARAGONPASSWORD, --paragonPassword PARAGONPASSWORD—Paragon Automation Web UIユーザーパスワード
    • -dr DISCOVERYRETRIES, --discoveryRetries DISCOVERYRETRIES- デバイス検出が再試行します(デフォルトは 2)。

      Paragon Automationが最初の試行でデバイスの検出に失敗した場合、DeviceProfileの移行に dr DISCOVERYRETRIES オプションを使用します。検出の失敗には、デバイスに到達できない、デバイスの資格情報が正しくないなど、複数の理由があります。誤った情報を持つデバイスを検出しても、Paragon Automationは正しい情報を持つデバイスを検出します。一度に複数のデバイスを検出するときに、デバイスのサブセットで部分的な障害が発生する可能性があります。失敗の正確な理由を判断するには、Paragon Automation Web UIの[ >ジョブの監視 ]ページを参照してください。

      dr オプションが 1 より大きい値に設定されている場合、検出が失敗すると、ns_data_migration.py スクリプトはすべてのデバイスの検出を再試行します。この試行は、既に検出されているデバイスには影響しません。ただし、失敗したデバイス検出の後続の試行でデバイスを正常に検出する可能性は最小限です。dr オプションの最大値をデフォルト値の 2 に設定することをお勧めします。ネットワーク内のデバイスが多すぎる場合は、値 1 を使用して不要な再試行を回避します。

    手記:

    Cassandra DBデータをNorthStarからParagon Automationに移行する場合、数百万行の大きなテーブルがあると、移行の進行が非常に遅くなり、時間がかかる場合があります。多くの場合、これらの大きなテーブルには、移行中に破棄できる履歴イベント データが含まれています。このデータの移行をスキップするには、'ns_data_migration.py' スクリプトの呼び出し中に '--dbSkipHistoricalData' フラグを手動で設定します。つまり、表1にリストされている履歴イベントテーブルのデータは、Paragon Automationでは利用できません。NorthStarインスタンスが削除されると、バックアップしないと、このデータは完全に失われます。

  2. デバイス プロファイル データを検証します。

    Paragon Automation Web UIにログインし 、[デバイスの設定]>に移動します。すべてのデバイスが検出され、存在することを確認します。また、構成情報が NorthStar デバイス プロファイルの情報と同じであることを確認します。

    デバイス検出の結果を表示するには、Paragon Automation Web UIの[ 監視>ジョブ ]ページに移動します。

  3. カサンドラDBのデータを確認します。
    ns_data_migration.py スクリプトのログ出力には、Cassandra からのデータの移行で問題が発生したかどうかが示されます。エクスポートされたCSVファイルに対してParagon Automationのデータを検証するスクリプトを実行することもできます。大規模なデータベースでは、これには長い時間がかかる場合があることに注意してください。 nsmigrationコンテナーから、次のコマンドを実行します。

    スクリプトは、各テーブル(「検証」で始まる行を参照)の(検証された行)/(チェックされた行)をstdoutおよび debug_migration.logに出力します。一部の行は、データがインポートされた後、検証される前に更新されている可能性があるため、「検証された行」が必ずしも「チェックされた行」と等しくない可能性があることに注意してください。エクスポートされた CSV ファイルは、移行が完了したら、関連するノードの /var/local/ns_db_migration/export_csv ディレクトリを削除するだけで削除できます。

(オプション)分析データの移行

アナリティクスをインストールしている場合は、次の手順を実行して、NorthStar ES DBからParagon Automation Influx DBにアナリティクスデータを移行します。
  1. nsmigration タスクポッドにログインし、import_es_data.py -aスクリプトを実行します。
    次の import_es_data.py スクリプトオプションを指定する必要があります。
    • 統計情報タイプ:デフォルトでは、インターフェイス、LSP(ラベルスイッチ パス)、リンク遅延の統計データをサポートします。[ --type ] オプションを使用して、特定の種類を選択できます。

    • ロールアップ タイプ - デフォルトでは、日単位と時間単位の期間がサポートされます。[ --rollup_type ] オプションを使用して、特定の種類を選択できます。

    • 移行スキーマ - ES DB から Influx DB スキーマへのマッピングは、 /opt/northstar/util/db/nsmigration/es_influx_mapping.json ファイルで定義されます。

    • ロールアップの経過時間 - デフォルトでは、過去 180 日間と 1000 日間のデータをそれぞれ毎時および日単位で取得します。[ --hourly_age ] オプションと [ --daily_age ] オプションを使用して、年齢を変更できます。

    • ETL パラレル ワーカー プロセス - デフォルトでは、4 つの ETL パラレル ワーカー プロセスを使用します。ワーカー プロセスは、 --wp オプションを使用して変更できます。

    • 実行時間 - スクリプトの実行時間は、データ量、日数、および ETL 並列ワーカー プロセスの数によって異なります。たとえば、4 人の ETL ワーカーが 1500 の移行率を使用する場合、次のようになります。

      • 180日毎時の25,000 LSP統計は5時間かかることがあります

      • 毎時180日の50,000 LSP統計は10時間かかることがあります

    スクリプト引数の詳細については、「 help 'import_es_data.py -h'」を参照してください。

  2. 次のコマンドを使用して、流入DBデータを確認します。
    • Influx DB で過去 30 日間のすべてのトンネル トラフィック データをクエリするには、dcscheduler ポッド内で /opt/pcs/bin/getTrafficFiles.py スクリプトを実行します。
    • Influx DB で過去 30 日間のすべてのエグレス インターフェイス トラフィック データをクエリするには、dcscheduler ポッド内で /opt/pcs/bin/getTrafficFiles.py スクリプトを実行します。

(オプション)NorthStar Planner のデータを移行する

Paragon AutomationのNorthStarアプリケーションサーバーファイルシステムに保存されているNorthStar Plannerモデルを使用する場合は、次の手順を使用してモデルをコピーします。
  1. NorthStarサーバーにログインします。
  2. scpを使用して、プランナーモデルが保存されているディレクトリ(/opt/northstar/data/specs)をParagon Automationプライマリノード(/root/ns_specs)にコピーします。例えば:
  3. Paragon Automation プライマリノードにログインします。
  4. kubectl コマンドを使用して、/root/ns_specs フォルダーを NorthStar Planner ポッドの /opt/northstar/data/specs にコピーします。例えば:
  5. NorthStar Planner モデルが NorthStar Planner ポッド内の /opt/northstar/data/specs/ns_specs にコピーされていることを確認します。