Vyatta and Virtualization
Vyatta and Virtualization
      ‐ 仮想環境でのVyatta ‐
        仮想環境   y
Japan Vyatta Users Group Meeting @ Hiroshima
  p    y               p       g@

               海老澤 健太郎
              Twitter: @ebiken
            ebiken.g@gmail.com
                                     Japan Vyatta
                                     Users Group
クラウド・オートメーションを実現するアーキテクチャ

 コントロールパネル
  ント  ル ネル                                                  マーケットプレイス
                                                            マ ケットプレイス


                                                                                        Parallels 
ビジネスの自動化                          Parallels 
                           (Business) Automation                                      Plesk Billing




 クラウドパッケージ化及び配信


                   Parallels                Parallels                    Parallels                             Parallels 
 運用の自動化           Operations                 Virtual                      Plesk                              Small Business
                  Automation               Automation                    Poducts                                Panel


   シェアードウェブ       メッセージング&                               仮想インフラ                                        SaaS
    ホスティング        コラボレーション                                サービス

 仮想インフラストラクチャ                                                  Parallels                                  Parallels 
                                                         Virtuozzo Containers                         Server Bare Metal
 ハイパーバイザとOS仮想化の最良のコンビネーション



                                                                                           Japan Vyatta
                                          2
                                                                                           Users Group
本日のお話し
1. 仮想データセンター

2. Vyatta転送性能(仮想化無し)

3. 仮想化環境におけるパケット転送のしくみ
 1.   デバイス・エミュレーション
 2.   I/O準仮想化
 3.       デバ  割
      I/O デバイス割り当て(VT‐d)
 4.   I/O デバイス割り当て+共有(SR‐IOV)

4. 仮想化技術をサポートするハードウェア
                                Japan Vyatta
                   3
                                Users Group
仮想データセンター
From: http://www.vyatta.com/solutions/virtual/optimizedvirtualmachines




                                                             Japan Vyatta
                                   4
                                                             Users Group
仮想データセンター(OneBox設定例)
   PIF (物理NIC)
                                                                             Hypervisor 
                                                                             Hypervisor
           Windows                      Intranet                              (PSBM5)
             VPS                         Servers

                eth1
                                                          Internal Network

                            eth2
                                                           Web        Mail

   VPN 
                                       Vyatta                  eth1
  (PPTP)
               Web                                                             Windows
                             Source      Static         eth3                    Server
               Proxy
              (Int‐> Ext)
                              NAT         NAT                  DMZ
                            eth0

                                                        External Network
                                       PIF (物理NIC)                                 PIF (物理NIC)
                                                                                Japan Vyatta
                                                    5
                                                                                Users Group
仮想データセンター(OneBox設定例)

             の公開
   Web Serverの公開
                                                                 Web         Mail


Static NAT設定:                                                        eth1

                                                 Static NAT   eth3
                                                                     DMZ
set service nat rule 10
 destination address <external‐address:eth0>   eth0
 destination port <http‐port:80>
 inbound‐interface <external‐if:eth0>                    External Network
 inside‐address address <web‐server:eth1>
 p otoco tcp
 protocol tcp
 type destination



                                                              Japan Vyatta
                                      6
                                                              Users Group
仮想データセンター(OneBox設定例)
         内部VPSからの外部アクセス : Web / その他
                                                            Windows
                                                              VPS
Web Proxy 設定:
Web Proxy
                                                                  eth1
                                                                            Internal Network
set service webproxy listen‐address <internal‐addr:eth2>

                                                                           eth2

                                                           TCP
Source NAT (
S                   d ) 設定
           (masquerade) 設定:                                3128
                                                              Web
set service nat rule 20                                       Proxy
                                                                           Source 
                                                                            NAT
  outband‐interface <external‐interface:eth0>
  outband interface <external interface:eth0>                (Int > Ext)
                                                             (Int‐> Ext)

  type masquerade                                                          eth0




                                                                       Japan Vyatta
                                           7
                                                                       Users Group
仮想データセンター(OneBox設定例)

  VPN(PPTP) によるアクセス                             Windows
                                                  VPS

                                                     eth1    Internal
  PPTP Server 設定:
VPN(PPTP) 設定:                                                Network


set vpn p pptp remote‐access
   set vpn ppremote‐access
      p pptp p
          pp p                                              eth2
      outside‐address <internet>
  outside‐address <external‐addr:eth0>
      client‐ip‐pool start <local‐pool‐start>
  client‐ip‐pool start <local‐pool‐start>
                                                 VPN 
      client ip pool stop <local pool stop>
      client‐ip‐pool stop <local‐pool‐stop>
  client ip pool stop <local pool stop>
  client‐ip‐pool stop <local‐pool‐stop>         (PPTP)
      dns‐servers <dns‐name> <dns‐addr>
  dns‐servers <dns‐name> <dns‐ip>
      authentication mode local
  authentication mode local
                                                            eth0
      authentication local‐users
      authentication local users
  authentication local‐users username
  authentication local users username
         username <user> password <password>
            <username> password <password>


                                                         Japan Vyatta
                                     8
                                                         Users Group
仮想データセンター(OneBox設定例)
set service nat rule 10
 destination address 10.81.14.201
 destination address 10 81 14 201                                       Windows
 destination port 80                                                      VPS
 inbound‐interface eth0                                                      172.16.14.100
 inside‐address address 172.16.20.100
 protocol tcp
 protocol tcp
 type destination

set service webproxy listen‐address 172.16.14.201                               eth2: 172.16.14.201 172.16.20.100
                                                                                                                    Web
                                                                                                                    W b
set service nat rule 20
  outband‐interface eth0                                        VPN                                 Vyatta
  type masquerade                                              (PPTP)
                                                                            Web           Source 
                                                                                          Source      Static 
                                                                                                      Static    eth3: 
                                                                                                                eth3:
                                                                            Proxy          NAT         NAT
set vpn pptp remote‐access                                                 (Int‐> Ext)                          172.16.20.201
  outside‐address 10.81.14.201
                                                                                         eth0: 10.81.14.201
  client‐ip‐pool start 10.81.100.11
  client‐ip‐pool stop 10.81.100.20
  client ip pool stop 10 81 100 20
  dns‐servers dns01 8.8.8.8
  authentication mode local
  authentication local‐users username user password pass                                            PIF (物理NIC)


                                                                                                     Japan Vyatta
                                                           9
                                                                                                     Users Group
日本語の入門書あります!
     第1章 Vyattaの全体像
     第2章
     第 章 Vyattaクイックスタートガイド    ガ ド
     第3章 Vyattaの初歩的な設定
     第4章 企業内ネットワークで使うための機能
     第5章 ネットワークインターフェイス
     第 章 ネ トワ クインタ フ イス
     第6章 経路制御(ルーティング)
     第7章 ネットワークセキュリティ機能
     第8章 VPN(Vi t l P i t N t
         VPN(Virtual Private Network)機能
                                   k)機能
     第9章 Vyattaによる高可用性の実現
     第10章 QoSの使用方法
     2011年6月16日発売
     近藤邦昭, 松本直人, 浅間正和, 大久保修一,
     (日本Vyattaユーザー会) 著
        変形判
     B5変形判/288ページ       ジ
     定価3,360円(本体3,200円)
     ISBN 978‐4‐7741‐4711‐6
     http://gihyo.jp/book/2011/978‐4‐7741‐4711‐6


                               Japan Vyatta
      10
                               Users Group
VYATTA転送性能(仮想化無し)


                Japan Vyatta
         11
                Users Group
テスト構成

                                  の Hardware 構成
                      Vyatta Core の H d
                      V tt C                 構成
                      Model       HP DL160 G6 (~15万円)
 Traffic Generator
    IXIA IxN2X        CPU         Xeon E5620 2.40GHz (Quad Core)
Ge0           Ge1
                      Memory      DDR3 SDRAM 1333MHz 6GB
                                  オンボード:Broadcom BCM5715
                      NIC
                                  追加:Intel 82576EB Dual Port

eth0          eth1          宛先アドレス(IPv4)
                            Ge0→Ge1: 11.0.0.0~11.0.0.255
Vyatta Core 6.1             Ge1→Ge0: 12.0.0.0~12.0.0.255
                            宛先アドレス(IPv6)
                            宛先 ド
                            Ge0→Ge1: 2400::~2400::ff
                            Ge1→Ge0: 2400:1::~2400:1::ff

                                                   Japan Vyatta
                        12
                                                   Users Group
パケットサイズと転送性能(IPv4)
            ‐ オンボード:Broadcom BCM5715 ‐
                        Mbps     kpps
2000                                                            800
1800                                                            700
1600
                                                                600
1400
1200                                                            500
1000                                                            400
 800                                                            300
 600
                                                                200
 400
 200                                                            100
   0                                                            0
       64   128   256      512     1024   1280     1518

                                                 Japan Vyatta
                           13
                                                 Users Group
パケットサイズと転送性能(IPv6)
            ‐ オンボード:Broadcom BCM5715 ‐
                        Mbps     kpps
2000                                                            700
1800
                                                                600
1600
1400                                                            500
1200                                                            400
1000
 800                                                            300
 600                                                            200
 400
                                                                100
 200
   0                                                            0
       78   128   256      512     1024   1280     1518

                                                 Japan Vyatta
                           14
                                                 Users Group
NICによるパフォーマンスへの影響
• オンボード Broadcom BCM571 からNICを変更

• Intel : PRO/1000 PT Dual Port Server Adapter
        : PRO/1000 PT Dual Port Server Adapter
  – 型番: EXPI9402PT (Intel 82571GB Gigabit Controller)
  – 価格
    価格:~18,000円 円


• Intel (MQ) : Gigabit ET Dual‐Port Server Adapter
  – 型番:E1G42ET (Intel 82576 Gigabit Controller)
    型番:E1G42ET  (Intel 82576 Gigabit Controller)
  – 価格:~22,000円

                                            Japan Vyatta
                          15
                                            Users Group
NICによるパフォーマンス(IPv4)

Mbps                Intel        Broadcom
2000
1800
1600
1400
1200
1000
 800
 600
 400
 200
   0
        64   128   256           512    1024   1280     1518

                                                 Japan Vyatta
                            16
                                                 Users Group
NICによるパフォーマンス(IPv6)

Mbps                Intel        Broadcom
2000
1800
1600
1400
1200
1000
 800
 600
 400
 200
   0
        64   128   256           512    1024   1280     1518

                                                 Japan Vyatta
                            17
                                                 Users Group
マルチキューによる性能向上
                                  / 等と呼ばれる
• Receive‐Side Scaling, Scalable I/O 等と呼ばれる
                     g,
• CPU Core数増加により、パケット処理性能の向上
• 複数のキューを持ち、パケットをCPUの各Coreに割り
  振る
               Core   Core     Core   Core        CPU
                              ③ Coreへの割込み
                              ④ パケット処理
① パケット受信

                                                   NIC
                             ② キューへの割り振り
                               (アドレス・ポート等)
                               ( ド   ポ  等)
                                             Japan Vyatta
                      18
                                             Users Group
• NICのスペックシートで確認




参照:http://www.intel.com/Products/Server/Adapters/Gb‐ET‐Dual‐Port/Gb‐ET‐Dual‐Port‐overview.htm

                                                                            Japan Vyatta
                                             19
                                                                            Users Group
マルチキューによる性能向上(IPv4)

Mbps              Intel         Broadcom      Intel (MQ)
2000
1800
1600
1400
1200
1000
 800
 600
 400
 200
   0
       64   128           256           512    1024        1280     1518

                                                             Japan Vyatta
                                   20
                                                             Users Group
仮想化環境におけるパケット転送
のしくみ
  く
             Japan Vyatta
       21
             Users Group
仮想化環境におけるパケット転送のしくみ
• I/O仮想化の種類
 – デバイス・エミュレーション
   • Hypervisor (VMM) based device emulation
     Hypervisor (VMM) based device emulation
   • User space device emulation
 – I/O準仮想化
   • New Software Interface
 – I/O デバイス割り当て(VT d)
   I/O デバイス割り当て(VT‐d)
 – I/O デバイス割り当て+共有(SR‐IOV)



                                               Japan Vyatta
                          22
                                               Users Group
デバイス・エミュレーション
     デバイスを Hypervisor (VMM) がエミュレーション
             オーバーヘッド=大
             オ バ         ド 大
                                                      User‐space device 
       Guest OS (VM)        Guest OS (VM)                                     Guest OS (VM)    Guest OS (VM)
                                                         emulation
           Guest               Guest                     Emulated                Guest            Guest 
           driver              driver                     device                 driver           driver


                  Emulated device

Physical driver              Hypervisor (VMM)             Physical driver             Hypervisor (VMM)




Physical device              Hardware Platform            Physical device             Hardware Platform



Hypervisor‐based device emulation                              User space device emulation
         ・Parallels Server Bare Metal
          Parallels Server Bare Metal                                       ・ KVM + Qemu
                                                                              KVM + Qemu
                ・ VMware ESXi
                                                                                      Japan Vyatta
                                                 23
                                                                                      Users Group
I/O準仮想化
Guest/VMMが連携して動作(専用のドライバ)
オーバーヘッド=小
                           Guest OS (VM)      Guest OS (VM)
KVM:virtio‐net
Vmware:vmxnet3                Front End          Front End
                                driver             driver
Xen:netfront
                                   Back End driver

                                   Emulated device

                         Physical driver             Hypervisor 
                                                      (VMM)


                         Physical device             Hardware 
                                                     Platform


                                               Japan Vyatta
                    24
                                               Users Group
• Stephen Hemminger
  Stephen Hemminger
  – Vyatta Inc. プリンシパルエンジニア(米国)
  – Linux Kernel Contributor (network)
  – “netem” network emulator
  – bridging, iproute maintaner


• @Linuxcon Japan
  – 2011年6月2日

                                   Japan Vyatta
                      25
                                   Users Group
デバイス・エミュレーション 性能比較
                 仮想化無しを100とした場合
100


 90


 80


 70


 60


 50                                                      送信(Tx)
 40                                                      受信(Rx)

 30


 20


 10


  0

       Hyper‐V      VMware              KVM
                       Stephen Hemminger @ Li
                       St h H      i     @ Linuxcon J
                                                    Japan 2011/06/02
                                                          2011/06/02
                                                 Japan Vyatta
                         26
                                                 Users Group
I/O準仮想化 性能比較
                仮想化無しを100とした場合
100


 90


 80


 70


 60


 50                                                     送信(Tx)
 40                                                     受信(Rx)

 30


 20


 10


  0

      Hyper‐V      VMware              KVM
                      Stephen Hemminger @ Li
                      St h H      i     @ Linuxcon J
                                                   Japan 2011/06/02
                                                         2011/06/02
                                                Japan Vyatta
                        27
                                                Users Group
I/O デバイス割り当て(VT‐d)
物理デバイス(NIC)を VMに割り当て
パケットをDMA転送
オーバーヘッド=極小
                           Guest OS (VM)                      Guest OS (VM)


1ポート(※)に1VMのみ                 Physical 
                               driver
                                                                   Guest 
                                                                   driver



                                                                 Emulated 
                                                                  device

                                                               Physical driver

(※) 1 PCIe Function        DMA Remapping Hardware (VT‐d)


                           Physical device                    Physical device




                                                           Japan Vyatta
                      28
                                                           Users Group
VT‐d :メモリアドレス(番地)変換
Guest OS                         物理メモリ
           VM物理メモリ
(VM)


                                 1100
                 Buffer
           100                 ③ 物理メモリ番地1100 へコピー
                                           メモリアドレス変換テーブル

    Hypervisor (VMM)                       VM1 番地100 → 番地1100
                                           VM2 番地100 → 番地2100
           DMA Remapping       ② Look Up    …
           Hardware (VT‐d)
                    (    )                 VMn 番地100 → 番地3100

                             ① VM1番地100へコピー
                  NIC

                                                  Japan Vyatta
                                29
                                                  Users Group
VT‐d:物理構成
                                       • North Bridgeに実装されている
       CPU          CPU
                                          →Motherboard選択に注意
                                       • CPUやNICの対応も必要
                    System  Bus

         North Bridge
       DMA Remapping                           DRAM
       Hardware (
                (VT‐d)
                     )                       (Memory)


                                             PCI, Legacy 
PCIe Device (NIC)         South Bridge
                                             devices
                                                     Japan Vyatta
                                  30
                                                     Users Group
I/O デバイス割り当て+共有(SR‐IOV)
物理デバイス(NIC)を VMに割り当て+共有
オーバーヘッド=極小        Guest OS  Guest OS 
                                       (VM)                   (VM)
                                        VF                    VF
複数VMでポート共有可能
     ポ                                 driver                driver


VMからは VF=NIC(Port)          PF 
に見える                      driver
                                                               Hypervisor (VMM)
                                                               Hypervisor (VMM)
                          DMA Remapping Hardware (VT‐d)


                           PF        VF      VF      VF   SR‐IOV
                                   Physical device
                                                                 Hardware Platform
                                           * PF = Physical Function
                                           * VF  = Virtual Function (PCIe subset)
                                           * VF Virtual Function (PCIe subset)

                                                            Japan Vyatta
                     31
                                                            Users Group
SR‐IOV
                                                                  SR‐IOV 有り:NICがパケット振り分け
SR‐IOV 無し:VMMがパケット振り分け
                                                                         VMMはパス・スルー
       VM                 VM               VM                             VM                    VM                    VM

   vNIC                 vNIC               vNIC                       vNIC                   vNIC                     vNIC


                                                     Hypervisor
 Rx0                Rx1              RxN
 Rx0                           Tx1                     (VMM)
            Tx0                Tx1            TxN


                                                                          VF0                   VF1                   VFn

                  Software Switch                     DMA転送         Rx0                   Rx1                       RxN
                                                                    Rx0                               Tx1
                                                                                Tx0                   Tx1                    TxN


                                                       NIC                            Layer 2 Classifier / Sorter
                   MAC / PHY
                   MAC / PHY                                                                    MAC / PHY
                                                                                                MAC / PHY


                  Rx1          Tx0                                                          Rx1             Tx0
                  Rx0          Tx1                  MACアドレス・VLANを                           Rx0             Tx1
                  RxN          Tx1                                                          RxN             Tx1
                  Rx0
                  R 0          TxN
                               T N                     元に振り分け                               Rx0
                                                                                            R 0             TxN
                                                                                                            T N


                                                                                                      Japan Vyatta
                                                         32
                                                                                                      Users Group
準仮想化、デバイス割り当て、SR‐IOV性能比較
送信(Tx)

                                                                                        VT‐d はシングルキュー
                                                                                                グ キ




受信(Rx)




出典:http://www.xen.org/files/xensummit_intel09/xensummit2009_IOVirtPerf.pdf
出典:http://www xen org/files/xensummit intel09/xensummit2009 IOVirtPerf pdf   HVM = Xen Hardware Virtual Machine
IO Virtualization Performance, HUANG Zhiteng (zhiteng.huang@intel.com)       PV  = Para Virtualization (準仮想化 )
                                                                                             Japan Vyatta
                                                                33
                                                                                             Users Group
仮想化技術をサポートする
ハードウェア
  ド
               Japan Vyatta
       34
               Users Group
Intel CPU VT‐x, VT‐d サポート確認方法
http://ark.intel.com/




    1) Click !!
             2) Click !!
                Click !!
                                Japan Vyatta
                           35
                                Users Group
Intel CPU VT‐x, VT‐d サポート確認方法
           VT‐x VT‐d


                         Click !!
                         Click !!




                        Japan Vyatta
              36
                        Users Group
Intel CPU VT‐x, VT‐d サポート確認方法
http://ark.intel.com/search/advanced/?s=t&VTX=true&VTD=true




                                                Japan Vyatta
                             37
                                                Users Group
SR‐IOVサポートする Intel NIC一覧
http://www.intel.com/support/network/adapter/pro100/sb/CS‐031492.htm




                                                        Japan Vyatta
                                  38
                                                        Users Group
Intel NIC VT‐d, SR‐IOV サポート確認方法
http://www.intel.com/products/ethernet/resource.htm
C t ll の型番からデ タシ トや参考資料が入手可能
Controllerの型番からデータシートや参考資料が入手可能




                                            Japan Vyatta
                          39
                                            Users Group
Mother Board VT‐d, SR‐IOV サポート確認方法

• VT‐d サポートする Chip Set 記載
   – http://wiki.xensource.com/xenwiki/VTdHowTo


• Mother Board は落とし穴が多数…
        が対応  な とダ
  – BIOSが対応してないとダメ!
  – メーカー独自管理パーツついてるとうまくいかな
    い場合も。。。




                                         Japan Vyatta
                        40
                                         Users Group
まとめ
• 仮想化環境のパケット転送性能は構成に大きく依存
• ハ ドウ アによ て使えない構成(仮想化技術)も
  ハードウェアによって使えない構成(仮想化技術)も…


      試して、動いたらみんなでシェア!
     こんな構成で動いたよ。性能でたよ!
     こんな構成で動いたよ 性能でたよ!

         バッドノウハウも!
     この構成だと性能でない 、動かない…

   宛先はこちら: vyatta‐users@vyatta‐users.jp
      http://www.vyatta users.jp/
      http://www.vyatta‐users.jp/
                                   Japan Vyatta
                    41
                                   Users Group

Vyatta and Virtualization 仮想環境でのVyatta

  • 1.
    Vyatta and Virtualization Vyatta and Virtualization ‐ 仮想環境でのVyatta ‐ 仮想環境 y Japan Vyatta Users Group Meeting @ Hiroshima p y p g@ 海老澤 健太郎 Twitter: @ebiken ebiken.g@gmail.com Japan Vyatta Users Group
  • 2.
    クラウド・オートメーションを実現するアーキテクチャ コントロールパネル ント ル ネル マーケットプレイス マ ケットプレイス Parallels  ビジネスの自動化 Parallels  (Business) Automation Plesk Billing クラウドパッケージ化及び配信 Parallels  Parallels  Parallels  Parallels  運用の自動化 Operations Virtual Plesk Small Business Automation Automation Poducts Panel シェアードウェブ メッセージング& 仮想インフラ SaaS ホスティング コラボレーション サービス 仮想インフラストラクチャ Parallels  Parallels  Virtuozzo Containers Server Bare Metal ハイパーバイザとOS仮想化の最良のコンビネーション Japan Vyatta 2 Users Group
  • 3.
    本日のお話し 1. 仮想データセンター 2. Vyatta転送性能(仮想化無し) 3.仮想化環境におけるパケット転送のしくみ 1. デバイス・エミュレーション 2. I/O準仮想化 3. デバ 割 I/O デバイス割り当て(VT‐d) 4. I/O デバイス割り当て+共有(SR‐IOV) 4. 仮想化技術をサポートするハードウェア Japan Vyatta 3 Users Group
  • 4.
  • 5.
    仮想データセンター(OneBox設定例) PIF (物理NIC) Hypervisor  Hypervisor Windows Intranet  (PSBM5) VPS Servers eth1 Internal Network eth2 Web Mail VPN  Vyatta eth1 (PPTP) Web Windows Source  Static  eth3 Server Proxy (Int‐> Ext) NAT NAT DMZ eth0 External Network PIF (物理NIC) PIF (物理NIC) Japan Vyatta 5 Users Group
  • 6.
    仮想データセンター(OneBox設定例) の公開 Web Serverの公開 Web Mail Static NAT設定: eth1 Static NAT eth3 DMZ set service nat rule 10 destination address <external‐address:eth0> eth0 destination port <http‐port:80> inbound‐interface <external‐if:eth0> External Network inside‐address address <web‐server:eth1> p otoco tcp protocol tcp type destination Japan Vyatta 6 Users Group
  • 7.
    仮想データセンター(OneBox設定例) 内部VPSからの外部アクセス : Web / その他 Windows VPS Web Proxy 設定: Web Proxy eth1 Internal Network set service webproxy listen‐address <internal‐addr:eth2> eth2 TCP Source NAT ( S d ) 設定 (masquerade) 設定: 3128 Web set service nat rule 20 Proxy Source  NAT outband‐interface <external‐interface:eth0> outband interface <external interface:eth0> (Int > Ext) (Int‐> Ext) type masquerade eth0 Japan Vyatta 7 Users Group
  • 8.
    仮想データセンター(OneBox設定例) VPN(PPTP)によるアクセス Windows VPS eth1 Internal PPTP Server 設定: VPN(PPTP) 設定: Network set vpn p pptp remote‐access set vpn ppremote‐access p pptp p pp p eth2 outside‐address <internet> outside‐address <external‐addr:eth0> client‐ip‐pool start <local‐pool‐start> client‐ip‐pool start <local‐pool‐start> VPN  client ip pool stop <local pool stop> client‐ip‐pool stop <local‐pool‐stop> client ip pool stop <local pool stop> client‐ip‐pool stop <local‐pool‐stop> (PPTP) dns‐servers <dns‐name> <dns‐addr> dns‐servers <dns‐name> <dns‐ip> authentication mode local authentication mode local eth0 authentication local‐users authentication local users authentication local‐users username authentication local users username username <user> password <password> <username> password <password> Japan Vyatta 8 Users Group
  • 9.
    仮想データセンター(OneBox設定例) set service nat rule 10 destination address 10.81.14.201 destination address 10 81 14 201 Windows destination port 80 VPS inbound‐interface eth0 172.16.14.100 inside‐address address 172.16.20.100 protocol tcp protocol tcp type destination set service webproxy listen‐address 172.16.14.201 eth2: 172.16.14.201 172.16.20.100 Web W b set service nat rule 20 outband‐interface eth0 VPN  Vyatta type masquerade (PPTP) Web Source  Source Static  Static eth3:  eth3: Proxy NAT NAT set vpn pptp remote‐access (Int‐> Ext) 172.16.20.201 outside‐address 10.81.14.201 eth0: 10.81.14.201 client‐ip‐pool start 10.81.100.11 client‐ip‐pool stop 10.81.100.20 client ip pool stop 10 81 100 20 dns‐servers dns01 8.8.8.8 authentication mode local authentication local‐users username user password pass PIF (物理NIC) Japan Vyatta 9 Users Group
  • 10.
    日本語の入門書あります! 第1章 Vyattaの全体像 第2章 第 章 Vyattaクイックスタートガイド ガ ド 第3章 Vyattaの初歩的な設定 第4章 企業内ネットワークで使うための機能 第5章 ネットワークインターフェイス 第 章 ネ トワ クインタ フ イス 第6章 経路制御(ルーティング) 第7章 ネットワークセキュリティ機能 第8章 VPN(Vi t l P i t N t VPN(Virtual Private Network)機能 k)機能 第9章 Vyattaによる高可用性の実現 第10章 QoSの使用方法 2011年6月16日発売 近藤邦昭, 松本直人, 浅間正和, 大久保修一, (日本Vyattaユーザー会) 著 変形判 B5変形判/288ページ ジ 定価3,360円(本体3,200円) ISBN 978‐4‐7741‐4711‐6 http://gihyo.jp/book/2011/978‐4‐7741‐4711‐6 Japan Vyatta 10 Users Group
  • 11.
    VYATTA転送性能(仮想化無し) Japan Vyatta 11 Users Group
  • 12.
    テスト構成 の Hardware 構成 Vyatta Core の H d V tt C 構成 Model HP DL160 G6 (~15万円) Traffic Generator IXIA IxN2X CPU Xeon E5620 2.40GHz (Quad Core) Ge0 Ge1 Memory DDR3 SDRAM 1333MHz 6GB オンボード:Broadcom BCM5715 NIC 追加:Intel 82576EB Dual Port eth0 eth1 宛先アドレス(IPv4) Ge0→Ge1: 11.0.0.0~11.0.0.255 Vyatta Core 6.1 Ge1→Ge0: 12.0.0.0~12.0.0.255 宛先アドレス(IPv6) 宛先 ド Ge0→Ge1: 2400::~2400::ff Ge1→Ge0: 2400:1::~2400:1::ff Japan Vyatta 12 Users Group
  • 13.
    パケットサイズと転送性能(IPv4) ‐ オンボード:Broadcom BCM5715 ‐ Mbps kpps 2000 800 1800 700 1600 600 1400 1200 500 1000 400 800 300 600 200 400 200 100 0 0 64 128 256 512 1024 1280 1518 Japan Vyatta 13 Users Group
  • 14.
    パケットサイズと転送性能(IPv6) ‐ オンボード:Broadcom BCM5715 ‐ Mbps kpps 2000 700 1800 600 1600 1400 500 1200 400 1000 800 300 600 200 400 100 200 0 0 78 128 256 512 1024 1280 1518 Japan Vyatta 14 Users Group
  • 15.
    NICによるパフォーマンスへの影響 • オンボード Broadcom BCM571からNICを変更 • Intel : PRO/1000 PT Dual Port Server Adapter : PRO/1000 PT Dual Port Server Adapter – 型番: EXPI9402PT (Intel 82571GB Gigabit Controller) – 価格 価格:~18,000円 円 • Intel (MQ) : Gigabit ET Dual‐Port Server Adapter – 型番:E1G42ET (Intel 82576 Gigabit Controller) 型番:E1G42ET  (Intel 82576 Gigabit Controller) – 価格:~22,000円 Japan Vyatta 15 Users Group
  • 16.
    NICによるパフォーマンス(IPv4) Mbps Intel Broadcom 2000 1800 1600 1400 1200 1000 800 600 400 200 0 64 128 256 512 1024 1280 1518 Japan Vyatta 16 Users Group
  • 17.
    NICによるパフォーマンス(IPv6) Mbps Intel Broadcom 2000 1800 1600 1400 1200 1000 800 600 400 200 0 64 128 256 512 1024 1280 1518 Japan Vyatta 17 Users Group
  • 18.
    マルチキューによる性能向上 / 等と呼ばれる • Receive‐Side Scaling, Scalable I/O 等と呼ばれる g, • CPU Core数増加により、パケット処理性能の向上 • 複数のキューを持ち、パケットをCPUの各Coreに割り 振る Core Core Core Core CPU ③ Coreへの割込み ④ パケット処理 ① パケット受信 NIC ② キューへの割り振り (アドレス・ポート等) ( ド ポ 等) Japan Vyatta 18 Users Group
  • 19.
  • 20.
    マルチキューによる性能向上(IPv4) Mbps Intel Broadcom Intel (MQ) 2000 1800 1600 1400 1200 1000 800 600 400 200 0 64 128 256 512 1024 1280 1518 Japan Vyatta 20 Users Group
  • 21.
  • 22.
    仮想化環境におけるパケット転送のしくみ • I/O仮想化の種類 –デバイス・エミュレーション • Hypervisor (VMM) based device emulation Hypervisor (VMM) based device emulation • User space device emulation – I/O準仮想化 • New Software Interface – I/O デバイス割り当て(VT d) I/O デバイス割り当て(VT‐d) – I/O デバイス割り当て+共有(SR‐IOV) Japan Vyatta 22 Users Group
  • 23.
    デバイス・エミュレーション デバイスを Hypervisor (VMM) がエミュレーション オーバーヘッド=大 オ バ ド 大 User‐space device  Guest OS (VM) Guest OS (VM) Guest OS (VM) Guest OS (VM) emulation Guest  Guest  Emulated  Guest  Guest  driver driver device driver driver Emulated device Physical driver Hypervisor (VMM) Physical driver Hypervisor (VMM) Physical device Hardware Platform Physical device Hardware Platform Hypervisor‐based device emulation User space device emulation ・Parallels Server Bare Metal Parallels Server Bare Metal ・ KVM + Qemu KVM + Qemu ・ VMware ESXi Japan Vyatta 23 Users Group
  • 24.
    I/O準仮想化 Guest/VMMが連携して動作(専用のドライバ) オーバーヘッド=小 Guest OS (VM) Guest OS (VM) KVM:virtio‐net Vmware:vmxnet3 Front End Front End driver driver Xen:netfront Back End driver Emulated device Physical driver Hypervisor  (VMM) Physical device Hardware  Platform Japan Vyatta 24 Users Group
  • 25.
    • Stephen Hemminger Stephen Hemminger – Vyatta Inc. プリンシパルエンジニア(米国) – Linux Kernel Contributor (network) – “netem” network emulator – bridging, iproute maintaner • @Linuxcon Japan – 2011年6月2日 Japan Vyatta 25 Users Group
  • 26.
    デバイス・エミュレーション 性能比較 仮想化無しを100とした場合 100 90 80 70 60 50 送信(Tx) 40 受信(Rx) 30 20 10 0 Hyper‐V VMware KVM Stephen Hemminger @ Li St h H i @ Linuxcon J Japan 2011/06/02 2011/06/02 Japan Vyatta 26 Users Group
  • 27.
    I/O準仮想化 性能比較 仮想化無しを100とした場合 100 90 80 70 60 50 送信(Tx) 40 受信(Rx) 30 20 10 0 Hyper‐V VMware KVM Stephen Hemminger @ Li St h H i @ Linuxcon J Japan 2011/06/02 2011/06/02 Japan Vyatta 27 Users Group
  • 28.
    I/O デバイス割り当て(VT‐d) 物理デバイス(NIC)を VMに割り当て パケットをDMA転送 オーバーヘッド=極小 Guest OS (VM) Guest OS (VM) 1ポート(※)に1VMのみ Physical  driver Guest  driver Emulated  device Physical driver (※) 1 PCIe Function DMA Remapping Hardware (VT‐d) Physical device Physical device Japan Vyatta 28 Users Group
  • 29.
    VT‐d :メモリアドレス(番地)変換 Guest OS 物理メモリ VM物理メモリ (VM) 1100 Buffer 100 ③ 物理メモリ番地1100 へコピー メモリアドレス変換テーブル Hypervisor (VMM) VM1 番地100 → 番地1100 VM2 番地100 → 番地2100 DMA Remapping ② Look Up … Hardware (VT‐d) ( ) VMn 番地100 → 番地3100 ① VM1番地100へコピー NIC Japan Vyatta 29 Users Group
  • 30.
    VT‐d:物理構成 • North Bridgeに実装されている CPU CPU →Motherboard選択に注意 • CPUやNICの対応も必要 System  Bus North Bridge DMA Remapping DRAM Hardware ( (VT‐d) ) (Memory) PCI, Legacy  PCIe Device (NIC) South Bridge devices Japan Vyatta 30 Users Group
  • 31.
    I/O デバイス割り当て+共有(SR‐IOV) 物理デバイス(NIC)を VMに割り当て+共有 オーバーヘッド=極小 Guest OS  Guest OS  (VM) (VM) VF VF 複数VMでポート共有可能 ポ driver driver VMからは VF=NIC(Port) PF  に見える driver Hypervisor (VMM) Hypervisor (VMM) DMA Remapping Hardware (VT‐d) PF VF VF VF SR‐IOV Physical device Hardware Platform * PF = Physical Function * VF  = Virtual Function (PCIe subset) * VF Virtual Function (PCIe subset) Japan Vyatta 31 Users Group
  • 32.
    SR‐IOV SR‐IOV 有り:NICがパケット振り分け SR‐IOV 無し:VMMがパケット振り分け VMMはパス・スルー VM VM VM VM VM VM vNIC vNIC vNIC vNIC vNIC vNIC Hypervisor Rx0 Rx1 RxN Rx0 Tx1 (VMM) Tx0 Tx1 TxN VF0 VF1 VFn Software Switch DMA転送 Rx0 Rx1 RxN Rx0 Tx1 Tx0 Tx1 TxN NIC Layer 2 Classifier / Sorter MAC / PHY MAC / PHY MAC / PHY MAC / PHY Rx1 Tx0 Rx1 Tx0 Rx0 Tx1 MACアドレス・VLANを Rx0 Tx1 RxN Tx1 RxN Tx1 Rx0 R 0 TxN T N 元に振り分け Rx0 R 0 TxN T N Japan Vyatta 32 Users Group
  • 33.
    準仮想化、デバイス割り当て、SR‐IOV性能比較 送信(Tx) VT‐d はシングルキュー グ キ 受信(Rx) 出典:http://www.xen.org/files/xensummit_intel09/xensummit2009_IOVirtPerf.pdf 出典:http://www xen org/files/xensummit intel09/xensummit2009 IOVirtPerf pdf HVM = Xen Hardware Virtual Machine IO Virtualization Performance, HUANG Zhiteng (zhiteng.huang@intel.com) PV  = Para Virtualization (準仮想化 ) Japan Vyatta 33 Users Group
  • 34.
  • 35.
    Intel CPU VT‐x, VT‐d サポート確認方法 http://ark.intel.com/ 1) Click !! 2) Click !! Click !! Japan Vyatta 35 Users Group
  • 36.
    Intel CPU VT‐x, VT‐d サポート確認方法 VT‐x VT‐d Click !! Click !! Japan Vyatta 36 Users Group
  • 37.
  • 38.
  • 39.
    Intel NIC VT‐d, SR‐IOV サポート確認方法 http://www.intel.com/products/ethernet/resource.htm C tll の型番からデ タシ トや参考資料が入手可能 Controllerの型番からデータシートや参考資料が入手可能 Japan Vyatta 39 Users Group
  • 40.
    Mother Board VT‐d, SR‐IOV サポート確認方法 • VT‐d サポートする ChipSet 記載 – http://wiki.xensource.com/xenwiki/VTdHowTo • Mother Board は落とし穴が多数… が対応 な とダ – BIOSが対応してないとダメ! – メーカー独自管理パーツついてるとうまくいかな い場合も。。。 Japan Vyatta 40 Users Group
  • 41.
    まとめ • 仮想化環境のパケット転送性能は構成に大きく依存 • ハドウ アによ て使えない構成(仮想化技術)も ハードウェアによって使えない構成(仮想化技術)も… 試して、動いたらみんなでシェア! こんな構成で動いたよ。性能でたよ! こんな構成で動いたよ 性能でたよ! バッドノウハウも! この構成だと性能でない 、動かない… 宛先はこちら: vyatta‐users@vyatta‐users.jp http://www.vyatta users.jp/ http://www.vyatta‐users.jp/ Japan Vyatta 41 Users Group