OpenStack上でSR-IOVを使用してNetScaler VPXインスタンスをプロビジョニングします
OpenStackで、シングルルートI/O仮想化(Single-Root I/O Virtualization:SR-IOV)テクノロジを使用する高パフォーマンスのNetScaler VPXインスタンスを展開できます。
OpenStackで、3つの手順で、SR-IOVテクノロジを使用するNetScaler VPXインスタンスを展開できます。
- ホスト上でSR-IOV Virtual Functions(VF)を有効にします。
- VFを構成し、OpenStackで使用できるようにします。
- OpenStackでNetScaler VPXをプロビジョニングします。
前提条件
次のことを確認してください:
- インテル 82599 NIC (NIC) をホストに追加します。
- 最新のIXGBEドライバーをダウンロードしてインストールします。
- ホスト上の IXGBEVF ドライバをブロックリストします。 /etc/modprobe.d/blacklist.conf ファイルに次のエントリを追加します。 ブロックリスト
ixgbevf
注
ixgbe
ドライバーのバージョンは 5.0.4 以上でなければなりません。
ホストで SR-IOV VF を有効にする
SR-IOV VFを有効にするには、次のいずれかの手順を実行します。
-
<number_of_VFs>3.8 より前のカーネルバージョンを使用している場合は、/etc/modprobe.d/ixgbe ファイルに次のエントリを追加し、ホストを再起動します。 オプション ixgbe max_vfs=
-
カーネル3.8以降のバージョンを使用している場合、以下のコマンドを使用してVFを作成します。
echo <number_of_VFs> > /sys/class/net/<device_name>/device/sriov_numvfs
<!--NeedCopy-->
各項目の意味は次のとおりです:
- number_of_VFsは、作成するVirtual Functionの数です。
- device_name はインターフェイス名です。
重要:
SR-IOV VFを作成する場合、MACアドレスをVFに割り当てないようにしてください。
次に、作成している4つのVFの例を示します。
VF を永続的にし、VF の作成に使用したコマンドを rc.local ファイルに追加します。 rc.local ファイルの内容を示す例を次に示します。
詳細については、 このインテル SR-IOV 構成ガイドを参照してください。
OpenStack で VF を設定して利用できるようにする
以下のリンクに記載されている手順に従って、OpenStack で SR-IOV を設定します:https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking。
OpenStackでCitrix ADC VPXインスタンスをプロビジョニングする
OpenStack CLIを使用して、OpenStack 環境でCitrix ADC VPXインスタンスをプロビジョニングできます。
VPXインスタンスをプロビジョニングします。 オプションで、コンフィグドライブのデータを使用します。 「構成ドライブ」とは、インスタンスの起動時にアタッチされる特殊な構成ドライブを指します。 この構成ドライブを使用して、インスタンスのネットワーク設定を構成する前に、管理 IP アドレス、ネットワークマスク、デフォルトゲートウェイなどのネットワーク構成情報をインスタンスに渡すことができます。
OpenStackがVPXインスタンスをプロビジョニングする場合、まずOpenStackを示す特定のBIOS文字列(OpenStackファウンデーション)を読み取ることによって、インスタンスがOpenStack環境で起動していることを検出します。 Red Hat Linuxディストリビューションの場合、この文字列は/etc/nova/releaseに保存されます。 これは、KVMハイパーバイザープラットフォームに基づくすべてのOpenStack実装で使用できる標準メカニズムです。 ドライブには特定の OpenStack ラベルが必要です。 構成ドライブが検出されると、インスタンスは nova
boot コマンドで指定されたファイル名から次の情報を読み取ろうとします。 以下の手順では、このファイルを「userdata.txt」と呼びます。
- 管理IPアドレス
- ネットワークマスク
- デフォルトゲートウェイ
パラメーターが正しく読み取られると、それらの値がNetScalerスタックに適用されます。 これにより、インスタンスをリモートから管理できるようになります。 パラメーターが読み取られない場合、または構成ドライブが存在しない場合は、インスタンスが以下のデフォルトの処理を実行します。
- DHCPからIPアドレス情報を取得する。
- DHCPから情報を取得できない場合は、デフォルトのネットワーク構成として192.168.100.1/16を使用する。
CLIを使用してOpenStack上のNetScaler VPXインスタンスをプロビジョニングします
OpenStack環境でVPXインスタンスをプロビジョニングするには、OpenStackのCLIを使用します。 次に、OpenStackでCitrix ADC 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です。
次の図に、
nova
boot コマンドの出力例を示します。次の図は、userdata.txtファイルのサンプルです。 タグ内の値は、ユーザーが設定可能な値で、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
SR-IOV VF上のVLANを削除するには、次のコマンドを入力します。
ip link show enp8s0f0 vf 6 vlan 0
例:VLAN 10、vf 6 から削除された
これらの手順により、 SRIOVテクノロジを使用するNetScaler VPXインスタンスをOpenStack上で展開する方法が完了します。