Vous êtes sur la page 1sur 11

c 2010 IBM Corporation

IBM Linux Technology Center


Virtual Networking in KVM
Arnd Bergmann
KVM Forum 2010
Virtual Networking in KVM
802.1Qbg and 802.1Qbh
Performance
Open vSwitch
2 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
802.1Qbg VEPA
3 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
802.1Qbh Port Extender
VM 1 VM 2 VM 3 VM 4 VM 5
Hypervisor
S-VLAN Port Extender Slave
External switch
S-VLAN Port Extender Master
4 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
802.1Qbg Multichannel VEPA
5 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
802.1Qbg protocols
LLDP: Link-layer discovery protocol, new TLVs
EVB: Edge Virtual Bridging
CDCP: Channel Discovery and Conguration Protocol
VDP: VSI discovery protocol
Draft: http://www.ieee802.org/1/files/public/
docs2010/bg-joint-evb-0410v1.pdf
6 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
Virtual Station Interface Discovery Protocol
VSl State Machine Station
(One lnstance per VSl)
localChange-PreAssoc
PreAssoc_NAK_Rx ll
ACKTimeout || DeAssocAck Rx
vsiError ||
localChange-DeAssoc
localChange-Assoc
"
vsiLocalTLV = NULL
vsiState = UNASSOCATED
PREA88OC_PROCE88NG
TxTLV(PreASSOC)
StartACKTimer()
PREA88OCATED
vsiError = ProcRxAndSetCf g
(vsiRemoteTLV,vsiLocalTLV,vsiState);
f (!vsiError)
vsiState = PREASSOCATED
localChange-PreAssoc
||
ACllVlTY_TlMER_Event
PreAssoc_ACK_Rx
DEA88OC_ PROCE88
NG
TxTLV(DeASSOC)
StartACKTimer()
A88OC_PROCE88NG
TxTLV(ASSOC)
StartACKTimer()
A88OCATED
vsiError = ProcRxAndSetCf g
(vsiRemoteTLV,vsiLocalTLV,vsiState);
f (!vsiError)
vsiState = ASSOCATED
(Assoc_NAK_Rx && VsiState == !Assoc)
ll ACKTimeout || DeAssocAck Rx
Assoc_ACK_Rx ||
(Assoc_NAK_Rx &&
VsiState == Assoc) localChange - Assoc ||
ACllVlTY_TlMER_Event
localChange - PreAssoc
localChange - Assoc
ACKTimeout || DeAssoc Rx
vsiError ||
localChange-
DeAssoc
Local VSl-START
EXlT
vsiError || DeAssocAck Rx
7 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
Network stack alternatives
Guest user space
Guest kernel
Host kernel (KVM)
Host User (qemu)
Host kernel (tap)
Host kernel (bridge)
Device driver
NIC Hardware
Guest user space
Guest kernel
Host kernel (KVM)
vhost-net
macvtap
Device driver
NIC Hardware
Classic Current
Guest user space
Guest kernel
Device driver
NIC Hardware
Passthrough
IOMMU
Guest user space
Guest kernel
vhost-net
macvtap
Device driver
NIC Hardware
My Goal
Host kernel (KVM)
missing
features...
8 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
Open vSwitch
http://www.openvswitch.org/
9 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
Open vSwitch
OpenFlow standard based
Alternative to bridge, macvlan/macvtap
Use cases:
Distributed Layer 3 switch
Security Appliance
drivers/staging
10 / 10
Arnd Bergmann c 2010 IBM Corporation
Virtual Networking in KVM
This work represents the view of the author and does not necessarily
represent the view of IBM.
IBM, IBM (logo), e-business (logo), pSeries, e (logo) server, and
xSeries are trademarks or registered trademarks of International
Business Machines Corporation in the United States and/or other
countries.
Linux is a registered trademark of Linus Torvalds.
Other company, product, and service names may be trademarks or
service marks of others.
10 / 10
Arnd Bergmann c 2010 IBM Corporation

Vous aimerez peut-être aussi