ネットワーク機能仮想化 (NFV) のプランニングガイド

Red Hat OpenStack Platform 10

Red Hat OpenStack Platform 10 での NFV のプランニング

OpenStack Documentation Team

概要

本ガイドは、Red Hat OpenStack Platform 10 への NFV の実装をプランニングする際に役立ちます。また、本書には、NFV 対応の Red Hat OpenStack Platform 10 を正しく設定、インストールできるようにするための情報が含まれます。

第1章 はじめに

ネットワーク機能仮想化 (NFV: Network Functions Virtualization) とは、通信事業者 (CSP) が従来のプロプライエタリーハードウェアの範囲を超えて、運用コストを抑えつつ、効率性および敏捷性を向上するのに役立つソフトウェアベースのソリューションです。

NFV の概念に関する俯瞰的な情報は、『ネットワーク機能仮想化 (NFV) の製品ガイド』を参照してください。

Red Hat OpenStack Platform 10 director での SR-IOV および OVS-DPDK 設定に関する情報は『ネットワーク機能仮想化 (NFV) の設定ガイド』を参照してください。

第2章 ソフトウェア要件

2.1. ソフトウェアのアーキテクチャー

OpenStack NFV Reference Arch 422691 1116 JCS

NFV プラットフォームには以下のコンポーネントが含まれます。

  • Virtualized Network Functions (VNF): ルーター、ファイアウォール、ロードバランサー、ブロードバンドのゲートウェイ、モバイルパケットのプロセッサー、サービス提供ノード、シグナリング、場所サービスなどのネットワーク機能のソフトウェア実装。
  • NFV Infrastructure (NFVi): インフラストラクチャーを構成する物理リソース (コンピュート、ストレージ、ネットワーク) および仮想化層。このネットワークには、仮想マシン間、ホスト全体でパケットを転送するためのデータパスが含まれます。これにより、基盤のハードウェアの情報を考慮せずに VNF をインストールできます。NFVi は、NFV スタックの基盤を形成します。NFVi は、マルチテナントをサポートし、Virtual Infrastructure Manager (VIM) で管理されます。Enhanced Platform Awareness (EPA) により、低レベルの CPU および NIC アクセラレーション機能が VNF に公開され、Red Hat Openstack Platform は仮想マシンのパケット転送のパフォーマンス (スループット、レイテンシー、ジッター) を向上することができます。
  • NFV Management and Orchestration (MANO): VNF のライフサイクル全体で必要とされる全サービス管理タスクにフォーカスする管理およびオーケストレーション層。MANO の主要な目的は、オペレーターが顧客に提供するネットワーク機能のサービス定義、自動化、エラーの相関、監視、ライフサイクルを物理インフラストラクチャーから切り離せるようにすることです。このような切り離しを行うには、Virtual Network Function Manager (VNFM) が提供する管理層が追加で必要になります。VNFM は、直接対話するか、VFN ベンダーが提供する Element Management System (EMS) を使用して、仮想マシンのライフサイクルや VNF を管理します。MANO が定義するコンポーネントで他に重要なのは、NFVO として知られるオーケストレーターです。NFVO は、一番上にあるオペレーション/ビジネスサポートシステム (OSS/BSS) や、一番下にある VNFM など、さまざまなデータベースやシステムにインターフェースを提供します。NFVO は、顧客向けの新規サービスを構築する場合には、VNFM (VNF Manager) に対して VNF のインスタンス化をトリガーするかを尋ねます (これにより、複数の仮想マシンが作成される場合があります)。
  • オペレーション/ビジネスサポートシステム (OSS/BSS: Operations/Business Support System): オペレーションサポートや請求など必要不可欠なビジネス機能アプリケーションを提供します。OSS/BSS は、NFV に適応する必要があり、レガシーシステムと新規の MANO コンポーネントを統合しています。BSS システムは、サービスサブスクリプションをベースにポリシーを設定して、レポートと請求を管理します。
  • システム管理、自動化、ライフサイクル管理: NFVi プラットフォームのインフラストラクチャーコンポーネントやライフサイクルのシステム管理、自動化を管理します。

2.2. サポートされている構成

Red Hat OpenStack Platform 10 は、director を使用した SR-IOV および OVS-DPDK のインストール向けの NFV デプロイメントをサポートしています。Red Hat OpenStack Platform 10 director で利用可能なコンポーザブルロールを使用して、カスタムのデプロイメントロールを作成できます。今回のリリースではサポートが制限されていますが、ハイパーコンバージドインフラストラクチャー (HCI) が提供されており、分散型の NFV 向けにコンピュートノードと Red Hat Ceph Storage ノードを同じ場所に配置することができます。HCI のパフォーマンスを向上するために、CPU ピニングを使用します。HCI モデルでは、NFV のユースケースにおいてより効率的な管理を行うことができます。また、今回のリリースでは、テクノロジープレビュー機能として OpenDaylight および Real-Time KVM が提供されています。OpenDaylight とは、Software-Defined Network (SDN) デプロイメントに向けた、オープンソースのモジュール型マルチプロトコルコントローラーです。テクノロジープレビューとして提供されている機能のサポート範囲に関する詳しい情報は、「テクノロジプレビュー機能のサポート範囲」を参照してください。

2.3. サポートされているドライバー

サポートされているドライバーの完全な一覧は「Red Hat OpenStack Platform におけるコンポーネント、プラグイン、およびドライバーのサポート」を参照してください。

ネットワークアダプターの完全な一覧については「Network Adapter Feature Support in Red Hat Enterprise Linux」を参照してください。

2.4. サードパーティー製のソフトウェアとの互換性

Red Hat OpenStack Platform 技術と組み合わせて実行できることをテスト、サポート、認定済みの製品およびサービスの完全一覧は、「Red Hat OpenStack Platform と互換性のあるサードパーティー製のソフトウェア」を参照してください。製品バージョンやソフトウェアカテゴリー別に一覧をフィルタリングすることができます。

Red Hat Enterprise Linux 技術と組み合わせて実行できることをテスト、サポート、認定済みの製品およびサービスの完全一覧は、「Red Hat Enterprise Linux と互換性のあるサードパーティー製のソフトウェア」を参照してください。製品バージョンやソフトウェアカテゴリー別に一覧をフィルタリングすることができます。

2.5. サブスクリプションの基本情報

Red Hat OpenStack Platform 10 をインストールするには、Red Hat コンテンツ配信ネットワーク (CDN) または Red Hat Satellite 6 で OpenStack Platform 環境の全システムを登録する必要があります。適切なチャンネルに登録すると、特定のリポジトリーにアクセスできるようになり、各リポジトリーから Red Hat OpenStack Platform のインストールや設定に必要なパッケージをダウンロードすることができます。

2.6. サブスクリプションの管理

コンテンツ配信ネットワーク (CDN) を使用して Red Hat OpenStack Platform 10 に必要なチャンネルをサブスクライブするには、以下の手順に従ってください。

必要なチャンネルのサブスクライブ

  1. コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。

    # subscription-manager register
  2. 自分が使用することのできる Red Hat OpenStack Platform のサブスクリプションについての詳しい情報を確認するには、以下のコマンドを実行します。

    # subscription-manager list --available --matches '*OpenStack Platform*'

    このコマンドでは、以下のような出力が表示されるはずです。

    +-------------------------------------------+
        	Available Subscriptions
    +-------------------------------------------+
    
    Subscription Name:   Red Hat Enterprise Linux OpenStack Platform, Standard (2-sockets)
    Provides:            Red Hat Beta
    ...
             			   Red Hat OpenStack
    ...
    SKU:                 ABC1234
    Contract:            12345678
    Pool ID:             0123456789abcdef0123456789abcdef
    Provides Management: No
    Available:           Unlimited
    Suggested:           1
    Service Level:       Standard
    Service Type:        L1-L3
    Subscription Type:   Stackable
    Ends:                12/31/2099
    System Type:         Virtual
  3. 上記のコマンドで表示された Pool ID を使用して、Red Hat OpenStack Platform のエンタイトルメントをアタッチします。

    # subscription-manager attach --pool= _Pool ID_
  4. 必要のないチャンネルは無効にして、必要なチャンネルを有効にします。

    # subscription-manager repos --disable=* \
    --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-openstack-10-rpms \
    --enable=rhel-7-server-rh-common-rpms \
    --enable=rhel-7-server-extras-rpms
  1. yum update コマンドを実行してからリブートし、カーネルを含む最新のパッケージが確実にインストールされて実行されるようにします。

    # yum update
    # reboot

Red Hat OpenStack Platform パッケージを受信するための設定が正常に完了しました。リポジトリーの設定は、 yum repolist コマンドを使用して随時確認することができます。

第3章 ハードウェア

3.1. 承認済みのハードウェア

「Red Hat Technologies Ecosystem」を使用し、カテゴリーを選んでから製品バージョンを選択して、認定済みハードウェア、ソフトウェア、クラウドプロバイダー、コンポーネントの一覧を確認してください。

Red Hat OpenStack Platform の認定済みハードウェアの完全一覧については「Red Hat OpenStack Platform certified hardware」を参照してください。

以下のハードウェアは、Red Hat OpenStack Platform 10 の NFV デプロイメントで動作することをテストおよび承認済みです。

Red Hat は SR-IOV 10G Mellanox、Qlogic および Intel カードをサポートします。ネットワークアダプターに関する詳しい情報は「Network Adapter Feature Support for Red Hat Enterprise Linux」を参照してください。

Red Hat は Intel 10G ポート上で OVS-DPDK をサポートします (NIC: Dual/4 for port Intel X520)。詳しい情報は「Intel Network Adapter Technical Specifications」を参照してください。

第4章 ネットワークの考慮事項

アンダークラウドのホストには、最低でも以下のネットワークが必要です。

  • プロビジョニングネットワーク: オーバークラウドで使用できるベアメタルシステムの検出に役立つ DHCP および PXE ブート機能を提供します。
  • 外部ネットワーク: 全ノードへのリモート接続に使用する別個のネットワーク。このネットワークに接続するこのインターフェースには、静的または外部の DHCP サービス経由で動的に定義された、ルーティング可能な IP アドレスが必要です。

最小のオーバークラウドの構成は、以下のとおりです。

  • シングル NIC 構成: ネイティブの VLAN および異なる種別のオーバークラウドネットワークのサブネットを使用するタグ付けされた VLAN 上にプロビジョニングネットワーク用の NIC を 1 つ。
  • デュアル NIC 構成: プロビジョニングネットワーク用の NIC を 1 つと、外部ネットワーク用の NIC を 1 つ。
  • デュアル NIC 構成: ネイティブの VLAN 上にプロビジョニングネットワーク用の NIC を 1 つと、異なる種別のオーバークラウドネットワークのサブネットを使用するタグ付けされた VLAN 用の NIC を 1 つ。
  • 複数 NIC 構成: 各 NIC は、異なる種別のオーバークラウドネットワークのサブセットを使用します。
注記

プロビジョニングネットワークは、ネイティブの VLAN のみ を使用します。

ネットワーク要件の詳しい情報は「ネットワーク要件」を参照してください。

第5章 デプロイメントの管理

オーバークラウドは通常、コントローラーノード、コンピュートノード、異なるストレージノード種別など、事前定義されたロールに分類されたノードで構成されます。これらのデフォルトの各ロールには、director ノード上にあるコアの Heat テンプレートコレクションで定義されているサービスセットが含まれます。

Red Hat OpenStack Platform 10 では、コンポーザブルロール機能を使用し、各ロールからサービスを追加/削除してカスタムのデプロイメントロールを作成できます。コンポーザブルロールの詳しい情報は「Composable Roles and Services」を参照してください。

以下のセクションでは例として、デプロイメントの途中に OVS-DPDK のカスタマイズロールを作成、追加、修正する手順が記載されています。このデプロイメント例の構成は、クラスターにコントローラーノードが 1 つ、コンピュートノードが 1 つ、OVS-DPDK が含まれたコンピュートノードが 1 つ (compute_with_ovs_dpdk) となっています。ここでは、compute_with_ovs_dpdk がカスタマイズロールで、サポートされる NIC が含まれるノードでのみ DPDK を有効化します。この例では、コンピュートノードで OVS-DPDK ロールを指定してクラスターをデプロイするために director のコンポーザブルロール機能の一部として必要な変更が記載されています。

クラスターの準備

OVS-DPDK クラスターを用意するには、対象のベアメタルノードが OVS-DPDK ロールとしてデプロイされるように、computeovsdpdk としてプロファイルを設定します。たとえば compute-1 という名前の ironic ノードは、OVS-DPDK ロールのデプロイの対象となります。

# ironic node-update compute-1 add properties/capabilities='profile:computeovsdpdk,boot_option:local'

この例では、特定のノードが対象となっているので、プロファイルを computeovsdpdk として設定し、アンダークラウドに新しいフレーバーを追加します。このプロファイルは、同じプロファイルの値を持つ固有のベアメタルノード上にデプロイするために新規ロールで使用されます。

# openstack flavor create --id auto --ram 4096 --disk 40 --vcpus 4 computeovsdpdk
# openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="computeovsdpdk" computeovsdpdk

ロールの定義

新しい OVS-DPDK ロールは、roles 定義に追加して、deploy コマンドの入力として渡す必要あります。既存のロールセットは、roles_data.yaml ファイルに保存されます。templates ディレクトリーにコピーして、以下の新しい定義を追加してください。以下の例では、新規ロールの全サービスは、通常のコンピュートロールと同じです。例外は、ComputeNeutronOvsAgent で、ComputeNeutronOvsDpdkAgent に置き換えて OVS-DPDK サービスにマッピングされるようにする必要があります。

- name: ComputeOvsDpdk
  CountDefault: 1
  HostnameFormatDefault: '%stackname%-computeovsdpdk-%index%'
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    - OS::TripleO::Services::CephExternal
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::NovaCompute
    - OS::TripleO::Services::NovaLibvirt
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::ComputeNeutronCorePlugin
    - OS::TripleO::Services::ComputeNeutronOvsDpdkAgent
    - OS::TripleO::Services::ComputeCeilometerAgent
    - OS::TripleO::Services::ComputeNeutronL3Agent
    - OS::TripleO::Services::ComputeNeutronMetadataAgent
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::NeutronSriovAgent
    - OS::TripleO::Services::OpenDaylightOvs
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::VipHosts

環境テンプレート

OVS-DPDK サービスのリソースマッピングは、以下のようにこのノードのネットワーク設定と合わせて、network-environment.yaml ファイルに追加する必要があります。

resource_registry:
  OS::TripleO::Services::ComputeNeutronOvsDpdkAgent: /home/stack/templates/openstack-tripleo-heat-templates/puppet/services/neutron-ovs-dpdk-agent.yaml
  OS::TripleO::ComputeOvsDpdk::Net::SoftwareConfig: /home/stack/templates/nic-configs/computeovsdpdk.yaml

デプロイのコマンド

環境のデプロイには、new-role.yaml ファイルと network-environment.yaml ファイルを、deploy コマンドの入力パラメーターとして追加する必要があります。

# openstack overcloud deploy --templates /home/stack/templates/openstack-tripleo-heat-templates/ \
    --timeout 180 \
    -r /home/stack/templates/roles_data.yaml \
    -e /home/stack/templates/network-environment.yaml

Red Hat OpenStack Platform director 向けに DPDK-accelerated Open vSwitch (OVS) を設定する詳細情報は「ネットワーク向けの DPDK-accelerated Open vSwitch (OVS) の設定」を参照してください。

第6章 パフォーマンス

Red Hat OpenStack Platform 10 director は、コンピュートノードがリソースの分割および微調整を有効にしてゲスト VNF のラインレートパフォーマンスを実現できるように設定します。NFV ユースケースの中での主要なパフォーマンス要素は、スループット、レイテンシー、ジッターです。

DPDK-accelerated OVS は、物理 NIC と仮想マシンの間で高性能のパケット切り替えを有効にします。OVS 2.5 with DPDK 2.2 は、vhost-user のマルチキューサポートを追加し、スケーラブルなパフォーマンスを実現できます。OVS-DPDK は、ゲスト VNF のラインレートパフォーマンスを提供します。

SR-IOV ネットワークでは、固有なネットワークや仮想マシンのスループットの向上など、強化された性能特性が提供されます。

パフォーマンスチューニングの他の重要な機能には、ヒュージページ、NUMA 調整、ホストの分離、CPU ピニングなどが挙げられます。VNF フレーバーには、パフォーマンス向上のためにヒュージページが必要です。ホストの分離や CPU ピニングにより、NFV パフォーマンスが向上され、擬似パケットロスが回避されます。

NFV のパフォーマンスチューニングやこれらの機能に関する詳細は「パフォーマンス向けの NFV チューニング」を参照してください。

第7章 テクニカルサポート

以下の表では、参考資料として他の Red Hat のドキュメントを紹介しています。

Red Hat OpenStack Platform のドキュメントスイートは Red Hat OpenStack Platform 10 の製品ドキュメント から参照してください。

表 4.1. 参考資料一覧

コンポーネント

参考情報

Red Hat Enterprise Linux

Red Hat OpenStack Platform は Red Hat Enterprise Linux 7.3 でサポートされています。Red Hat Enterprise Linux のインストールに関する情報は、Red Hat Enterprise Linux の対応するインストールガイドを参照してください。

Red Hat OpenStack Platform

OpenStack コンポーネントと依存関係をインストールするには、Red Hat OpenStack Platform director を使用します。director は基本的な OpenStack アンダークラウド を使用して、最終的な オーバークラウド 内の OpenStack ノードのプロビジョニングを管理します。デプロイしたオーバークラウドに必要な環境に加えて、アンダークラウドのインストールには、追加のホストマシンが必要な点に注意してください。詳しい手順は、『Red Hat OpenStack Platform director のインストールと使用方法』を参照してください。

Red Hat OpenStack Platform director を使用して、ネットワークの分離、ストレージ設定、SSL 通信、一般的な設定方法など Red Hat OpenStack Platform のエンタープライズ環境の高度な機能設定に関する情報は『Advanced Overcloud Customization』を参照してください。

Red Hat OpenStack Platform コンポーネントを手動でインストールすることもできます。方法については、『手動インストール手順』を参照してください。

NFV のドキュメント

NFV の概念に関する俯瞰的な情報は、『ネットワーク機能仮想化 (NFV) の製品ガイド』を参照してください。

Red Hat OpenStack Platform 10 director での SR-IOV および OVS-DPDK 設定に関する情報は『ネットワーク機能仮想化 (NFV) の設定ガイド』を参照してください。

法律上の通知

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.