IP Bonding - a maximális hálózati sebességért

Kiszolgáló hálózati kapcsolatának gyorsítása IP bondinggal.

Két gépet, 4 Realtek hálókártyát és két Vigor switchet használtam. Az egyszerűség kedvéért a System Rescue Live CDt alkalmaztam mindkét gépen.
Mivel ez egy „pehelysúlyú” rendszer, ezért csak NFS kapcsolatot építettem fel a gépek között és így vizsgáltam a sebességet.
Az adatok tárolását a gép memóriájában oldottam meg, így a HDDk sebességét figyelmen kívül hagyhattam.
A próbáknál az adatfolyamot a /dev/zero-ból szedtem, így figyelmen kívül hagyhattam a gépek processzorának teljesítményét

Konfguráció:


Első gép:
modprobe  bonding
ip addr add 192.168.100.10/24 brd + dev bond0
ip link set dev bond0 up
ifenslave  bond0 eth1 eth2
mkdir /mnt/mem
mount -t tmpfs tmpfs /mnt/mem -orw,size=900M
/etc/exports
/mnt/mem  192.168.0.0/255.255.0.0(rw,no_root_squash,no_subtree_check,fsid=1) # az fsid=1 akkor kell, ha nem fizikai lemezzel dolgozunk
exportfs -a
/etc/init.d/nfs restart

Második gép:
modprobe  bonding
ip addr add 192.168.100.11/24 brd + dev bond0
ip link set dev bond0 up
ifenslave  bond0 eth1 eth2
/etc/init.d/nfsmount restart
mkdir /mnt/nfs
mount -t nfs 192.168.100.10:/mnt/mem /mnt/nfs


Próbák:

1. Az első tesztben minden UTP kábel egy switchbe futott be.


root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/128M  bs=1024K count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 7.37597 s, 18.2 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/256M  bs=1024K count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 14.4632 s, 18.6 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/512M  bs=1024K count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 27.2754 s, 19.7 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/768M  bs=1024K count=768
768+0 records in
768+0 records out
805306368 bytes (805 MB) copied, 42.2862 s, 19.0 MB/s


2. A második próbánál két switchet használtam. A két switch nem volt összekötve egymással, viszont mindkét gépből egy-egy kábel ment mindkét switchbe.
 
Látható, hogy a switchnek csak két portját használva, az átviteli sebesség megközelítette az elméleti sebesség határt, vagyis a 2x100Mb-et.

root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/128M  bs=1024K count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 6.02696 s, 22.3 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/256M  bs=1024K count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 11.7297 s, 22.9 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/512M  bs=1024K count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 23.216 s, 23.1 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/768M  bs=1024K count=768
768+0 records in
768+0 records out
805306368 bytes (805 MB) copied, 34.6693 s, 23.2 MB/s

3. A harmadik próbánál is két switchet használtam, viszont ezek össze voltak kötve egymással.
Látható, hogy a sebességet nem befolyásolta az összeköttetés.
Ezzel az összeállítással elkerülhető, hogy a két switchet összekötő portok sebessége csökkentse a hálózat sebességét. Ezt az útvonalat a switchre kötött más gépek használják az egymás közötti kommunikációjuk során – ha a kommunikációban résztvevő gépek nem egy switchre vannak kötve.

root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/128M  bs=1024K count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 6.01984 s, 22.3 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/256M  bs=1024K count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 11.7353 s, 22.9 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/512M  bs=1024K count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 23.1508 s, 23.2 MB/s
root@sysresccd /root % dd if=/dev/zero of=/mnt/nfs/768M  bs=1024K count=768
768+0 records in
768+0 records out
805306368 bytes (805 MB) copied, 34.5867 s, 23.3 MB/s

Konklúzió:
Az IP Bonding segítségével a kiszolgáló hálózati sebessége közel kétszeresére gyorsul (két hálózati kártya használata és 100Mb esetén). Továbbá a switchek közötti forgalom is csökkenthető, így elkerülhető, hogy egy switch egyetlen portján koncentrálódjon a kiszolgáló teljes hálózati forgalma.

Update
Konfigurációval kapcsolatos tapasztalatok

Kétféle konfigurációval próbálkoztam, mindkét konfiguráció működésének feltétele az
ifenslave csomag telepítése
1. megoldás
A bonding modult be kell tölteni a kernelbe. Ennek a modulnak beállításokat kell megadni. Erre az egyik lehetőség a következő sorok felvétele a etc/modprobe.d/arch/i386 fájlba:

alias bond0 bonding
options bond0 mode=5 miimon=100 downdelay=200 updelay=200 max_bonds=2

Ha ez megvan, akkor modprobe bonding és depmod –a után már használatjuk is a bond0 interfészt. A konfiguráció következő lépése a bond0 interfész beállítása. Ezt a /etc/network/interfaces fájlban a következő képen tettem meg:

auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto bond0
iface bond0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.254
up /sbin/ifenslave bond0 eth1
up /sbin/ifenslave bond0 eth0

A hálózat vagy az egész gép újraindítását követően máris működik a bonding. Állapotáról a /proc/net/bonding/bond0 ad információt
2. megoldás
Ez a megoldás kevésbé elegáns, de nem volt vele probléma.
A /etc/rc.local fájlba az exit 0 sor elé a következőket illesztettem:

modprobe bonding mode=5 miimon=100 downdelay=200 updelay=200
depmod –a
ifconfig bond0 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254
ifenslave bond0 eth0 eth1

Az első megoldásnál volt probléma, nem is egyszer. Valami okból kifolyólag az egyik bond0- ban használt interfészt a rendszer átnevezte és csak ifconfig –a paranccsal látszott. Ilyen esetekben ha bonding nélkül indítjuk a gépet, ismét megjelenik az interfész. Emiatt a hiba miatt bár kevésbé elegáns, de biztosabb megoldás a második. Mindkét esetben meg kell adni, hogy milyen módon kívánjuk használni a bond0 interfésznek megadott fizikai interfészeket. 7 módot adhatunk meg az igényeknek megfelelően. Ugyanakkor a módok használhatósága függ a switch- től is, nem minden switch-csel működik, ez a megoldás, erre is volt példa.


Boss2017-06-15 01:21:53
I had the great pleasure of taking care of Bobbi at 1 time .She was a wonderful wone.mNevar complained about anything.To her kids I like to say she loved you all very much and was proud of all of you .And she loved her animals too.

Új hozzászólás: