3.4. SR-IOV 対応の OpenDaylight のインストール
OpenDaylight は、Single Root Input/Output Virtualization (SR-IOV) 対応のコンピュートノードと共にデプロイすることができます。このデプロイメントでは、コンピュートノードは、SR-IOV の専用ノードで稼働する必要があり、OVS をベースとする nova インスタンスを混在させてはなりません。単一の OpenDaylight デプロイメント内で OVS と SR-IOV のコンピュートノードの両方をデプロイすることは可能です。
このシナリオでは、カスタムの SR-IOV コンピュートロールを使用してこの種のデプロイメントを行います。
SR-IOV のデプロイメントでは、neutron SR-IOV エージェントを使用して、Virtual Function (VF) を設定する必要があります。これらの機能は、デプロイ時にコンピュートインスタンスに直接渡されて、そこでネットワークポートとして機能します。VF はコンピュートノード上のホスト NIC から派生するので、デプロイメントを開始する前に、ホストのインターフェイスに関する情報が必要となります。
3.4.1. SR-IOV コンピュートロールの準備 リンクのコピーリンクがクリップボードにコピーされました!
カスタムロールでの OpenDaylight のインストール と同じ方法に従って、SR-IOV コンピュートノード用のカスタムロールを作成し、デフォルトのコンピュートロールが OVS ベースの nova インスタンスに対応する一方で、SR-IOV ベースのインスタンスを作成できるようにする必要があります。
作業を開始する前に
- カスタムロールでの OpenDaylight のインストール の章を参照してください。
手順
デフォルトのロールファイルを新規ディレクトリーにコピーします。元のファイルは、バックアップとして保管してください。
mkdir ~/roles cp /usr/share/openstack-tripleo-heat-templates/roles/* ~/roles
$ mkdir ~/roles $ cp /usr/share/openstack-tripleo-heat-templates/roles/* ~/roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~/roles
ディレクトリーに新しいComputeSriov.yaml
ファイルを作成して、以下のロールの説明を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存します。
NeutronSriovAgent
およびNeutronSriovHostConfig
のサービスをデフォルトのコンピュートロールから削除して、情報を roles_data.yaml に保存します。- OS::TripleO::Services::NeutronSriovHostConfig - OS::TripleO::Services::NeutronSriovAgent
- OS::TripleO::Services::NeutronSriovHostConfig - OS::TripleO::Services::NeutronSriovAgent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV 対応の OpenDaylight のコンピュートで OpenStack オーバークラウドのデプロイに使用する新規ロールファイルを生成します。
openstack overcloud roles generate --roles-path ~/roles -o ~/roles_data.yaml Controller Compute ComputeSriov
$ openstack overcloud roles generate --roles-path ~/roles -o ~/roles_data.yaml Controller Compute ComputeSriov
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルレジストリーを作成します。
openstack overcloud container image prepare --namespace=192.168.24.1:8787/rhosp13 --prefix=openstack- --tag=2018-05-07.2 -e /home/stack/templates/environments/services-docker/neutron-opendaylight.yaml -e /home/stack/templates/environments/services-docker/neutron-opendaylight-sriov.yaml --output-env-file=/home/stack/templates/overcloud_images.yaml --roles-file /home/stack/templates/roles_data.yaml
openstack overcloud container image prepare --namespace=192.168.24.1:8787/rhosp13 --prefix=openstack- --tag=2018-05-07.2 -e /home/stack/templates/environments/services-docker/neutron-opendaylight.yaml -e /home/stack/templates/environments/services-docker/neutron-opendaylight-sriov.yaml --output-env-file=/home/stack/templates/overcloud_images.yaml --roles-file /home/stack/templates/roles_data.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. SR-IOV エージェントサービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
SR-IOV 対応の OpenDaylight をデプロイするには、neutron-opendaylight.yaml
ファイルのデフォルトのパラメーターを上書きする必要があります。/usr/share/openstack-tripleo-heat-templates
にある標準の SR-IOV 環境ファイルと、neutron-opendaylight.yaml
環境ファイルを使用することができます。ただし、元のファイルは編集しないのが適切なプラクティスです。代わりに、元の環境ファイルを複製して、その複製したファイル内でパラメーターを変更してください。
または、変更するパラメーターのみを指定する新規環境ファイルを作成して、両方のファイルをデプロイメントに使用することができます。カスタマイズされた OpenDaylight をデプロイするには、デプロイメントコマンドに両方のファイルを渡します。後で指定する環境ファイルが前の設定を上書きするので、これらは正しい順序でデプロイメントコマンドに含める必要があります。正しい順序は、neutron-opendaylight.yaml
が最初で、neutron-opendaylight-sriov.yaml
が後になります。
OpenDaylight と SR-IOV をデフォルト設定でデプロイする場合には、Red Hat で提供している neutron-opendaylight-sriov.yaml
を使用することができます。パラメーターを変更または追加する必要がある場合には、デフォルトの SR-IOV 環境ファイルのコピーを作成して、その新規作成されたファイルを編集してください。
カスタマイズされた neutron-opendaylight-sriov.yaml
ファイルの例を以下に示します。
補足情報
neutron-opendaylight-sriov.yaml
ファイルでは、以下のオプションを設定することができます。以下の表には、各オプションについての説明と、SR-IOV 機能を有効化するために必要な設定を記載します。
|
SR-IOV 用の PCI パススルーを使用できるようにします。このパラメーターは、環境ファイル内でコメント解除して、 |
|
Nova のデフォルトフィルターに PCI パススルーフィルターを指定できるようにします。このパラメーターは必須で、 |
| neutron の論理ネットワークをホストのネットワークインターフェイスにマッピングします。neutron が仮想ネットワークを物理ポートにバインドできるようにするには、このパラメーターを指定する必要があります。 |
|
1 つのホストのネットワークインターフェイス用に作成する VF の数。構文: |
| PCI パススルーでの使用を許可する nova の PCI デバイスのホワイトリストを一覧形式で設定します。以下に例を示します。 NovaPCIPassthrough: - vendor_id: "8086" product_id: "154c" address: "0000:05:00.0" physical_network: "datacentre"
特定のハードウェア属性の代わりに単に論理デバイス名を使用することもできます。 NovaPCIPassthrough: - devname: "ens20f2" physical_network: "datacentre"
|
3.4.3. SR-IOV 対応の OpenDaylight のインストール リンクのコピーリンクがクリップボードにコピーされました!
作業を開始する前に
- アンダークラウドをインストールします。詳しくは、アンダークラウドのインストール を参照してください。
- オーバークラウドコンテナーイメージへのリンクのある環境ファイルを作成します。詳しくは、オーバークラウド用の OpenDaylight 環境ファイルの準備 を参照してください。
- カスタムロールで SR-IOV 対応の OpenDaylight を設定するためのロールファイルを作成します。詳しくは、SR-IOV コンピュートロールの準備 を参照してください。
手順
-r
の引数を使用してデプロイメントコマンドを実行し、カスタムロールファイルと OpenDaylight で SR-IOV 機能を有効化するのに必要な環境ファイルを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
デプロイのコマンドで先に指定する環境ファイルは、そのコマンドで後に指定する環境ファイルによって上書きされます。指定する環境ファイルの順序に注意を払って、パラメーターが誤って上書きされないようにする必要があります。
変更するパラメーターのみの設定する最小限の環境ファイルを作成して、デフォルトの環境ファイルと組み合わせることにより、一部のパラメーターを上書きすることができます。
補足情報
-r
オプションは、インストール時にロールの定義を上書きします。-r <roles_data>.yaml
-r <roles_data>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - カスタムロールには、インストール時に追加の ironic ノードが必要です。