Bir 4 noktası koymak Intel I340-T4 FreeBSD 9.3 sunucu NIC 1 ve bunu yapılandırılmış bağlantı toplama bölgesindeki LACP moduna 2- için bir ana dosya sunucusundan 16 veri TiB için aynanın 8 süresini azaltmak için bir girişimde 4 klon paralel. 4 Gbit / sn'ye kadar toplam bant genişliği almayı bekliyorduk, ancak ne denesek deneriz, asla 1 Gbit / sn'den daha hızlı çıkmaz. 2
Bunu iperf3
sessiz bir LAN'da test etmek için kullanıyoruz . 3 İlk örnek beklendiği gibi neredeyse bir gigabite çarpıyor, ancak paralel olarak ikinci bir tane başlattığımızda, iki istemci kabaca ½ Gbit / sn'ye düşüyor. Üçüncü bir istemci eklemek her üç istemcinin hızını ~ ⅓ Gbit / sn'ye düşürür.
iperf3
Dört test istemcisinden gelen trafiğin farklı bağlantı noktalarındaki merkezi anahtara geldiği testleri oluşturmaya özen gösterdik :
Her test makinesinin raf anahtarına giden bağımsız bir yolu olduğunu ve dosya sunucusunun, NIC'sinin ve anahtarın tümünün, lagg0
grubu ayırarak ve her birine ayrı bir IP adresi atayarak bunu kaldıracak bant genişliğine sahip olduğunu doğruladık. Bu Intel ağ kartındaki dört arayüzden biri. Bu yapılandırmada ~ 4 Gbit / sn toplam bant genişliği elde ettik.
Bu yola başladığımızda, bunu eski bir SMC8024L2 yönetilen anahtarla yapıyorduk . (PDF veri sayfası, 1.3 MB.) Gününün en üst düzey anahtarı değildi, ancak bunu yapabilmesi gerekiyordu. Geçişin yaşı nedeniyle hatalı olabileceğini düşündük, ancak çok daha yetenekli bir HP 2530-24G'ye yükseltmek semptomu değiştirmedi.
HP 2530-24G anahtarı, söz konusu dört bağlantı noktasının gerçekten dinamik bir LACP bagajı olarak yapılandırıldığını iddia eder:
# show trunks
Load Balancing Method: L3-based (default)
Port | Name Type | Group Type
---- + -------------------------------- --------- + ----- --------
1 | Bart trunk 1 100/1000T | Dyn1 LACP
3 | Bart trunk 2 100/1000T | Dyn1 LACP
5 | Bart trunk 3 100/1000T | Dyn1 LACP
7 | Bart trunk 4 100/1000T | Dyn1 LACP
Hem pasif hem de aktif LACP'yi denedik.
Dört NIC bağlantı noktasının da FreeBSD tarafında trafik aldığını doğruladık:
$ sudo tshark -n -i igb$n
Garip bir şekilde, tshark
sadece bir istemci durumunda, anahtarın 1 Gbit / sn akışını iki bağlantı noktasına böldüğü anlaşılıyor ve aralarında ping-ponging var. (Hem SMC hem de HP anahtarları bu davranışı gösterdi.)
İstemcilerin toplam bant genişliği yalnızca tek bir yerde bir araya geldiğinden - sunucunun rafındaki anahtarda - yalnızca bu anahtar LACP için yapılandırılır.
Hangi müşteriye ilk başladığımız veya hangi sırayla başlattığımız önemli değil.
ifconfig lagg0
FreeBSD tarafında diyor ki:
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
ether 90:e2:ba:7b:0b:38
inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::92e2:baff:fe7b:b38%lagg0 prefixlen 64 scopeid 0xa
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active
laggproto lacp lagghash l2,l3,l4
laggport: igb3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: igb2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: igb1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: igb0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
Durumumuza mantıklı gelen FreeBSD ağ ayarlama kılavuzundaki tavsiyelerin çoğunu uyguladık . (Çoğu maksimum FD'lerin artırılması gibi şeyler önemsizdir.)
Sonuçlarda bir değişiklik olmadan TCP segmentasyonu boşaltma işlemini kapatmayı denedik .
İkinci bir test ayarlamak için ikinci bir 4 portlu sunucu NIC'miz yok. 4 ayrı arabirimle yapılan başarılı test nedeniyle, donanımın hiçbirinin hasar görmediği varsayımına devam ediyoruz. 3
Bu yolları ileride görüyoruz, hiçbiri çekici değil:
SMC'nin LACP uygulamasının berbat olmasını ve yeni anahtarın daha iyi olacağını umarak daha büyük, daha kötü bir anahtar satın alın.(HP 2530-24G'ye yükseltmek yardımcı olmadı.)Bir
lagg
şeyi kaçırdığımızı umarak FreeBSD yapılandırmasına biraz daha bakın. 4Bağlantı toplamayı unutun ve bunun yerine yük dengelemeyi gerçekleştirmek için yuvarlak DNS'yi kullanın.
Sunucu NIC'sini değiştirin ve bu kez 10 GigE öğesi ile değiştirin, bu LACP deneyinin donanım maliyetinin yaklaşık 4 katı.
Dipnotlar
Neden FreeBSD 10'a geçmiyorsunuz? FreeBSD 10.0-RELEASE hala ZFS havuzu sürüm 28 kullandığından ve bu sunucu FreeBSD 9.3'te yeni bir özellik olan ZFS havuzu 5000'e yükseltildiğinden. 10. x hattı, FreeBSD 10.1 yaklaşık bir ay gelene kadar bunu elde edemez . Ve hayır, 10.0-STABLE kanama kenarına ulaşmak için kaynaktan yeniden inşa etmek bir seçenek değil, çünkü bu bir üretim sunucusu.
Lütfen sonuçlara atlamayın. Sorunun ilerleyen bölümlerindeki test sonuçlarımız, bunun neden bu sorunun kopyası olmadığını söyler .
iperf3
saf bir ağ testidir. Nihai hedef, bu 4 Gbit / sn toplam boruyu diskten doldurmaya çalışmak olsa da, henüz disk alt sistemini dahil etmiyoruz.Buggy veya kötü tasarlanmış, belki, ama fabrikadan çıktığı zamandan daha fazla kırılmaz.
Bunu yapmaktan çoktan şaşkına dönmüştüm.