„Ethernet Channel Bonding“ dar žinomas kaip „NIC Teaming“ „Linux“ sistemose


Eterneto kanalo sujungimas įgalina dvi ar daugiau tinklo sąsajų kortelių (NIC) į vieną virtualią NIC kortelę, kuri gali padidėti pralaidumą ir užtikrina NIC kortelių dubliavimą. Tai puikus būdas pasiekti perteklinius ryšius, atsparumą gedimams ar apkrovos balansavimo tinklus gamybos sistemoje. Jei vienas fizinis NIC yra neveikiantis arba atjungtas, jis automatiškai perkels išteklius į kitą NIC kortelę. Kanalo/NIC susiejimas veiks naudojant susiejimo tvarkyklę brandulyje. Norėdami parodyti tą patį, naudosime du NIC.

Yra beveik šeši tipų Channel Bond tipai. Čia apžvelgsime tik du populiarius ir plačiai naudojamus kanalo obligacijų tipus.

  1. 0: apkrovos balansavimas (Round-Robin): srautas perduodamas nuoseklia tvarka arba abiem NIC. Šis režimas užtikrina apkrovos balansavimą ir atsparumą gedimams.
  2. 1: aktyvi atsarginė kopija: bet kuriuo metu aktyvus tik vienas pagalbinis NIC. Kita sąsajos kortelė bus aktyvi tik tada, kai sugenda aktyvus pagalbinis NIC.

Ethernet kanalų sujungimo kūrimas

Turime dvi tinklo eterneto korteles, t. y. eth1 ir eth2, kuriose bond0 bus sukurtas sujungimo tikslais. Norint vykdyti toliau pateiktas komandas, reikalingas supervartotojas.

Apkrovos balansavimas (apvalkalas)

Konfigūruoti eth1

Konfigūracijos faile nurodykite parametrą MASTER bond0 ir eth1 kaip SLAVE, kaip parodyta toliau.

vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes
Konfigūruoti eth2

Čia taip pat nurodykite parametrą MASTER bond0 ir eth2 sąsają kaip SLAVE.

vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
Sukurkite bond0 konfigūraciją

Sukurkite bond0 ir sukonfigūruokite kanalų susiejimo sąsają „/etc/sysconfig/network-scripts/“ kataloge, pavadintame ifcfg-bond0.

Toliau pateikiamas kanalų sujungimo konfigūracijos failo pavyzdys.

vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

Pastaba: aukščiau pateiktoje konfigūracijoje pasirinkome klijavimo parinktis mode=0, ty Round-Robin ir miimon=100 (Apklausos intervalai 100 ms).

Pažiūrėkime sąsajas, sukurtas naudojant komandą ifconfig, kuri rodo, kad „bond0“ veikia kaip MASTER, abi sąsajos „eth1“ ir „eth2““ veikia kaip VERGAI.

ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          inet addr:192.168.246.130  Bcast:192.168.246.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1231555 (1.1 MiB)  TX bytes:1622391 (1.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1196931 (1.1 MiB)  TX bytes:819042 (799.8 KiB)
          Interrupt:19 Base address:0x2000

eth2      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:34624 (33.8 KiB)  TX bytes:803583 (784.7 KiB)
          Interrupt:19 Base address:0x2080

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

Iš naujo paleiskite tinklo paslaugą ir sąsajos turėtų būti gerai.

service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Obligacijos būklės patikrinimas.

watch -n .1 cat /proc/net/bonding/bond0
Išvesties pavyzdys

Toliau pateikta išvestis rodo, kad Bonding Mode yra Apkrovos balansavimas (RR) ir eth1 ir eth2 > pasirodo.

Every 0.1s: cat /proc/net/bonding/bond0                         Thu Sep 12 14:08:47 2013 

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Sukurkite aktyvią atsarginę kopiją

Pagal šį scenarijų Slave sąsajos išlieka tos pačios. obligacijų sąsajoje bus tik vienas pakeitimas ifcfg-bond0, o ne 0, tai bus 1, kuris rodomas kaip žemiau .

vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"

Iš naujo paleiskite tinklo paslaugą ir patikrinkite ryšio būseną.

service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Ryšio būsenos patikrinimas su komanda.

watch -n .1 cat /proc/net/bonding/bond0
Pavyzdžio išvestis

Sujungimo režimas rodo atsparumą gedimams (aktyvus atsarginis kopijavimas), o pavaldumų sąsaja veikia.

Every 0.1s: cat /proc/n...  Thu Sep 12 14:40:37 2013

Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Pastaba: rankiniu būdu žemyn ir aukštyn valdovų sąsajas patikrinkite, ar veikia Kanalų sujungimas. Žiūrėkite toliau pateiktą komandą.

ifconfig eth1 down
ifconfig eth1 up

Viskas!