ネットワーク機能仮想化 (NFV) のプランニングガイド
Red Hat OpenStack Platform 10 での NFV のプランニング
概要
第1章 はじめに
ネットワーク機能仮想化 (NFV: Network Functions Virtualization) とは、通信事業者 (CSP) が従来のプロプライエタリーハードウェアの範囲を超えて、運用コストを抑えつつ、効率性および敏捷性を向上するのに役立つソフトウェアベースのソリューションです。
NFV の概念に関する俯瞰的な情報は、『ネットワーク機能仮想化 (NFV) の製品ガイド』を参照してください。
Red Hat OpenStack Platform 10 director での SR-IOV および OVS-DPDK 設定に関する情報は『ネットワーク機能仮想化 (NFV) の設定ガイド』を参照してください。
第2章 ソフトウェア要件
2.1. ソフトウェアのアーキテクチャー

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 に必要なチャンネルをサブスクライブするには、以下の手順に従ってください。
必要なチャンネルのサブスクライブ
コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。
# subscription-manager register
自分が使用することのできる 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上記のコマンドで表示された
Pool IDを使用して、Red Hat OpenStack Platform のエンタイトルメントをアタッチします。# subscription-manager attach --pool= _Pool ID_
必要のないチャンネルは無効にして、必要なチャンネルを有効にします。
# 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
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.yamlRed 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) の設定ガイド』を参照してください。 |
