Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OpenStackへのvMXのインストール

このトピックでは、OpenStack環境にvMXインスタンスをインストールする方法をご紹介します。

vMXをインストールするためのOpenStack環境の準備

OpenStack コマンドを実行する前に、 openstackrc ファイルがソースであることを確認してください。

vMX をインストールするために OpenStack 環境を準備するには、以下のタスクを実行します。

中性子ネットワークの構築

vMX インスタンスを起動する前に、vMX で使用される neutron ネットワークを作成する必要があります。パブリックネットワークは、管理(fxp0)ネットワークに使用される中性子ネットワークです。WAN ネットワークは、vMX の WAN インターフェイスが追加された neutron ネットワークです。

ニュートロンネットワーク名を表示するには、 neutron net-list コマンドを使用します。

手記:

OpenStack の設定で必要なネットワークのタイプを特定し、作成する必要があります。

以下のコマンドは、パブリック・ネットワークを作成する方法の 1 つとして使用できます。

  • 例えば:

  • virtio の場合、WAN ネットワークを作成する方法の 1 つとして以下のコマンドを使用できます。

    例えば:

  • SR-IOV の場合、WAN ネットワークを作成する方法の 1 つとして、以下のコマンドを使用できます。

    例えば:

コントローラーノードの準備

vMX 用のコントローラーノードの準備

コントローラーノードを準備するには、次の手順を実行します。

  1. /etc/nova/nova.conf ファイルの scheduler_default_filters パラメーターを編集して、Huge Pages と CPU アフィニティーを有効にするようにコントローラーノードを設定します。次のフィルターが存在することを確認します。

    このコマンドを使用して、スケジューラ サービスを再起動します。

    • Red Hat の場合: systemctl restart openstack-nova-scheduler.service

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: service nova-scheduler restart

  2. 既定のクォータを更新します。
    手記:

    これらのデフォルト値をお勧めしますが、環境に適している場合は別の値を使用できます。既定のクォータに十分なリソースが割り当てられていることを確認します。

    nova quota-defaults コマンドで変更を確認します。

  3. ヒート パッケージが 5.0.1-6 以降であることを確認してください。本パッケージは rhel-7-server-openstack-8-rpms の一部です。

    rpm -qa | grep heatコマンドを使用してバージョンを確認します。

    このコマンドで heat パッケージを更新します。

    • Red Hat の場合: yum update openstack-heat-engine

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: apt-get install heat-engine

  4. lsb (redhat-lsb-core または lsb-release) と numactl パッケージがインストールされていることを確認します。
    • Red Hat の場合:

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合:

virtio インターフェイスのコントローラーノードの設定

virtio インターフェイスを設定するには、次のようにします。

  1. /etc/neutron/plugins/ml2/ml2_conf.ini ファイルの type_drivers パラメーターに vlan を追加して、VLAN メカニズムドライバーを有効にします。
  2. 次の行を追加して、ブリッジマッピングを /etc/neutron/plugins/ml2/ml2_conf.ini ファイルに追加します。

    例えば、以下の設定を使用して、OVS ブリッジ br-vlan にマッピングされた物理ネットワーク physnet1 のブリッジマッピングを追加します。

  3. 物理ネットワークに使用する VLAN 範囲を /etc/neutron/plugins/ml2/ml2_conf.ini ファイルで設定します。ここで、 physical-network-name は virtio WAN ネットワーク用に作成した neutron ネットワークの名前です。

    たとえば、物理ネットワーク physnet1 に使用される VLAN 範囲を構成するには、次の設定を使用します。

  4. neutron サーバーを再起動します。
    • Red Hat の場合: systemctl restart neutron-server

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: service neutron-server restart

  5. 物理ネットワークと virtio インターフェース (eth2) にマッピングされた OVS ブリッジを追加します。

    例えば、以下のコマンドでOVSブリッジ、br-vlan、eth2インターフェースを追加します。

SR-IOV インターフェイスのコントローラーノードの設定

手記:

SR-IOV インターフェイスが複数ある場合は、追加の SR-IOV インターフェイスごとに 1 つの専用の物理 10G インターフェイスが必要です。

手記:

SRIOV モードでは、ルーティングエンジン(RE)とパケット転送エンジン間の通信は、VLAN プロバイダーの OVS ネットワーク上の virtio インターフェイスを使用して有効になります。このため、特定の物理インターフェイスを VirtIO ネットワークと SR-IOV ネットワークの両方に含めることはできません。

SR-IOV インターフェイスを設定するには、次の手順に従います。

  1. /etc/neutron/plugins/ml2/ml2_conf.ini ファイルを編集して、sriovnicswitch をメカニズムドライバーとして追加し、物理ネットワークに使用する VLAN 範囲を追加します。

    たとえば、物理ネットワーク physnet2 に使用される VLAN 範囲を構成するには、次の設定を使用します。

    SR-IOV ポートをさらに追加する場合は、各物理ネットワークに使用する VLAN 範囲を(カンマで区切って)追加する必要があります。たとえば、2 つの SR-IOV ポートを構成する場合は、次の設定を使用します。

  2. /etc/neutron/plugins/ml2/ml2_conf_sriov.ini ファイルを編集して、PCI デバイスの詳細を追加します。
  3. 強調表示されている –-config-file /etc/neutron/plugins/ml2/ml2_conf_sriov.ini を neutron サーバーファイルに追加します。
    • Red Hat の場合:

      /usr/lib/systemd/system/neutron-server.service ファイルをハイライトされているように編集します。

      systemctl restart neutron-serverコマンドを使用して、サービスを再起動します。

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合:

      /etc/init/neutron-server.conf ファイルをハイライトされているように編集します。

      service neutron-server restartコマンドを使用してサービスを再起動します。

  4. SR-IOV デバイスの適切なスケジューリングを可能にするには、コンピューティング スケジューラが PciPassthroughFilter フィルターと共に FilterScheduler を使用する必要があります。

    コントローラーノードの /etc/nova/nova.conf ファイルで PciPassthroughFilter フィルターが設定されていることを確認します。

    スケジューラ サービスを再起動します。

    • Red Hat の場合: systemctl restart openstack-nova-scheduler

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: service nova-scheduler restart

コンピュートノードの準備

vMX用のコンピュートノードの準備

手記:

/etc/nova/nova.conf ファイルに config_drive_format=vfat パラメーターを含めることで、vMX インスタンスにメタデータを渡すようにコンピュートノードを設定する必要がなくなりました。

コンピュートノードを準備するには、次のようにします。

  1. ブート時および再起動時にヒュージ・ページをサポートするように各コンピュート・ノードを設定します。
    • Red Hat の場合: Huge Pages 設定を追加します。

      mount | grep bootコマンドを使用して、起動デバイス名を確認します。

    • Ubuntu (Junos OS リリース 17.2R1 以降) の場合: GRUB_CMDLINE_LINUX_DEFAULT パラメータの下の /etc/default/grub に Huge Pages 設定を追加します。

    再起動後、ヒュージ・ページが割り当てられていることを確認します。

    ヒュージページの数は、VFP のメモリー量、ヒュージページのサイズ、および VFP インスタンスの数によって異なります。ヒュージ・ページの数を計算するには: (memory-for-vfp / huge-pages-size) * number-of-vfp

    たとえば、12G のメモリと 2M のヒュージページサイズを使用して、パフォーマンスモードで 4 つの vMX インスタンス(4 つの VFP)を実行する場合、式で計算されるヒュージページの数は (12G/2M)*4 つまり 24576 になります。

    手記:

    Junos OS リリース 15.1F6 以降のリリースでは、パフォーマンス モードがデフォルトの動作モードとなっています。詳細については、「 パフォーマンス モードまたはライト モードの有効化」を参照してください。

    手記:

    コンピュートノードに十分な物理メモリがあることを確認します。これは、ヒュージ・ページに割り振られるメモリーの量より大きくなければなりません。これは、ヒュージ・ページを使用しない他のアプリケーションは、ヒュージ・ページに割り振られた後に残るメモリーの量によって制限されるためです。たとえば、24576 個の Huge Page と 2M の Huge Page サイズを割り当てる場合、Huge Pages には 24576*2M または 48G のメモリが必要です。

    vmstat -s コマンドを使用して、合計メモリーと使用メモリーの値を調べて、ヒュージ・ページを使用しない他のアプリケーションに残っているメモリーの量を確認できます。

  2. /etc/default/grub ファイルで IOMMU を有効にします。GRUB_CMDLINE_LINUX パラメーターの既存のテキストにintel_iommu=on文字列を追加します。

    grub ファイルを再生成します。

    • Red Hat の場合: grub2-mkconfig -o /boot/grub2/grub.cfg

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: update-grub

    コンピュートノードを再起動します。

  3. Virtio ネットワークのブリッジを追加し、physnet1 を設定します。

    たとえば、OVSブリッジ、 br-vlan が追加されます。(これは、上記のbridge_mappingsでコントローラに追加されたml2_conf.iniと同じ br-vlan です。このブリッジに、VM 間の Virtio 通信に使用できる eth2 インターフェイスを追加します。

    /etc/neutron/plugins/ml2/openvswitch_agent.ini に physnet1:br-vlan 文字列を追加します。

    neutron サービスを再起動します。

    • Redhat:

      systemctl restart neutron-openvswitch-agent.service

      systemctl restart openstack-nova-compute.service

    • Ubuntuの

      service nova-compute restart

      service neutron-plugin-openvswitch-agent restart

SR-IOV インターフェイス用の計算ノードの設定

手記:

SR-IOV インターフェイスが複数ある場合は、追加の SR-IOV インターフェイスごとに 1 枚の物理 10G イーサネット NIC カードが必要です。

SR-IOV インターフェイスを設定するには、次の手順に従います。

  1. 変更した IXGBE ドライバーをロードします。

    ドライバをコンパイルする前に、gccとmakeがインストールされていることを確認してください。

    • Red Hat の場合:

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合:

    デフォルトの IXGBE ドライバをアンロードし、変更した Juniper Networks ドライバをコンパイルし、変更した IXGBE ドライバをロードします。

    eth4 インターフェイスのドライバーのバージョンを確認します。

    たとえば、次の例では、コマンドはドライバーのバージョン (3.19.1) を表示します。

  2. 物理デバイス上に仮想機能(VF)を作成します。vMX は現在、各 SR-IOV インターフェイス(eth4 など)に対して 1 つの VF のみをサポートしています。

    各NICのVF数を指定します。次の行は、eth2 (最初の NIC) には VF がなく、eth4 (SR-IOV インターフェイスを持つ 2 番目の NIC) には 1 つの VF があることを指定します。

    VF が作成されたことを確認するために、 ip link show eth4 コマンドの出力には次の行が含まれます。

    インターフェイスが起動しており、SR-IOV トラフィックがインターフェイスを通過できることを確認するには、次のコマンドを実行して設定を完了します。

  3. SR-IOV エージェントをインストールします。
    • Red Hat の場合: sudo yum install openstack-neutron-sriov-nic-agent

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: sudo apt-get install neutron-plugin-sriov-agent

  4. 以下の行を追加して、物理デバイスマッピングを /etc/neutron/plugins/ml2/sriov_agent.ini ファイルに追加します。

    たとえば、次の設定を使用して、SR-IOV インターフェイス eth4 にマッピングされた物理ネットワーク physnet2 のブリッジ マッピングを追加します。

    SR-IOV ポートをさらに追加する場合は、物理ネットワークごとにブリッジ マッピングを追加する必要があります(カンマで区切ります)。たとえば、物理ネットワーク physnet3 に SR-IOV インターフェイス eth5 を追加する場合は、次の設定を使用します。

  5. SR-IOV エージェント サービス ファイルを編集して、強調表示されている –-config-file /etc/neutron/plugins/ml2/sriov_agent.ini を追加します。
    • Red Hat の場合:

      /usr/lib/systemd/system/neutron-sriov-nic-agent.service ファイルをハイライトされているように編集します。

      SR-IOV エージェントを有効にして起動します。

      systemctl status neutron-sriov-nic-agent.serviceコマンドを使用して、エージェントが正常に起動したことを確認します。

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合:

      /etc/init/neutron-plugin-sriov-agent.conf ファイルをハイライトされているように編集します。

      /etc/neutron/plugins/ml2/sriov_agent.ini に適切なパーミッションがあり、neutron がファイルのグループであることを確認してください。

      service neutron-plugin-sriov-agent start コマンドを使用して、SR-IOV エージェントを開始します。

      service neutron-plugin-sriov-agent statusコマンドを使用して、エージェントが正常に起動したことを確認します。

  6. /etc/nova/nova.conf ファイルを編集して、SR-IOV デバイスの PCI パススルー許可リストエントリを追加します。

    たとえば、このエントリは、物理ネットワーク physnet2 の SR-IOV インターフェイス eth4 のエントリを追加します。

    SR-IOV ポートをさらに追加する場合は、各 SR-IOV インターフェイスの PCI パススルー許可リストエントリを(カンマで区切って)追加する必要があります。たとえば、物理ネットワーク physnet3 に SR-IOV インターフェイス eth5 を追加する場合は、次の設定を使用します。

    コンピュート・ノード・サービスを再起動します。

    • Red Hat の場合: systemctl restart openstack-nova-compute

    • Ubuntu(Junos OS リリース 17.2R1 以降)の場合: service nova-compute restart

vMXのインストール

OpenStack 環境を準備したら、VCP および VFP VM 用の nova フレーバーと glance イメージを作成する必要があります。 スクリプトは、スタートアップ構成ファイルで提供される情報に基づいてフレーバーとイメージを作成します。

vMX 構成ファイルの設定

vMX の設定に必要なパラメータは、スタートアップ 構成ファイルで定義されています。

構成ファイルを設定するには、次の手順に従います。

  1. vMXページからvMX KVMソフトウェアパッケージをダウンロードし、パッケージを解凍します。

    tar xvf package-name

  2. ディレクトリをファイルの場所に変更します。

    cd package-location/openstack/scripts

  3. vmx.conf テキスト ファイルをテキスト エディタで編集し、1 つの vMX インスタンスのフレーバーを作成します。

    要件に基づいて、vMX 構成ファイルで次のパラメーターが正しく設定されていることを確認します。

    • re-flavor-name

    • pfe-flavor-name

    • vcpus

    • memory-mb

    パラメータの詳細については、「 vMX 設定ファイル パラメータの指定 」を参照してください。

    vMX スタートアップ コンフィギュレーション ファイルの例

    以下は、OpenStack の vMX スタートアップ 構成ファイルのサンプルです。

vMX 設定ファイルパラメータの指定

vMX の設定に必要なパラメータは、スタートアップ 構成ファイル(scripts/vmx.conf)で定義されます。スタートアップ 構成ファイルは、フレーバーの作成に使用されるファイルを生成します。異なる vcpus または memory-mb パラメータで新しいフレーバを作成するには、新しいフレーバを作成する前に、対応する re-flavor-name または pfe-flavor-name パラメータを変更する必要があります。

構成をカスタマイズするには、以下のタスクを実行します。

ホストの構成

ホストを設定するには、 HOST に移動し、次のパラメータを指定します。

  • virtualization-type—動作モード。 openstackする必要があります。

  • compute—(オプション)vMX インスタンスを実行するコンピューティング ノードの名前(カンマ区切りのリスト)。このパラメーターを指定する場合は、有効なコンピュート・ノードでなければなりません。このパラメーターが指定されている場合、フレーバーで起動された vMX インスタンスは、指定されたコンピューティングノードでのみ実行されます。

    このパラメーターが指定されていない場合、nova hypervisor-list コマンドの出力は、vMX インスタンスを実行するコンピュートノードのリストを提供します。

VCP VM の構成

VCP VM を構成するには、フレーバー名を指定する必要があります。

手記:

OpenStack は同じ名前で複数のエントリーを作成できるため、 re-flavor-name パラメーターには一意の値を推奨します。

VCP VM を設定するには、 CONTROL_PLANE に移動し、次のパラメータを指定します。

  • re-flavor-name- nova フレーバーの名前。

  • vcpus—VCP の vCPU の数。最小値は 1 です。

    手記:

    この値を変更する場合は、スクリプトを実行してフレーバーを作成する前に、 re-flavor-name 値を変更する必要があります。

  • memory-mb—VCP のメモリ量。最小値は 4 GB です。

    手記:

    この値を変更する場合は、スクリプトを実行してフレーバーを作成する前に、 re-flavor-name 値を変更する必要があります。

VFP VM の設定

VFP VM を構成するには、フレーバー名を指定する必要があります。要件に基づいて、メモリと vCPU の数を変更することができます。最小ハードウェア要件については 、最小ハードウェア要件 を参照してください。

VFP VM を設定するには、 FORWARDING_PLANE に移動し、次のパラメータを指定します。

  • pfe-flavor-name- nova フレーバーの名前。

  • memory-mb—VFP のメモリ量。最小は 12 GB (パフォーマンス モード) と 4 GB (ライト モード) です。

    手記:

    この値を変更する場合は、スクリプトを実行してフレーバーを作成する前に、 pfe-flavor-name 値を変更する必要があります。

  • vcpus—VFP の vCPU の数。最小値は 7 (パフォーマンス モード) と 3 (ライト モード) です。

    手記:

    指定する vCPU が 7 未満の場合、VFP は自動的にライト モードに切り替わります。

    手記:

    この値を変更する場合は、スクリプトを実行してフレーバーを作成する前に、 pfe-flavor-name 値を変更する必要があります。

OpenStackフレーバーの作成

VCP および VFP のフレーバーを作成するには、vMX 起動構成ファイル(vmx.conf)でスクリプトを実行する必要があります。

OpenStack フレーバーを作成するには、以下を行います。

  1. スタートアップ 構成ファイルで vmx_osp_create_flavor.py を実行し、フレーバーを作成する vmx_osp_flavors.sh ファイルを生成します。

    ./vmx_osp_create_flavor.py vmx.conf

  2. vmx_osp_flavors.shを実行してフレーバーを作成します。

    sh vmx_osp_flavors.sh

VCP および VFP の vMX イメージのインストール

VCP および VFP の vMX OpenStack glance イメージをインストールするには、 vmx_osp_images.sh スクリプトを実行します。このスクリプトは、VCP イメージを qcow2 形式で、VFP ファイルを vmdk 形式で追加します。

VCP および VFP イメージをインストールするには、次の手順に従います。

  1. vMXページからvMX KVMソフトウェアパッケージをダウンロードし、パッケージを解凍します。

    tar xvf package-name

  2. 圧縮されていないvMXパッケージのソフトウェアイメージの場所を確認します。 「vMX パッケージの内容」を参照してください。

    ls package-location/images

  3. ディレクトリを vMX OpenStack スクリプト ファイルの場所に変更します。

    cd package-location/openstack/scripts

  4. vmx_osp_images.sh スクリプトを実行して、glance イメージをインストールします。

    sh vmx_osp_images.sh vcp-image-name vcp-image-location vfp-image-name vfp-image-location

    手記:

    パラメータは、この順序で指定する必要があります。

    • vcp-image-name- 視線イメージの名前。

    • vcp-image-location—VCP を起動するための junos-vmx-x86-64*.qcow2 ファイルへの絶対パス。

    • vfp-image-name- 視線イメージの名前。

    • vfp-image-location- VFP を起動するための vFPC-*.img ファイルへの絶対パス。

たとえば、次のコマンドは、VCP イメージを /var/tmp/junos-vmx-x86-64-17.1R1.8.qcow2 ファイルから re-test としてインストールし、VFP イメージを /var/tmp/vFPC-20170117.img ファイルから fpc-test としてインストールします。

sh vmx_osp_images.sh re-test /var/tmp/junos-vmx-x86-64-17.1R1.8.qcow2 fpc-test /var/tmp/vFPC-20170117.img

glance イメージを表示するには、 glance image-list コマンドを使用します。

vMX インスタンスの起動

vMX インスタンスを起動するには、以下のタスクを実行します。

Junos OSの初期設定の変更

vMX インスタンスを起動すると、 package-location/openstack/vmx-components/vms/vmx_baseline.conf にあるJunos OS構成ファイルがロードされます。この設定を変更する必要がある場合は、vMX を起動する前にこのファイルに変更を加えてください。

手記:

独自の vmx_baseline.conf ファイルを作成する場合、またはファイルを移動する場合は、 package-location/openstack/vmx-components/vms/re.yaml が正しいパスを参照していることを確認してください。

vMXインスタンスの起動

vMX インスタンスを作成して起動するには、次の手順に従います。

  1. 設定の package-location/openstack/1vmx.env 環境ファイルでこれらのパラメーターを変更します。環境ファイルは、Junos OS リリース 17.4R1 以降の YAML 形式です。
    • net_id1—WAN ポートに使用されている既存の neutron ネットワークのネットワーク ID。 neutron net-list コマンドを使用して、ネットワーク ID を表示します。

    • public_network—管理(fxp0)ポートに使用される既存の neutron ネットワークのネットワーク ID。 neutron net-list | grep public コマンドを使用して、ネットワーク ID を表示します。

    • fpc_img- このパラメータを linux-img に変更します。VFP の視線イメージの名前。スクリプトを実行して vMX イメージをインストールするときに指定した vfp-image-name パラメーターと同じです。

    • vfp_image- VFP の視線イメージの名前。スクリプトを実行して vMX イメージをインストールするときに指定された vfp-image-name パラメーターと同じです(Junos OS リリース 17.3R1 以前で適用可能)。

    • fpc_flav- このパラメータを linux-flav に変更します。VFP の nova フレーバーの名前。vMX構成ファイルで指定された pfe-flavor-name パラメーターと同じです。

    • vfp_flavor- VFP の nova フレーバーの名前。vMX構成ファイルで指定された pfe-flavor-name パラメーターと同じです(Junos OSリリース17.3R1以前に適用されます)。

    • junos_flav—VCP の nova フレーバーの名前。vMX構成ファイルで指定された re-flavor-name パラメーターと同じです。

    • vcp_flavor—VCP の nova フレーバーの名前。vMX構成ファイルで指定されている re-flavor-name パラメーターと同じです(Junos OSリリース17.3R1以前に適用されます)。

    • junos_img—VCP の視線イメージの名前。スクリプトを実行して vMX イメージをインストールするときに指定した vcp-image-name パラメーターと同じです。

    • vcp_image—VCP の視線イメージの名前。スクリプトを実行してvMXイメージをインストールするときに指定した vcp-image-name パラメータと同じです(Junos OSリリース17.3R1以前で適用可能)。

    • project_name- 任意のプロジェクト名。すべてのリソースは、この名前をプレフィックスとして使用します。

    • gateway_ip—ゲートウェイ IP アドレス。

  2. heat stack-create –f 1vmx.yaml –e 1vmx.env vmx-name コマンドで vMX インスタンスを起動します。

    この設定例では、1つのWANポートと1つのFPCを持つ1つのvMXインスタンスを起動します。

  3. vMX インスタンスが heat stack-list | grep vmx-name コマンドで作成されたことを確認します。
  4. nova-list コマンドを使用して、VCP VM と VFP VM が存在することを確認します。
  5. nova get-vnc-console nova-id novnc コマンドを使用して VCP または VFP VM にアクセスします。ここで、nova-idnova-list コマンド出力に表示されるインスタンスの ID です。
手記:

コマンドを使用してホスト サーバーを再起動する前に、vMX インスタンスを request system halt シャットダウンする必要があります。