Linux KVMでの展開

Linux KVM で Nexus Dashboard クラスタを展開するための前提条件と注意事項

Linux KVM で Nexus Dashboard クラスタの展開に進む前に、KVM が次の前提条件を満たしている必要があり、次の注意事項に従う必要があります。

  • KVM フォーム ファクタが拡張性要件をサポートする必要があります。

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

  • 前提条件とガイドライン に記載されている一般的な前提条件を確認して完了します。

  • Nexus Dashboard VM に使用される CPU ファミリが AVX 命令セットをサポートしている必要があります。

  • KVM には十分なシステムリソースが必要です。また、各ノードには専用のディスクパーティションが必要です。詳細については、「システム リソースを理解する」を参照してください。

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

    Linux KVM ストレージ デバイスの I/O 遅延の確認」を参照してください。

  • KVM の導入は、NX- OS および ACI ファブリックのみならず、SAN の展開でサポートされています。

  • Red Hat Enterprise Linux 8.8、8.10、または 9.4 に展開する必要があります。

  • OS のリブート時にNexus Dashboard を稼働させるには、RHEL ホスト オペレーティング システムの fstab設定 ファイルに UUID を追加する必要があります。これが、RHEL オペレーティング システムの再起動時にNexus Dashboard を保持できる唯一の方法です。

  • また、 Nexus Dashboad の展開に必要な次のネットワーク ブリッジをホスト レベルで構成する必要があります。

    • 管理網ブリッジ(mgmt-bridge): Nexus Dashboad を管理するための外部ネットワーク。

    • データ網ブリッジ(data-bridge): Nexus Dashboad 内でクラスタリングを形成するために使用される内部ネットワーク。

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

Linux KVM ストレージ デバイスの I/O 遅延の確認

Linux KVM に Nexus Dashboard クラスタを展開する場合、KVM のストレージ デバイスの遅延は 20 ミリ秒未満である必要があります。

Linux KVM ストレージ デバイスの I/O 遅延を確認するには、次の手順を実行します。

手順


ステップ 1

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

たとえば、 test-dataという名前のディレクトリを作成します。

ステップ 2

フレキシブル I/O テスター(FIO)を実行します。

# 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 ミリ秒未満であることを確認します。


システム リソースを理解する

Linux KVM に Nexus ダッシュボード クラスターを展開する場合、KVM には十分なシステム リソースが必要です。仮想 Nexus Dashboard KVM では複数のフォーム ファクタがサポートされており、各ノードに必要なシステム リソースの量はフォーム ファクタによって異なります。

表 1. ノード当たりのリソース要件

フォーム ファクタ

vCPU の数

RAM サイズ

ディスク サイズ

1 ノードKVM(アプリ)

16

64 GB

550 GB

1 ノードKVM(データ)

32

128 GB

3 TB

3 ノードKVM(アプリ)

16

64 GB

550 GB

3 ノードKVM(データ)

32

128 GB

3 TB

Linux KVM での Nexus ダッシュボードの展開の手順を実行するときに、フォーム ファクタに関する上記の情報を知っておく必要があります

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

各 KVM ホストで次の構成を行います。

  1. /etc/libvirt/qemu.conf を編集、 Nexus Dashboard の展開に使用する予定のストレージの所有権に基づいて、ユーザーとグループが正しく設定されていることを確認します。

    これは、デフォルトの libvirtdとは異なるディスク ストレージ パスを使用する場合にのみ必要です。

  2. /etc/libvirt/libvirt.conf を編集、 uri_default のコメントを外します。

  3. ルートから systemctl restart libvirtd コマンドを使用して設定を更新した後、 libvirtd サービスを再起動します。

ステップ 4

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

システム リソースを理解する で説明されているとおり、2 つのディスク イメージを作成するには、合計 550 GB または 3 TB の SSD ストレージが必要です。

  • ダウンロードした QCOW2 イメージに基づいてディスクを起動します。

  • データ ディスク:

ステップ 5

KVM ホストに ルート ユーザーとしてログインし、各ノードで次の手順を実行します。

  1. ストレージ ディスク(raw ディスクまたは LVM)をディレクトリ /opt/cisco/ndにマウントします。

  2. ルート ディレクトリの下に /root/create_vm.sh として次のスクリプトを作成します。

    (注)  

     

    この情報を手動で入力する場合は、これらの行の後に空白がないことを確認します。

    システム リソースを理解するに記載されている情報に基づき、次のとおり、スクリプトを作成します。

    • 1ノードまたは 3ノードKVM(アプリ)フォームファクタの場合:

      #!/bin/bash -ex
      
      # Configuration
      # Name of Nexus Dashboard Virtual machine
      name=nd1
      
      # Path of Nexus Dashboard QCOW2 image.
      nd_qcow2=/home/nd-base/nd-dk9.4.1.1i.qcow2
      
      # Disk Path to storage Boot and Data Disks.
      data_disk=/opt/cisco/nd/data
      
      # Management Network Bridge
      mgmt_bridge=mgmt-bridge
      
      # Data Network bridge
      data_bridge=data-bridge
      
      # Data Disk Size
      data_size=500G
      
      # CPU Cores
      cpus=16
      
      # Memory in units of MB.
      memory=65536
      
      # actual script
      rm -rf $data_disk/boot.img
      /usr/bin/qemu-img convert -f qcow2 -O raw $nd_qcow2 $data_disk/boot.img
      rm -rf $data_disk/disk.img
      /usr/bin/qemu-img create -f raw $data_disk/disk.img $data_size
      virt-install \
      --import \
      --name $name \
      --memory $memory \
      --vcpus $cpus \
      --os-type generic \
      --osinfo detect=on,require=off \
      --check path_in_use=off \
      --disk path=${data_disk}/boot.img,format=raw,bus=virtio \
      --disk path=${data_disk}/disk.img,format=raw,bus=virtio \
      --network bridge=$mgmt_bridge,model=virtio \
      --network bridge=$data_bridge,model=virtio \
      --console pty,target_type=serial \
      --noautoconsole \
      --autostart
    • 1ノードまたは 3ノードKVM(データ)フォームファクタの場合:

      #!/bin/bash -ex
      
      # Configuration
      # Name of Nexus Dashboard Virtual machine
      name=nd1
      
      # Path of Nexus Dashboard QCOW2 image.
      nd_qcow2=/home/nd-base/nd-dk9.4.1.1i.qcow2
      
      # Disk Path to storage Boot and Data Disks.
      data_disk=/opt/cisco/nd/data
      
      # Management Network Bridge
      mgmt_bridge=mgmt-bridge
      
      # Data Network bridge
      data_bridge=data-bridge
      
      # Data Disk Size
      data_size=3072G
      
      # CPU Cores
      cpus=32
      
      # Memory in units of MB.
      memory=131072
      
      # actual script
      rm -rf $data_disk/boot.img
      /usr/bin/qemu-img convert -f qcow2 -O raw $nd_qcow2 $data_disk/boot.img
      rm -rf $data_disk/disk.img
      /usr/bin/qemu-img create -f raw $data_disk/disk.img $data_size
      virt-install \
      --import \
      --name $name \
      --memory $memory \
      --vcpus $cpus \
      --os-type generic \
      --osinfo detect=on,require=off \
      --check path_in_use=off \
      --disk path=${data_disk}/boot.img,format=raw,bus=virtio \
      --disk path=${data_disk}/disk.img,format=raw,bus=virtio \
      --network bridge=$mgmt_bridge,model=virtio \
      --network bridge=$data_bridge,model=virtio \
      --console pty,target_type=serial \
      --noautoconsole \
      --autostart

ステップ 6

以前のステップを繰り返し、2 番目と 3 番目のノードを展開して、すべての 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 this the 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 つのノードにログインしたり、これらを直接構成したりする必要はありません。

前の手順で入力したパスワードを入力し、[ログイン(Login)] をクリックします。

ステップ 11

[クラスタのブリングアップ(Cluster Bringup) ] ウィザードの [基本情報(Basic Information)] ページに、必要な情報を入力します。

  1. [クラスタ名(Cluster Name)] には、Nexus Dashboard クラスタの名前を入力します。

    クラスタ名は、 RFC-1123 の要件に従う必要があります。

  2. [Nexus Dashboard の実装タイプの選択(Nexus Dashboard Implementation type)]で、LAN] または [SAN] を選択して、 [次へ(Next)]をクリックします。

ステップ 12

[ノードの詳細(Node Details)] ページで、最初のノードの情報を更新します。

前の手順の初期ノード構成時に現在ログインしているノードの管理ネットワークと IP アドレスを定義しましたが、他のプライマリノードを追加し、クラスタを作成する進む前に、ノードのデータ ネットワーク情報も指定する必要があります。

  1. クラスタ接続 について、クラスタが L3 HAモードで展開されている場合は、BGP を選択します。それ以外の場合は、 L2を選択します。

    テレメトリで使用される永続的な IP アドレス機能には、BGP 構成が必要です。この機能については、BGP 構成と永続的な IP アドレス と『Cisco Nexus Dashboard ユーザーガイド』の「永続的な IP アドレス」セクションで詳しく説明されています。

    (注)  

     

    BGP をこの時点で、またはクラスタの展開後に Nexus ダッシュボード GUI で有効にすることができます。BGP が構成されている場合は、残りのすべてのノードで BGP を構成する必要があります。ノードのデータネットワークに異なるサブネットがある場合は、ここで BGP を有効にする必要があります。

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

    ノードの[シリアル番号(Serial Number)][管理ネットワーク(Management Network)]情報、および[タイプ(Type)]が自動的に入力されます。ただし、他の情報は入力する必要があります。

  3. [名前(Name)]に、サービス ノードのノード名を入力します。

    ノードの 名前 はホスト名として設定されるため、 RFC-1123 の要件に従う必要があります。

    (注)  

     

    [名前(Name)]フィールドが編集できない場合には、CIMC の検証を再度実行して、この問題を修正してください。

  4. [タイプ(Type)]で、 [プライマリ(Primary)]を選択します。

    クラスタの最初のノードは [プライマリ(Primary)] に設定する必要があります。より大規模なスケールを有効にする必要がある場合は、後の手順でセカンダリ ノードを追加します。

  5. [データ ネットワーク(Data Network)] エリアで、ノードのデータ ネットワークを入力します。

    データ ネットワークの IP アドレス、ネットマスク、およびゲートウェイを入力します。オプションで、ネットワークの VLAN ID を指定することもできます。構成に VLAN が不要な場合は、 [VLAN ID] フィールドを空白のままにします。データ接続BGP を選択した場合は、 ASNを入力します。

    前のページで IPv6 機能を有効にした場合は、IPv6 アドレス、ネットマスク、およびゲートウェイも入力する必要があります。

    (注)  

     

    IPv6 情報を提供する場合は、クラスタ ブートストラップ プロセス中に行う必要があります。後で IP アドレス構成を変更するには、クラスタを再展開する必要があります。

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

  6. クラスタ接続BGP を選択した場合は、 [BGP ピアの詳細(BGP peer details)] 領域で、ピアの IPv4 アドレスとASNを入力します。

    [+ IPv4 BGP ピアの追加(+ Add IPv4 BGP peer)] をクリックして、ピアを追加できます。

    前のページで IPv6 機能を有効にした場合は、ピアの IPv6 アドレスと ASN も入力する必要があります。

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

ステップ 13

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

単一ノード クラスタを展開する場合は、この手順をスキップします。

  1. [展開の詳細(Deployment Details)] エリアで、2 番目のノードに [管理 IP アドレス(Management IP Address)] および [パスワード(Password)] を指定します。

    ノードの初期構成手順で、管理ネットワーク情報とパスワードを定義しました。

  2. [検証(Validate)] をクリックして、ノードへの接続を確認します。

    接続が検証されると、ノードのシリアル番号管理ネットワーク情報が自動的に入力されます。

  3. ノードの [名前(Name)] を入力します。

  4. [タイプ(Type)] ドロップダウンから [プライマリ(Primary)] を選択します。

    クラスタの最初の 3 つのノードは [プライマリ( Primary)] に設定する必要があります。より大規模なスケールを有効にする必要がある場合は、後の手順でセカンダリ ノードを追加します。

  5. [データ ネットワーク(Data Network)] エリアで、ノードのデータ ネットワークを提供します。

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

    前の画面で IPv6 機能を有効にした場合は、IPv6 アドレス、ネットマスク、およびゲートウェイも入力する必要があります。

    (注)  

     

    IPv6 情報を提供する場合は、クラスタ ブートストラップ プロセス中に行う必要があります。後で IP 構成を変更するには、クラスタを再展開する必要があります。

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

  6. (オプション)クラスタが L3 HA モードで展開されている場合は、データ ネットワークの [BGP を有効にする(Enable BGP)] をオンにします。

    永続 IP アドレス機能には BGP 設定が必要です。この機能については、BGP 構成と永続的な IP アドレス と『Cisco Nexus Dashboard ユーザーガイド』の「永続的な IP アドレス」セクションで詳しく説明されています。

    (注)  

     

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

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

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

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

    • 純粋な IPv6 の場合、このノードのルータ ID

      ルータ ID は、1.1.1.1 などの IPv4 アドレスである必要があります。

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

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

  8. クラスタの最後の(3 番目の)プライマリ ノードでこの手順を繰り返します。

ステップ 14

[ノードの詳細(Node Details)] ページで、入力した情報を確認してから、[次へ(Next)]をクリックします。

ステップ 15

クラスタの展開モードを選択します。

  1. [永続的サービスIP/プールの追加] をクリックして、必要な永続的IPアドレスを指定します。

    永続 IP アドレスの詳細については、Nexus Dashboardの 永続 IP アドレスのセクションを参照してください:

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

ステップ 16

[サマリー(Summary)] 画面で設定情報を見直して確認し、[保存(Save)] をクリックしてクラスタを構築します。

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

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

ステップ 17

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

クラスタが使用可能になったら、ノードの管理 IP アドレスのいずれかを参照してアクセスできます。admin ユーザーのデフォルト パスワードは、最初のノードに選択した rescue-user のパスワードと同じです。この間、UI は上部に「サービスのインストールが進行中です。Nexus Dashboard の設定タスクは現在無効になっています」という意味のバナーを表示します。

すべてのクラスタが展開され、すべてのサービスが開始されたら [ホーム(Home)] > [概要(Overview)]ページの 異常レベル(Anomaly Level) でクラスタが正常であることを確認できます。

または、SSH を使用し、rescue-user として、ノード展開中に入力したパスワードを使っていずれかのノードにログインし、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

(注)  

 

場合によっては、ノードの電源を再投入(電源をオフにしてから再度オン)すると、この段階でスタックが停止することがある可能性があります。

deploy base system services

これは、pND(物理 Nexus Dashboard)クラスタの再起動後のノードの etcd の問題が原因です。

この問題を解決するには、影響を受けるノードで acs reboot clean コマンドを入力します。

ステップ 18

(オプション) Cisco Nexus DashboardクラスターをCisco Intersightに接続、可視性と利点を強化します。詳細な手順については、 「Cisco Intersightの操作」 を参照してください。

ステップ 19

Nexus Dashboardを展開した後、設定情報については、このリリースの コレクションページ を参照してください。


次のタスク

次のタスクは、ファブリックとファブリック グループを作成することです。 Cisco Nexus Dashboardのコレクション ページ にある、このリリースの 「ファブリックとファブリック グループの作成」の記事を参照してください。