Ethernet Channel Bonding γνωστό και ως NIC Teaming σε συστήματα Linux
Η Σύνδεση καναλιού Ethernet ενεργοποιεί δύο ή περισσότερες Κάρτες διεπαφής δικτύου (NIC) σε μία εικονική κάρτα NIC, η οποία ενδέχεται να αυξηθεί το εύρος ζώνης και παρέχει πλεονασμό Κάρτες NIC. Αυτός είναι ένας πολύ καλός τρόπος για την επίτευξη περιττών συνδέσεων, ανοχής σφαλμάτων ή δικτύων εξισορρόπησης φορτίου στο σύστημα παραγωγής. Εάν ένα φυσικό NIC είναι απενεργοποιημένο ή αποσυνδεδεμένο, θα μετακινήσει αυτόματα τους πόρους σε άλλη κάρτα NIC. Η σύνδεση Channel/NIC θα λειτουργήσει με τη βοήθεια του προγράμματος οδήγησης bonding στον Kernel. Θα χρησιμοποιήσουμε δύο NIC για να δείξουμε το ίδιο.
Υπάρχουν σχεδόν έξι τύποι τύπων Ομολόγων καναλιού που είναι διαθέσιμοι. Εδώ, θα εξετάσουμε μόνο δύο τύπους δεσμών καναλιού που είναι δημοφιλείς και χρησιμοποιούνται ευρέως.
- 0: Εξισορρόπηση φορτίου (Round-Robin): Η κίνηση μεταδίδεται με διαδοχική σειρά ή με τρόπο κυκλικής ροής και από τα δύο NIC. Αυτή η λειτουργία παρέχει εξισορρόπηση φορτίου και ανοχή σφαλμάτων.
- 1: Active-Backup : Μόνο ένα slave NIC είναι ενεργό σε οποιαδήποτε δεδομένη χρονική στιγμή. Η άλλη κάρτα διασύνδεσης θα είναι ενεργή μόνο εάν αποτύχει το ενεργό υποτελές NIC.
Δημιουργία σύνδεσης καναλιών Ethernet
Έχουμε δύο Κάρτες Ethernet Δικτύου, δηλαδή eth1 και eth2 όπου θα δημιουργηθεί το bond0 για σκοπούς σύνδεσης. Χρειάζεστε προνόμιο υπερχρήστη για την εκτέλεση των παρακάτω εντολών.
Εξισορρόπηση φορτίου (Round-Robin)
Διαμόρφωση eth1
Αναφέρετε την παράμετρο MASTER bond0 και eth1 ως SLAVE στο αρχείο διαμόρφωσης όπως φαίνεται παρακάτω.
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes
Διαμόρφωση eth2
Εδώ, επίσης, καθορίστε την παράμετρο MASTER bond0 και eth2 ως 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
Δημιουργία διαμόρφωσης bond0
Δημιουργήστε bond0 και διαμορφώστε τη διεπαφή σύνδεσης καναλιού στον κατάλογο "/etc/sysconfig/network-scripts/" που ονομάζεται ifcfg-bond0.
Ακολουθεί ένα δείγμα αρχείου διαμόρφωσης σύνδεσης καναλιού.
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"
Σημείωση: Στην παραπάνω διαμόρφωση έχουμε επιλέξει Επιλογές Bonding mode=0, δηλαδή Round-Robin και miimon=100 (Διαστήματα ψηφοφορίας 100 ms).
Ας δούμε τις διεπαφές που δημιουργήθηκαν χρησιμοποιώντας την εντολή ifconfig, η οποία δείχνει το "bond0" να εκτελείται ως MASTER και οι δύο διεπαφές "eth1" και "eth2" που εκτελείται ως 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)
Επανεκκινήστε την υπηρεσία δικτύου και οι διεπαφές θα πρέπει να είναι ΟΚ.
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Έλεγχος της κατάστασης του ομολόγου.
watch -n .1 cat /proc/net/bonding/bond0
Δείγμα εξόδου
Η παρακάτω έξοδος δείχνει ότι η Λειτουργία σύνδεσης είναι Ισορροπία φορτίου (RR) και eth1 & 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
Δημιουργία ενεργού αντιγράφου ασφαλείας
Σε αυτό το σενάριο, οι διεπαφές Slave παραμένουν οι ίδιες. μόνο μία αλλαγή θα υπάρχει στη διεπαφή ομολόγων ifcfg-bond0 αντί για "0" θα είναι "1" που εμφανίζεται όπως παρακάτω .
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"
Επανεκκινήστε την υπηρεσία δικτύου και ελέγξτε την κατάσταση της σύνδεσης.
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Έλεγχος της κατάστασης του δεσμού με εντολή.
watch -n .1 cat /proc/net/bonding/bond0
Δείγμα εξόδου
Η λειτουργία Bonding εμφανίζει ανοχή σφαλμάτων (ενεργό εφεδρικό αντίγραφο) και το Slave Interface είναι ενεργοποιημένο.
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
Σημείωση: Χειροκίνητα κάτω και επάνω τις υποτελείς διεπαφές για να ελέγξετε τη λειτουργία του Σύνδεση καναλιού. Δείτε την εντολή όπως παρακάτω.
ifconfig eth1 down
ifconfig eth1 up
Αυτό είναι!