OpenStack上でSR-IOVを使用してNetScaler VPXインスタンスをプロビジョニングする
OpenStack上で、シングルルート I/O 仮想化 (SR-IOV) テクノロジーを使用する高性能なNetScaler VPXインスタンスを展開できます。
OpenStack上でSR-IOVテクノロジーを使用するNetScaler VPXインスタンスを、次の3つのステップで展開できます。
- ホスト上でSR-IOV仮想機能 (VF) を有効にします。
- VFを構成し、OpenStackで利用できるようにします。
- OpenStack上でNetScaler VPXをプロビジョニングします。
前提条件
以下を確認してください。
- ホストにIntel 82599 NIC (NIC) を追加します。
- Intelから最新のIXGBEドライバーをダウンロードしてインストールします。
- ホスト上でIXGBEVFドライバーをブラックリストに登録します。/etc/modprobe.d/blacklist.confファイルに次のエントリを追加します。
ixgbevfをブラックリストに登録します。
注:
ixgbeドライバーのバージョンは、最小で5.0.4である必要があります。
ホスト上でSR-IOV VFを有効にする
SR-IOV VFを有効にするには、次のいずれかの手順を実行します。
-
カーネルバージョン3.8より前のものを使用している場合は、/etc/modprobe.d/ixgbeファイルに次のエントリを追加し、ホストを再起動します: options ixgbe max_vfs=<number_of_VFs>
-
カーネルバージョン3.8以降を使用している場合は、次のコマンドを使用してVFを作成します。
echo <number_of_VFs> > /sys/class/net/<device_name>/device/sriov_numvfs
<!--NeedCopy-->
ここで、
- number_of_VFs は、作成する仮想機能の数です。
- device_name はインターフェース名です。
重要:
SR-IOV VFを作成する際は、VFにMACアドレスを割り当てないようにしてください。
以下に、4つのVFが作成される例を示します。
SR-IOVを有効にする(/ja-jp/vpx/media/enable_sriov_1.jpg)
VFを永続化するには、VFの作成に使用したコマンドをrc.localファイルに追加します。以下に、rc.localファイルの内容の例を示します。
SR-IOV VFを有効にする(/ja-jp/vpx/media/enable_sriov_2.jpg)
詳細については、このインテル SR-IOV 設定ガイドを参照してください。
VFを構成し、OpenStackで利用できるようにする
OpenStackでSR-IOVを構成するには、以下のリンクの手順に従ってください: https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking。
OpenStackにNetScaler VPXインスタンスをプロビジョニングする
OpenStack CLI を使用して、OpenStack 環境に NetScaler VPX インスタンスをプロビジョニングできます。
VPX インスタンスのプロビジョニングには、オプションで設定ドライブからのデータを使用します。設定ドライブは、インスタンスの起動時にインスタンスにアタッチされる特別な設定ドライブです。この設定ドライブは、インスタンスのネットワーク設定を構成する前に、管理 IP アドレス、ネットワークマスク、デフォルトゲートウェイなどのネットワーク構成情報をインスタンスに渡すために使用できます。
OpenStack が VPX インスタンスをプロビジョニングするとき、まず OpenStack を示す特定の BIOS 文字列 (OpenStack Foundation) を読み取ることで、インスタンスが OpenStack 環境で起動していることを検出します。Red Hat Linux ディストリビューションの場合、この文字列は /etc/nova/release に保存されます。これは、KVM ハイパーバイザープラットフォームに基づくすべての OpenStack 実装で利用できる標準的なメカニズムです。ドライブには特定の OpenStack ラベルが必要です。設定ドライブが検出されると、インスタンスは nova 起動コマンドで指定されたファイル名から次の情報を読み取ろうとします。以下の手順では、このファイルは「userdata.txt」と呼ばれます。
- 管理 IP アドレス
- ネットワークマスク
- デフォルトゲートウェイ
パラメータが正常に読み取られると、NetScaler® スタックに設定されます。これにより、インスタンスをリモートで管理できます。パラメータが正常に読み取られない場合、または設定ドライブが利用できない場合、インスタンスは次のデフォルトの動作に移行します。
- インスタンスは DHCP から IP アドレス情報を取得しようとします。
- DHCP が失敗するかタイムアウトした場合、インスタンスはデフォルトのネットワーク構成 (192.168.100.1/16) で起動します。
CLI を介して OpenStack に NetScaler VPX インスタンスをプロビジョニングする
OpenStack CLI を使用して、OpenStack 環境に VPX インスタンスをプロビジョニングできます。OpenStack に NetScaler VPX インスタンスをプロビジョニングする手順の概要を次に示します。
-
.tgz ファイルから
.qcow2ファイルを抽出する -
qcow2 イメージから OpenStack イメージを構築する
-
VPX インスタンスのプロビジョニング
OpenStack 環境で VPX インスタンスをプロビジョニングするには、次の手順を実行します。
-
.tqzファイルからqcow2ファイルをコマンドを入力して抽出します。tar xvzf <TAR file> tar xvzf NSVPX-KVM-12.0-26.2_nc.tgz NSVPX-KVM.xml NSVPX-KVM-12.0-26.2_nc.qcow2 <!--NeedCopy--> -
ステップ1で抽出した
.qcoz2ファイルを使用して、次のコマンドを入力してOpenStackイメージを構築します。glance image-create --name="<name of the OpenStack image>" --property hw_disk_bus=ide --is-public=true --container-format=bare --disk-format=qcow2< <name of the qcow2 file> glance image-create --name="NS-VPX-12-0-26-2" --property hw_disk_bus=ide --is-public= true --container-format=bare --disk-format=qcow2< NSVPX-KVM-12.0-26.2_nc.qcow2 <!--NeedCopy-->次の図は、glance image-create コマンドの出力例を示しています。

-
OpenStackイメージが作成されたら、NetScaler VPXインスタンスをプロビジョニングします。
nova boot --image NSVPX-KVM-12.0-26.2 --config-drive=true --userdata ./userdata.txt --flavor m1. medium --nic net-id=3b258725-eaae- 455e-a5de-371d6d1f349f --nic port-id=218ba819-9f55-4991-adb6- 02086a6bdee2 NSVPX-10 <!--NeedCopy-->上記のコマンドでは、userdata.txt は、VPXインスタンスのIPアドレス、ネットマスク、デフォルトゲートウェイなどの詳細を含むファイルです。ユーザーデータファイルはユーザーがカスタマイズ可能なファイルです。NSVPX-KVM-12.0-26.2 は、プロビジョニングする仮想アプライアンスの名前です。–NIC port-id=218ba819-9f55-4991-adb6-02086a6bdee2 は OpenStack VF です。
次の図は、
novaboot コマンドの出力例を示しています。
次の図は、userdata.txt ファイルの例を示しています。<PropertySection></PropertySection> タグ内の値は、ユーザーが設定可能で、IPアドレス、ネットマスク、デフォルトゲートウェイなどの情報を含んでいます。
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <Environment xmlns:oe="http://schemas.dmtf.org/ovf/environment/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oe:id="" xmlns="http://schemas.dmtf.org/ovf/environment/1"> <PlatformSection> <Kind>NOVA</Kind> <Version>2013.1</Version> <Vendor>Openstack</Vendor> <Locale>en</Locale> </PlatformSection> <PropertySection> <Property oe:key="com.citrix.netscaler.ovf.version" oe:value="1.0"/> <Property oe:key="com.citrix.netscaler.platform" oe:value="vpx"/> citrix.com 4 <Property oe:key="com.citrix.netscaler.orch_env" oe:value="openstack-orch-env"/> <Property oe:key="com.citrix.netscaler.mgmt.ip" oe:value="10.1.0.100"/> <Property oe:key="com.citrix.netscaler.mgmt.netmask" oe:value="255.255.0.0"/> <Property oe:key="com.citrix.netscaler.mgmt.gateway" oe:value="10.1.0.1"/> </PropertySection> </Environment> <!--NeedCopy-->
追加でサポートされる構成: ホストからのSR-IOV VF上でのVLANの作成と削除
SR-IOV VF上にVLANを作成するには、次のコマンドを入力します。
ip link show enp8s0f0 vf 6 vlan 10
上記のコマンドでは、「enp8s0f0」は物理機能の名前です。
例: vf 6上に作成されたVLAN 10
![VF6上にVLAN 10を作成]](/ja-jp/vpx/media/vlan-10-created-on-vf6.png)
SR-IOV VF上のVLANを削除するには、次のコマンドを入力します。
ip link show enp8s0f0 vf 6 vlan 0
例: VLAN 10、vf 6から削除済み

これらの手順で、OpenStack上でSRIOVテクノロジーを使用するNetScaler VPXインスタンスを展開する手順が完了します。