Linux altında bağlı arayüzlerle ilgili bazı kafa karıştırıcı davranışlar görüyorum ve birisinin benim için temizleyebileceği umuduyla durumu oraya atmak istiyorum.
İki sunucum var: Sunucu 1 (S1) 4x 1Gbit ethernet bağlantılarına sahip; Sunucu 2 (S2) 'nin 2x 1Gbit ethernet bağlantısı vardır. Her iki sunucuda, 3.11.0-15 çekirdeği de olsa (lts-saucy linux-generic paketinden) Ubuntu 12.04 çalışıyor.
Her iki sunucu da ilgili tüm ağ arabirimlerine aşağıdaki yapılandırma (in /etc/network/interfaces
) ile tek bir bond0 arabiriminde paketlenmiştir :
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Sunucular arasında, söz konusu bağlantı noktalarında LACP için doğru şekilde yapılandırılmış (bence) birkaç HP anahtarı vardır.
Şimdi bağlantı çalışıyor - ağ trafiği her iki makineye de mutlu bir şekilde akıyor. Ve tüm ilgili arayüzler kullanılıyor, bu yüzden toplama tamamen başarısız gibi değil. Ancak, bu iki sunucu arasında mümkün olduğunca fazla bant genişliğine ihtiyacım var ve beklediğim ~ 2Gbit / s almıyorum.
Testlerimde, her sunucunun her TCP bağlantısını (örn. İperf, scp, nfs, her neyse) tek bir bağımlı arabirime ayırdığını görüyorum. Esasen her şey en fazla 1 gigabit ile sınırlı görünüyor.
Ayarlayarak , iki bağımlı arayüze göndermek için bond-xmit-hash-policy layer3+4
kullanabilirim iperf -c S1 -P2
, ancak sunucu tarafında alım hala sadece bir bağımlı arayüzde gerçekleşiyor ve bu nedenle toplam çıktı 1Gbit / s'de kapatılıyor, yani istemci ~ 40-50MB / s gösteriyor iki bağımlı arayüzde, sunucu bir bağımlı arayüzde ~ 100MB / s gösterir. Ayarlama olmadan bond-xmit-hash-policy
gönderme işlemi bir bağımlı arabirimle de sınırlıdır.
LACP'nin bu tür bağlantı paketlemesine izin vermesi gerektiği izlenimini edindim, örneğin, iki ana bilgisayar arasındaki tüm kullanılabilir arabirimleri kullanmak için tek bir scp aktarımına izin verdim.
LACP anlayışım yanlış mı? Veya bir yerlerde bazı yapılandırma seçeneklerini kaçırdım mı? Soruşturma için herhangi bir öneri veya ipucu çok takdir edilecektir!