Witam,
W skrócie: próbuję tak ustawić sprzęt, żeby między klientem a maszyną
wirtualną mieć link 2Gbit. Generalnie chodzi o zwirtualizowany serwer
plików.
Robiłem już konfiguracje typu load-balancing i testowałem chyba
wszystkie możliwe tryby bondingu w Linuksie na różnych przełącznikach.
Do testów przydaje się iperf, nuttcp.. oba są w stanie pokazać prawie
2Gbit w trybie round-robin, ale dla normalnego hardware.
Natomiast teraz chciałbym to samo uzyskać dla maszyny wirtualnej.
Na początek zarys tej "konstrukcji":
switch: Planet GSD-802S 8 port, ma 2 współdzielone porty SFP, 2 moduły
SFP są wpięte - zgodne z Ethernet Gigabit.
"serwer": AMD Phenom X2 @ 3,1 GHz, 4GB DDR3-1600, 2 x Seagate 7200.11
RAID1 software+LVM2+snapshot.
Na nim Debian Squeeze 64bit full update jako hypervisor. Co do dysków
chcę wykorzystać szybsze :)
eth0 - 3Com 100Mbit, port do mostka br1 - dla WAN innej maszyny
wirtualnej (routera)
eth1 - Nvidia onboard 1Gbit, na switchu włączone LACP
eth2 - Intel PRO/1000 F Fiber Server Adapter, na switchu do modułu SFP,
włączone LACP
bond0 - to mostek z dwóch kart eth1 i eth2, (mode=802.3ad, stable)
br0 - to mostek użyty do wystawienia wirtualnych maszyn dla sieci LAN,
złączony z interfejsem bond0
br1 - jak wyżej - złączony z eth0, dostęp do Internetu
wszystkie porty na switchu, do których podłączone są karty Gigabitowe
mają włączone RSTP i Flow Control.
Klient 1: Win7x64
LAN1 to Nvidia Gigabit Network Card, port na switchu bez LACP ale w Port
Trunk Group 1 - static aggregation
LAN2 to Intel PRO/1000 MF, port na switchu bez LACP ale w Port Trunk
Group 1 - static aggregation
LAN1+LAN2 to mostek w trybie "Static link aggregation" za pomocą
narzędzi Intela (zaawansowane ustawienia karty sieciowej Intel..).
Wingroza elegancko pokazuje kartę o magicznej nazwie TEAM1 o prędkości
2Gbit. Obie są aktywne.
Klient 2: Linux 64bit z 1 kartą Gigabit
Pliki konfiguracyjne hypervisora:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding mode=802.3ad miimon=100 downdelay=200 updelay=200
ad_select=0 lacp_rate=fast
cat /etc/network/interfaces
auto lo
iface lo inet loopback
# The bonded network interface
auto bond0
iface bond0 inet manual
bond-slaves none
bond-mode 802.3ad
bond-miimon 100
bond_lacp_rate fast
bond_ad_select 0
up /sbin/ifenslave bond0 eth1 eth2
down /sbin/ifenslave bond0 -d eth1 eth2
# Enslave all the physical interfaces
#Karta #1 Nvidia Gigabit
auto eth1
iface eth1 inet manual
bond-master bond0
#Karta #2 Intel PRO/1000 F Server Adapter - FIBER
auto eth2
iface eth2 inet manual
bond-master bond0
# Mostek LAN do virtual network KVM
auto br0
iface br0 inet static
address 10.0.0.250
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.249
dns-nameservers 10.0.0.249 8.8.8.8
bridge-ports bond0
bridge-fd 9
bridge-hello 2
bridge-maxage 12
bridge-stp off
#Karta #3 - modem
auto eth0
iface eth0 inet manual
#Mostek LAN dla virtual network KVM - modem
iface br1 inet manual
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
metric 1
auto br1
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
802.3ad info
LACP rate: fast
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 2
Actor Key: 17
Partner Key: 3
Partner Mac Address: 00:01:02:03:04:05
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 11:22:33:44:55:66
Aggregator ID: 1
Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 66:55:44:33:22:11
Aggregator ID: 1
Próbowałem wielu opcji, w tym ostatnio zmiana Transmit Hash Policy na
layer3+4 oraz ad_select na "bandwidth".
W niektórych opcjach ping do hosta działa, za to do VM już nie. W innych
jest odwrotnie.
Nie bardzo wiem którego typu bondingu mam użyć do static aggregation,
aby uzyskać 2Gbit do VM.
Stawiam, że powinien być round-robin. Ale w nim z kolei jest utrata
pinga, a przynajmniej tak było jak kiedyś testowałem na innym sprzęcie i
switchu wyższej klasy.
Mam też dziwny problem z komunikacją, który właśnie się pojawił:
Ping z LAN do maszyny wirtualnej:
--- 10.0.0.248 ping statistics ---
502 packets transmitted, 502 received, 0% packet loss, time 501006ms
rtt min/avg/max/mdev = 0.352/0.603/9.757/0.418 ms
Ping z LAN do serwera (hypervisora) - sprawdzony z dwóch różnych stacji:
--- 10.0.0.250 ping statistics ---
663 packets transmitted, 32 received, 95% packet loss, time 662889ms
rtt min/avg/max/mdev = 0.094/2.372/12.068/4.088 ms
Utrata pinga na hoście, a na VM nie?? Dziwne.
ODPOWIEDŹ (na utratę pakietów):
Problem z łącznością wynikał z uszkodzonego jednego modułu SFP, musiał
przestać działać dosłownie przed chwilą.
Wymieniłem na inny identyczny, a następnie wypiąłem skrętkę z serwera.
Ping przechodzi bez straty po światełku. To samo po restarcie switcha.
Hmm.. chińszczyzna!
Mam niemal native support z/do VM przy powyższej konfiguracji:
KLIENT->VM
iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 10.0.0.248 port 5001 connected with 10.0.0.100 port 39867
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 981 MBytes 822 Mbits/sec
VM->KLIENT
iperf -c 10.0.0.100
------------------------------------------------------------
Client connecting to 10.0.0.100, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.0.0.248 port 36777 connected with 10.0.0.100 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.09 GBytes 936 Mbits/sec
Jeśli ktoś doczytał to do końca to może wie jak wycisnąć te 2Gbit? :)
--
To UNSUBSCRIBE, email to debian-user-polish-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4e064531.5090...@o2.pl