Ethernet kanālu saistīšana jeb NIC Teaming uz Linux sistēmām
Izmantojot Ethernet kanālu savienojumu, divas vai vairākas tīkla saskarņu kartes (NIC) ļauj izveidot vienu virtuālo NIC karti, kas var palielināt joslas platumu un nodrošināt NIC karšu atlaišanu. Tas ir lielisks veids, kā ražošanas sistēmā panākt liekas saites, kļūdu toleranci vai slodzes līdzsvarošanas tīklus. Ja viens fiziskais NIC nedarbojas vai ir atvienots no tīkla, tas automātiski pārvietos resursus uz citu NIC karti. Kanālu/NIC savienošana darbosies ar kodola draivera palīdzību. Mēs izmantosim divus NIC, lai parādītu to pašu.
Ir pieejami gandrīz seši kanāla obligāciju veidi. Šeit mēs pārskatīsim tikai divu veidu kanālu obligācijas, kas ir populāras un plaši izmantotas.
- 0: slodzes līdzsvarošana (apļa pārbaude): satiksme tiek pārraidīta secībā vai kārtā no abiem NIC. Šis režīms nodrošina slodzes līdzsvarošanu un kļūdu toleranci.
- 1: Active-Backup: Tikai viens vergu NIC ir aktīvs noteiktā laika posmā. Cita interfeisa karte būs aktīva tikai tad, ja aktīvais vergu NIC neizdosies.
Ethernet kanālu saistīšanas izveide
Mums ir divas tīkla Ethernet kartes, t.i., eth1 un eth2, kur bond0 tiks izveidota saistīšanas nolūkā. Nepieciešams priviliģēts superlietotājs, lai izpildītu zemāk norādītās komandas.
Konfigurācijas failā miniet parametru MASTER bond0 un eth1 kā SLAVE, kā parādīts tālāk.
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
Šeit arī norādiet parametru MASTER bond0 un eth2 kā 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
Izveidojiet bond0 un konfigurējiet Channel bonding interfeisu direktorijā “/ etc/sysconfig/network-scripts /” ar nosaukumu ifcfg-bond0.
Šis ir kanālu savienošanas konfigurācijas faila paraugs.
# 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"
Piezīme: Iepriekšminētajā konfigurācijā mēs esam izvēlējušies Bonding Options režīmu = 0, t.i., Round-Robin un miimon = 100 (Aptaujas intervāli 100 ms).
Apskatīsim saskarnes, kas izveidotas, izmantojot komandu ifconfig, kas parāda, ka “bond0” darbojas kā MASTER, kā arī saskarnes “eth1” un “eth2”, kas darbojas kā SLAVES.
# 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)
Restartējiet tīkla pakalpojumu un saskarnēm jābūt OK.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Obligācijas statusa pārbaude.
# watch -n .1 cat /proc/net/bonding/bond0
Zemāk izvads parāda, ka līmēšanas režīms ir slodzes līdzsvarošana (RR) un parādās eth1 un eth2.
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
Šajā scenārijā vergu saskarnes paliek nemainīgas. tikai viena izmaiņa būs obligāciju saskarnē ifcfg-bond0, nevis ‘0’, tā būs ‘1’, kas parādīta kā zemāk.
# 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"
Restartējiet tīkla pakalpojumu un pārbaudiet saistīšanas statusu.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Obligācijas statusa pārbaude ar komandu.
# watch -n .1 cat /proc/net/bonding/bond0
Bonding Mode parāda kļūdu toleranci (aktīvā dublēšana), un Slave Interface ir aktivizēts.
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
Piezīme. Manuāli uz leju un uz augšu vergu saskarnes, lai pārbaudītu kanālu saistīšanas darbību. Lūdzu, skatiet komandu, kā norādīts zemāk.
# ifconfig eth1 down # ifconfig eth1 up
Tieši tā!