検索

7.8. SR-IOV オーバークラウドのデプロイ

download PDF

SR-IOV 環境で Red Hat OpenStack Platform (RHOSP) オーバークラウドを設定する最後の手順は、openstack overcloud deploy コマンドを実行することです。このコマンドに、作成したさまざまなオーバークラウドテンプレートと環境ファイルをすべて入力します。

前提条件

  • アンダークラウドホストへのアクセスと stack ユーザーの認証情報。
  • このセクションの前の手順にリストされているすべてのステップを実行し、overcloud deploy コマンドの入力として使用するさまざまな heat テンプレートおよび環境ファイルをすべてアセンブルしました。

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. stackrc アンダークラウド認証情報ファイルを入手します。

    $ source ~/stackrc
  3. openstack overcloud deploy コマンドを実行します。

    openstack overcloud deploy コマンドへの入力を特定の順序でリストすることが重要です。一般的なルールは、デフォルトの heat テンプレートファイルを最初に指定し、次にカスタム環境ファイルと、デフォルトプロパティーのオーバーライドなどのカスタム設定を含むカスタムテンプレートを指定することです。

    次の順序で、openstack overcloud deploy コマンドに入力を追加します。

    1. オーバークラウド上の SR-IOV ネットワークの仕様が含まれるカスタムネットワーク定義ファイル (例: network-data.yaml)。

      詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの ネットワーク定義ファイル設定のオプション を参照してください。

    2. RHOSP director が OVS ハードウェアオフロード環境をデプロイするために使用する Controller および ComputeOvsHwOffload ロールを含むロールファイル。

      例: roles_data_compute_sriov.yaml

      詳細は、「SR-IOV のロールとイメージファイルの生成」 を参照してください。

    3. オーバークラウドネットワークのプロビジョニングからの出力ファイル。

      例: overcloud-networks-deployed.yaml

      詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのネットワーク定義の設定とプロビジョニング を参照してください。

    4. オーバークラウド仮想 IP のプロビジョニングからの出力ファイル。

      例: overcloud-vip-deployed.yaml

      詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのネットワーク仮想 IP の設定とプロビジョニング を参照してください。

    5. ベアメタルノードのプロビジョニングからの出力ファイル。

      たとえば、overcloud-baremetal-deployed.yaml です。

      詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのベアメタルノードのプロビジョニング を参照してください。

    6. コンテナーイメージを取得する場所と保存方法を決定するためにディレクターが使用するイメージファイル。

      例: overcloud_images.yaml

      詳細は、「SR-IOV のロールとイメージファイルの生成」 を参照してください。

    7. 環境が使用する Networking サービス (neutron) メカニズムドライバーとルータースキームの環境ファイル:

      • ML2/OVN

        • 分散仮想ルーティング (DVR): neutron-ovn-dvr-ha.yaml
        • 集中型仮想ルーティング: neutron-ovn-ha.yaml
      • ML2/OVS

        • 分散仮想ルーティング (DVR): neutron-ovs-dvr.yaml
        • 集中型仮想ルーティング: neutron-ovs.yaml
    8. メカニズムドライバーに応じた SR-IOV の環境ファイル:

      • ML2/OVN

        • neutron-ovn-sriov.yaml
      • ML2/OVS

        • neutron-sriov.yaml

          注記

          OVS-DPDK 環境もあり、OVS-DPDK インスタンスと SR-IOV インスタンスを同じノードに配置する場合は、デプロイメントスクリプトに次の環境ファイルを含めます。

          • ML2/OVN

            neutron-ovn-dpdk.yaml

          • ML2/OVS

            neutron-ovs-dpdk.yaml

    9. 以下の設定を含む 1 つ以上のカスタム環境ファイル:

      • SR-IOV ノード用の PCI パススルーデバイス。
      • SR-IOV ノードのロール固有のパラメーター。
      • SR-IOV 環境のデフォルト設定値をオーバーライドします。

        例: sriov-overrides.yaml

        詳細は以下を参照してください。

      • 「SR-IOV 用の PCI パススルーデバイスの設定」
      • 「ロール固有のパラメーターと設定のオーバーライドの追加」

        サンプルの openstack overcloud deploy コマンドからのこの抜粋は、DVR を使用する SR-IOV、ML2/OVN 環境のコマンド入力の適切な順序を示しています。

        $ openstack overcloud deploy \
        --log-file overcloud_deployment.log \
        --templates /usr/share/openstack-tripleo-heat-templates/ \
        --stack overcloud \
        -n /home/stack/templates/network_data.yaml \
        -r /home/stack/templates/roles_data_compute_sriov.yaml \
        -e /home/stack/templates/overcloud-networks-deployed.yaml \
        -e /home/stack/templates/overcloud-vip-deployed.yaml \
        -e /home/stack/templates/overcloud-baremetal-deployed.yaml \
        -e /home/stack/templates/overcloud-images.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/services/\
        neutron-ovn-dvr-ha.yaml
        -e /usr/share/openstack-tripleo-heat-templates/environments/services/\
        neutron-ovn-sriov.yaml \
        -e /home/stack/templates/sriov-overrides.yaml
  4. openstack overcloud deploy コマンドを実行します。

    オーバークラウドの作成が完了すると、RHOSP director は、オーバークラウドへのアクセスに役立つ詳細を提供します。

検証

  1. director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのデプロイメントの検証 のステップを実行します。
  2. NIC が適切にパーティション分割されていることを確認するには、次の手順を実行します。

    1. tripleo-admin としてオーバークラウドの Compute ノードにログインし、VF の数を確認します。

      この例では、p4p1p4p2 の両方の VF の数は 10 です。

      $ sudo cat /sys/class/net/p4p1/device/sriov_numvfs
      
      10
      
      $ sudo cat /sys/class/net/p4p2/device/sriov_numvfs
      
      10
    2. OVS 接続を表示します。

      $ sudo ovs-vsctl show

      出力例

      以下のような出力が表示されるはずです。

      b6567fa8-c9ec-4247-9a08-cbf34f04c85f
          Manager "ptcp:6640:127.0.0.1"
              is_connected: true
          Bridge br-sriov2
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port phy-br-sriov2
                  Interface phy-br-sriov2
                      type: patch
                      options: {peer=int-br-sriov2}
              Port br-sriov2
                  Interface br-sriov2
                      type: internal
          Bridge br-sriov1
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port phy-br-sriov1
                  Interface phy-br-sriov1
                      type: patch
                      options: {peer=int-br-sriov1}
              Port br-sriov1
                  Interface br-sriov1
                      type: internal
          Bridge br-ex
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port br-ex
                  Interface br-ex
                      type: internal
              Port phy-br-ex
                  Interface phy-br-ex
                      type: patch
                      options: {peer=int-br-ex}
          Bridge br-tenant
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port br-tenant
                  tag: 305
                  Interface br-tenant
                      type: internal
              Port phy-br-tenant
                  Interface phy-br-tenant
                      type: patch
                      options: {peer=int-br-tenant}
              Port dpdkbond0
                  Interface dpdk0
                      type: dpdk
                      options: {dpdk-devargs="0000:18:0e.0"}
                  Interface dpdk1
                      type: dpdk
                      options: {dpdk-devargs="0000:18:0a.0"}
          Bridge br-tun
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port vxlan-98140025
                  Interface vxlan-98140025
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.37"}
              Port br-tun
                  Interface br-tun
                      type: internal
              Port patch-int
                  Interface patch-int
                      type: patch
                      options: {peer=patch-tun}
              Port vxlan-98140015
                  Interface vxlan-98140015
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.21"}
              Port vxlan-9814009f
                  Interface vxlan-9814009f
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.159"}
              Port vxlan-981400cc
                  Interface vxlan-981400cc
                      type: vxlan
                      options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="152.20.0.229", out_key=flow, remote_ip="152.20.0.204"}
          Bridge br-int
              Controller "tcp:127.0.0.1:6633"
                  is_connected: true
              fail_mode: secure
              datapath_type: netdev
              Port int-br-tenant
                  Interface int-br-tenant
                      type: patch
                      options: {peer=phy-br-tenant}
              Port int-br-ex
                  Interface int-br-ex
                      type: patch
                      options: {peer=phy-br-ex}
              Port int-br-sriov1
                  Interface int-br-sriov1
                      type: patch
                      options: {peer=phy-br-sriov1}
              Port patch-tun
                  Interface patch-tun
                      type: patch
                      options: {peer=patch-int}
              Port br-int
                  Interface br-int
                      type: internal
              Port int-br-sriov2
                  Interface int-br-sriov2
                      type: patch
                      options: {peer=phy-br-sriov2}
              Port vhu4142a221-93
                  tag: 1
                  Interface vhu4142a221-93
                      type: dpdkvhostuserclient
                      options: {vhost-server-path="/var/lib/vhost_sockets/vhu4142a221-93"}
          ovs_version: "2.13.2"
    3. SR-IOV コンピュートノードに tripleo-admin としてログインし、Linux ボンドを確認します。

      $ cat /proc/net/bonding/<bond_name>

      出力例

      以下のような出力が表示されるはずです。

      Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
      
      Bonding Mode: fault-tolerance (active-backup)
      Primary Slave: None
      Currently Active Slave: eno3v1
      MII Status: up
      MII Polling Interval (ms): 0
      Up Delay (ms): 0
      Down Delay (ms): 0
      Peer Notification Delay (ms): 0
      
      Slave Interface: eno3v1
      MII Status: up
      Speed: 10000 Mbps
      Duplex: full
      Link Failure Count: 0
      Permanent HW addr: 4e:77:94:bd:38:d2
      Slave queue ID: 0
      
      Slave Interface: eno4v1
      MII Status: up
      Speed: 10000 Mbps
      Duplex: full
      Link Failure Count: 0
      Permanent HW addr: 4a:74:52:a7:aa:7c
      Slave queue ID: 0
  3. OVS ボンドをリストします。

    $ sudo ovs-appctl bond/show

    出力例

    以下のような出力が表示されるはずです。

    ---- dpdkbond0 ----
    bond_mode: balance-slb
    bond may use recirculation: no, Recirc-ID : -1
    bond-hash-basis: 0
    updelay: 0 ms
    downdelay: 0 ms
    next rebalance: 9491 ms
    lacp_status: off
    lacp_fallback_ab: false
    active slave mac: ce:ee:c7:58:8e:b2(dpdk1)
    
    slave dpdk0: enabled
      may_enable: true
    
    slave dpdk1: enabled
      active slave
      may_enable: true
  4. NovaPCIPassthrough を使用して VF をインスタンスに渡した場合は、SR-IOV インスタンスをデプロイしてテストを行います。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.