Linux KVMでの展開

前提条件とガイドライン

Linux KVM で Nexus ダッシュボード クラスタを展開する前に、次の作業を行う必要があります。

  • ファクターから KVM が拡張性とサービス要件をサポートしていることを確認します。

    クラスタ フォーム ファクタに基づいて、拡張性とサービス サポートおよび共同ホストは異なります。Nexus ダッシュボード キャパシティ プラン二ング ツールを使用して、仮想フォーム ファクタが展開要件を満たすことを確認できます。

  • 展開の概要と要件 に記載されている一般的な前提条件を確認して完了します。

  • 展開予定のサービスのリリース ノートに説明されている追加の前提条件を確認し、条件を満たすようにしてください。

  • 十分なシステム リソースをもつことを確認します。

    表 1. 導入要件
    オーケストレータ バージョン 要件

    リリース 2.3.x

    • KVM の展開は、Nexus Dashboard ファブリック コントローラおよび Nexus Dashboard Orchestrator サービスでのみサポートされます。

      各サービスに必要な OS とライブラリの特定のバージョンを以下に示します。

    • Nexus Dashboard ファブリック コントローラの場合:

      • CentOS 7.9 または Red Hat Enterprise Linux 8.6 に展開する必要があります。

      • Kernel および KVM のサポートされるバージョンが必要です。

        • CentOS 7.9 の場合、Kernel バージョン 3.10.0-957.el7.x86_64 および KVM バージョン libvirt-4.5.0-23.el7_7.1.x86_64

        • RHEL 8.6 の場合、Kernel バージョン 4.18.0-372.9.1.el8.x86_64 および KVM バージョン libvert 8.0.0

    • Nexus Dashboard Fabric Orchestratorの場合:

      • CentOS 7.7 に展開する必要があります。

      • Kernel および KVM のサポートされるバージョンが必要です。

        • Kernel 3.10.0-1062.el7.x86_64

        • KVM libvirt 4.5.0

    • 16 vCPU

    • 64 GB の RAM

    • 550 GBのディスク

      各ノードには専用のディスク パーティションが必要です。

    • ディスクの I/O 遅延は 20 ミリ秒以下である必要があります。

      I/O レイテンシを確認するには:

      1. テスト ディレクトリを作成します。

        test-data のような名前にします。

      2. 次のコマンドを実行します。

        # fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
      3. コマンドの実行後に、fsync/fdatasync/sync_file_range セクションの 99.00th=[<value>] が 20 ミリ秒未満であることを確認します。

    • 各 Nexus Dashboard ノードは異なる KVM ハイパーバイザに展開することを推奨します。

Linux KVM での Nexus ダッシュボードの展開

ここでは、Linux KVM で Cisco Nexus ダッシュボード クラスタを展開する方法について説明します。

始める前に

手順


ステップ 1

Cisco Nexus ダッシュボード イメージをダウンロードします。

  1. [ソフトウェア ダウンロード(Software Download)] ページを参照します。

    https://software.cisco.com/download/home/286327743/type/286328258

  2. [Nexus ダッシュボード ソフトウェア] をクリックします。

  3. 左側のサイドバーから、ダウンロードする Nexus ダッシュボードのバージョンを選択します。

  4. Linux KVM の Cisco Nexus ダッシュボード イメージをダウンロードします(nd-dk9.<version>.qcow2)。

ステップ 2

ノードをホストする Linux KVM サーバーにイメージをコピーします。

scp を使用してイメージをコピーできます。次に例を示します。

# scp nd-dk9.<version>.qcow2 root@<kvm-host-ip>:/home/nd-base

次の手順は、イメージを /home/nd-base ディレクトリにコピーしたことを前提としています。

ステップ 3

最初のノードに必要なディスクイメージを作成します。

ダウンロードしたベース qcow2 イメージのスナップショットを作成し、そのスナップショットをノードの VM のディスク イメージとして使用します。また、ノードごとに2番目のディスクイメージを作成する必要があります。

  1. KVM ホストに root ユーザとしてログインします。

  2. ノードのスナップショット用のディレクトリを作成します。

    次の手順は、/home/nd-node1 ディレクトリにスナップショットを作成することを前提としています。

    # mkdir -p /home/nd-node1/
    # cd /home/nd-node1
  3. スナップショットを作成します。

    次のコマンドで、/home/nd-base//nd-dk9.<version>.qcow2 を以前のステップで作成したベース イメージの場所に置換します。

    # qemu-img create -f qcow2 -b /home/nd-base/nd-dk9.<version>.qcow2 /home/nd-node1/nd-node1-disk1.qcow2

    (注)  

     

    RHEL 8.6 で展開する場合は、宛先スナップショットの形式を定義するための追加のパラメータも指定する必要があります。その場合は、上記のコマンドを次のように更新します。

    # qemu-img create -f qcow2 -b /home/nd-base/nd-dk9.2.1.1a.qcow2 /home/nd-node1/nd-node1-disk1.qcow2 -F qcow2
  4. ノードの追加ディスクイメージを作成します。

    各ノードには 2 つのディスクが必要です。ベースの Nexus ダッシュボードqcow2イメージのスナップショットと、2 番目の 500GB ディスクです。

    # qemu-img create -f qcow2 /home/nd-node1/nd-node1-disk2.qcow2 500G

ステップ 4

前のステップを繰り返して、2 番目と 3 番目のノードのディスク イメージを作成します。

次の手順に進む前に、次の準備が必要です。

  • 1 つ目のノードの場合、2 つのディスクイメージがある /home/nd-node1/ ディレクトリ:

    • /home/nd-node1/nd-node1-disk1.qcow2 は、ステップ 1でダウンロードしたベース qcow2 イメージのスナップショットです。

    • /home/nd-node1/nd-node1-disk2.qcow2。これは、作成した新しい 500GB のディスクです。

  • 2 つ目のノードの場合、2つのディスクイメージがある/ home / nd-node2 /ディレクトリ。

    • /home/nd-node2/nd-node2-disk1.qcow2 は、ステップ 1 でダウンロードした基本 qcow2 イメージのスナップショットです。

    • /home/nd-node2/nd-node2-disk2.qcow2。これは、作成した新しい 500GB のディスクです。

  • 3 つ目のノードの場合、2 つのディスク イメージがある /home/nd-node3/ ディレクトリ。

    • /home/nd-node1/nd-node3-disk1.qcow2。ステップ 1 でダウンロードしたベース qcow2 イメージのスナップショットです。

    • /home/nd-node1/nd-node3-disk2.qcow2。これは、作成した新しい 500GB のディスクです。

ステップ 5

最初のノードの VM を作成します。

  1. KVM コンソールを開き、[新しい仮想マシン(New Virtual Machine)] をクリックします。

    コマンド ラインから virt-manager コマンドを使用して KVM コンソールを開くことができます。

  2. [新しい VM(New VM)] 画面で、[既存のディスク イメージのインポート(import existing disk image)] オプションを選択し、[転送(Forward)] をクリックします。

  3. [既存のストレージ パスを指定(Provide existing storage path)]フィールドで [参照(Browse)] をクリックし、nd-node1-disk1.qcow2 ファイルを選択します。

    各ノードのディスクイメージは、それぞれのディスクパーティションに保存することを推奨します。

  4. OS タイプバージョンに対して [Generic] を選択し、[転送] をクリックします。

  5. 64GB のメモリと 16 個の CPU を指定し、[転送(Forward)] をクリックします。

  6. 仮想マシンの名前(例:nd-node1)を入力し、[インストール前に構成をカスタマイズする(Customize configuration before install)]オプションをオンにします。次に、[完了(Finish)] をクリックします。

    (注)  

     

    ノードに必要なディスクとネットワークカードをカスタマイズできるようにするには、[インストール前に構成をカスタマイズする] チェックボックスをオンにする必要があります。

    [VMの詳細]ウィンドウが開きます。

[VMの詳細]ウィンドウで、NICのデバイスモデルを変更します。

  1. NIC <mac> を選択します。

  2. [デバイス モデル] で、[e1000] を選択します。

  3. [ネットワーク ソース(Network Source)] で、ブリッジ デバイスを選択し、「mgmt」ブリッジの名前を指定します。

VMの詳細ウィンドウで、2番目のNICを追加します。

  1. [ハードウェアを追加(Add Hardware)] をクリックします。

  2. [新しい仮想ハードウェアの追加(Add new virtual hardware)] ウィンドウで、[ネットワーク] を選択します。

  3. [ネットワーク ソース(Network Source)] で、ブリッジ デバイスを選択し、作成した「データ」ブリッジの名前を指定します。

  4. デフォルトの MAC アドレス の値のままにします。

  5. [デバイス モデル] で、[e1000] を選択します。

[VMの詳細(VM details)] ウィンドウで、2 番目のディスク イメージを追加します。

  1. [ハードウェアを追加(Add Hardware)] をクリックします。

  2. [新しい仮想ハードウェアの追加] 画面で、[ストレージ] を選択します。

  3. [カスタム ストレージの選択または作成(Select or create custom storage)] を選択し、[管理(Manage)]をクリックして、作成した nd-node1-disk2.qcow2 ファイルを選択します。

  4. [終了(Finish)] をクリックして 2 番目のディスクを追加します。

最後に、[インストールの開始(Begin Installation)] をクリックして、ノードのVMの作成を終了します。

ステップ 6

前のステップを繰り返して、2 番目と 3 番目のノードの VM を作成し、それからすべての VM を開始します。

ステップ 7

ノードのコンソールのいずれかを開き、ノードの基本情報を設定します。

  1. いずれかのキーを押して、初期設定を開始します。

    初回セットアップユーティリティの実行を要求するプロンプトが表示されます。

    [ OK ] Started atomix-boot-setup.
           Starting Initial cloud-init job (pre-networking)...
           Starting logrotate...
           Starting logwatch...
           Starting keyhole...
    [ OK ] Started keyhole.
    [ OK ] Started logrotate.
    [ OK ] Started logwatch.
    
    Press any key to run first-boot setup on this console...
  2. admin パスワードを入力して確認します。

    このパスワードは、rescue-user SSH ログインおよび初期 GUI パスワードに使用されます。

    Admin Password:
    Reenter Admin Password:
  3. 管理ネットワーク情報を入力します。

    Management Network:
      IP Address/Mask: 192.168.9.172/24
      Gateway: 192.168.9.1
  4. 最初のノードのみ、「クラスタ リーダー」として指定します。

    クラスタ リーダー ノードにログインして、設定を完了し、クラスタの作成を完了します。

    Is cluster leader?: y
  5. 入力した譲歩をレビューし、確認します。

    入力した情報を変更するかどうかを尋ねられます。すべてのフィールドが正しい場合は、n を選択して続行します。入力した情報を変更する場合は、y を入力して基本設定スクリプトを再起動します。

    Please review the config
    Management network:
      Gateway: 192.168.9.1
      IP Address/Mask: 192.168.9.172/24
    Cluster leader: yes
    
    Re-enter config? (y/N): n

ステップ 8

前の手順を繰り返して、2 番目と 3 番目のノードの初期情報を構成します。

最初のノードの設定が完了するのを待つ必要はありません。他の 2 つのノードの設定を同時に開始できます。

(注)  

 

2 番目と 3 番目のノードを展開する手順は同じですが、クラスタ リーダーではないことを示す必要がある点が異なります。

ステップ 9

初期ブートストラップ プロセスを待機して、すべてのノードで完了します。

管理ネットワーク情報を入力して確認すると、最初のノード(クラスタ リーダー)初期設定でネットワーキングが設定され、UI が表示されます。この UI を使用して、他の 2 つのノードを追加し、クラスタの展開を完了します。

Please wait for system to boot: [#########################] 100%
System up, please wait for UI to be online.

System UI online, please login to https://192.168.9.172 to continue.

ステップ 10

ブラウザを開き、https://<node-mgmt-ip> に移動して、GUI を開きます。

残りの設定ワークフローは、ノードの GUI の 1 つから実行します。展開したノードのいずれか 1 つを選択して、ブートストラッププロセスを開始できます。他の 2 つのノードにログインしたり、これらを直接構成したりする必要はありません。

前の手順で入力したパスワードを入力し、[セットアップの開始(Begin Setup)] をクリックします。

ステップ 11

[クラスタの詳細(Cluster Details)] を入力します。

初期セットアップ ウィザードの [クラスタの詳細(Cluster Details)] 画面で、次の情報を入力します。

  1. Nexus ダッシュボード クラスタの [クラスタ名(Cluster Name)] を入力します。

  2. [+ NTP ホストの追加(+Add NTP Host)] をクリックして、1 つ以上の NTP サーバを追加します。

    IP アドレスを指定する必要があります。完全修飾ドメイン名 (FQDN) はサポートされていません。

    IP アドレスを入力したら、緑色のチェックマーク アイコンをクリックして保存します。

  3. [+DNS プロバイダの追加(+Add DNS Provider)] をクリックして、1 つ以上の DNS サーバを追加します。

    IP アドレスを入力したら、緑色のチェックマーク アイコンをクリックして保存します。

  4. [プロキシ サーバ(Proxy Server)] を指定します。

    Cisco クラウドへの直接接続を持たないクラスタの場合、プロキシ サーバを設定して接続を確立することをお勧めします。これにより、ファブリック内の非準拠のハードウェアおよびソフトウェアにさらされるリスクを軽減できます。

    プロキシ構成をスキップする場合は、フィールドの横にある情報 (i) アイコンをクリックしてから、[スキップ(Skip)] をクリックします。

  5. (オプション) プロキシ サーバで認証が必要な場合は、[プロキシに必要な認証(Authentication required for Proxy)][はい(Yes)] に変更し、ログイン資格情報を指定します。

  6. (オプション) [詳細設定(Advanced Settings)] カテゴリを展開し、必要に応じて設定を変更します。

    詳細設定では、次の設定を行うことができます。

    • [+DNS 検索ドメインを追加(+Add DNS Search Domain)] をクリックして、1 つ以上の検索ドメインを指定します。

      IP アドレスを入力したら、緑色のチェックマーク アイコンをクリックして保存します。

    • カスタム App NetworkService Network を提供します。

      アプリケーション オーバーレイ ネットワークは、Nexus ダッシュボードで実行されるアプリケーションのサービスで使用されるアドレス空間を定義します。このフィールドには、デフォルトの 172.17.0.1/16 値が事前に入力されています。

      サービス ネットワークは、Nexus ダッシュボードとそのプロセスで使用される内部ネットワークです。このフィールドには、デフォルトの 100.80.0.0/16 値が事前に入力されています。

      アプリケーションおよびサービスネットワークについては、このドキュメントの前の 前提条件とガイドライン の項で説明します。

  7. [次へ(Next)] をクリックして続行します。

ステップ 12

[ノードの詳細(Node Details)] 画面で、ノードの情報を入力します。

  1. 最初のノードの横にある [編集(Edit)]ボタンをクリックします。

  2. [パスワード(Password)] フィールドに、このノードのパスワードを入力し、[検証(Validate)] をクリックします。

    これにより、ノードの [シリアル番号(Serial Number)] と [管理ネットワーク(Management Network)] の情報が自動入力されます。

  3. ノードの名前を入力します。

  4. ノードのデータ ネットワーク情報を入力します。

    管理ネットワーク情報には、最初のノードに指定した情報があらかじめ入力されています。

    データネットワークの IP アドレス/ネットマスク(たとえば、 172.31.140.58/24)とゲートウェイ(たとえば、172.31.140.1)を指定する必要があります。オプションで、ネットワークの VLAN ID を指定することもできます。ほとんどの導入では、[VLAN ID] フィールドを空白のままにできます。

  5. (オプション)管理およびデータ ネットワークの IPv6 情報を指定します。

    Nexus ダッシュボードは、管理およびデータネットワークの IPv4 またはデュアルスタック IPv4/IPv6 のいずれかをサポートします。

    (注)  

     

    IPv6 情報を指定する場合は、このクラスタブートストラップのプロセス中に行う必要があります。IPv4 スタックのみを使用してクラスタを展開し、後で IPv6 情報を追加する場合は、クラスタを再度展開する必要があります。

    クラスタ内のすべてのノードは、IPv4スタックまたはデュアル IPv4/IPv6スタックのいずれかで設定する必要があります。

  6. (任意)必要に応じて、データ ネットワークの BGP を有効にします

    NDFC ファブリックを使用した Nexus ダッシュボード Insights などの一部のサービスで必要な永続的な IP 機能には、BGP 構成が必要です。この機能については、Nexus Dashboard ユーザーガイドの「永続的な IP アドレス」セクションで詳しく説明されています。

    (注)  

     

    BGP をこの時点で、またはクラスタの展開後に Nexus ダッシュボード GUI で有効にすることができます。

    BGP を有効にする際、次の情報も入力する必要があります。

    • このノードの ASN(BGP 自律システム番号)。

      すべてのノードに同じ ASN を構成することも、ノードごとに異なる ASN を構成することもできます。

    • ピアの IPv4 または IPv6 アドレスとピアの ASN を含む BGP ピアの詳細

  7. [Save]をクリックして、変更内容を保存します。

ステップ 13

[ノードの詳細(Node Details)] 画面で、[ノードの追加(Add Node)] をクリックして、クラスタに 2 番目のノードを追加します。

[ノードの詳細(Node Details)] ウィンドウが開きます。

  1. [展開の詳細(Deployment Details)] セクションで、ノードの VM を展開するときに構成したレスキューユーザーのノードの管理 IP アドレスパスワードを入力し、[検証(Verify)] をクリックします。

    これにより、ノードの [シリアル番号(Serial Number)] と [管理ネットワーク(Management Network)] の情報が自動入力されます。

  2. ノードの名前を入力します。

  3. ノードのデータ ネットワーク IP アドレスとゲートウェイを指定します。

    [管理ネットワーク(Management Network)] 情報には、前のサブステップで指定した IP アドレスとログイン情報に基づいてノードから取得した情報が事前に入力されます。

    データネットワークの IP アドレス/ネットマスク(たとえば、 172.31.141.58/24)とゲートウェイ(たとえば、172.31.141.1)を指定する必要があります。オプションで、ネットワークの VLAN ID を指定することもできます。ほとんどの導入では、[VLAN ID] フィールドを空白のままにできます。

  4. (任意)管理およびデータネットワークのIPv6情報を指定します。

    Nexus ダッシュボードは、管理およびデータネットワークの IPv4 またはデュアルスタック IPv4/IPv6 のいずれかをサポートします。

    (注)  

     

    IPv6 情報を提供する場合は、クラスタ ブートストラップ プロセス中に行う必要があります。IPv4 スタックのみを使用してクラスタを展開し、後で IPv6 情報を追加する場合は、クラスタを再度展開する必要があります。

    クラスタ内のすべてのノードは、IPv4スタックまたはデュアル IPv4/IPv6スタックのいずれかで設定する必要があります。

  5. (任意)必要に応じて、データ ネットワークの BGP を有効にします

  6. [保存 (Save)]をクリックして、変更内容を保存します。

ステップ 14

前の手順を繰り返して、3番目のノードを追加します。

ステップ 15

[ノードの詳細(Node Details)] 画面で、[次へ(Next)] をクリックして続行します。

クラスタ内の 3 つのノードすべての情報を入力したら、ブートストラッププロセスの次の画面に進みます。

ステップ 16

[確認(Confirmation)] 画面で設定情報を確認し、[構成(Configure)] をクリックしてクラスタを作成します。

ノードのブート ストラップとクラスタの起動中に、全体的な進捗状況と各ノードの個々の進捗状況がUIに表示されます。ブートストラップの進行状況が表示されない場合は、ブラウザでページを手動で更新し、ステータスを更新してください。

クラスタが形成され、すべてのサービスが開始されるまでに最大 30 分かかる場合があります。クラスタの設定が完了すると、ページが Nexus ダッシュボード GUI にリロードされます。

ステップ 17

クラスタが健全であることを検証します。

クラスタが形成され、すべてのサービスが開始されるまでに最大 30 分かかる場合があります。

3 つすべてのノードの準備ができたら、SSH を使用して任意の 1 つのノードにログインし、次のコマンドを実行してクラスタの状態を確認できます。

  1. クラスタが稼働していることを確認します。

    任意のノードにログインし、acs health コマンドを実行することで、クラスタ展開の現在のステータスを確認できます。

    クラスタが収束している間、次の出力が表示されることがあります。

    $ acs health
    k8s install is in-progress
    $ acs health
    k8s services not in desired state - [...]
    $ acs health
    k8s: Etcd cluster is not ready
    クラスタが稼働している場合は、次の出力が表示されます。
    $ acs health
    All components are healthy
  2. Nexus ダッシュボード GUI にログインします。

    クラスタが使用可能になったら、ノードの管理 IP アドレスのいずれかを参照してアクセスできます。管理者ユーザのデフォルト パスワードは、Nexus ダッシュボード クラスタの最初のノードに選択したレスキュー ユーザ パスワードと同じです。