Ethernet Channel Bonding aka NIC Teaming ໃນ Linux Systems
Ethernet Channel Bonding ເຮັດໃຫ້ສອງຫຼືຫຼາຍກວ່າ Network Interfaces Card (NIC) ເຂົ້າໄປໃນບັດ NIC virtual ດຽວເຊິ່ງອາດຈະເຮັດໃຫ້ແບນວິດເພີ່ມຂື້ນແລະສະ ໜອງ ການຊ້ ຳ ບໍ່ ໜຳ ບັດ NIC. ນີ້ແມ່ນວິທີທີ່ດີທີ່ຈະບັນລຸການເຊື່ອມຕໍ່ທີ່ຊ້ ຳ ຊ້ອນ, ຄວາມທົນທານຕໍ່ຄວາມຜິດຫຼືການ ນຳ ໃຊ້ເຄືອຂ່າຍທີ່ສົມດຸນໃນລະບົບການຜະລິດ. ຖ້າ NIC ທາງຮ່າງກາຍ ໜຶ່ງ ຫຼຸດລົງຫຼືຖອດອອກ, ມັນຈະຍ້າຍຊັບພະຍາກອນໄປຫາບັດ NIC ອື່ນໆໂດຍອັດຕະໂນມັດ. ຊ່ອງທາງການເຊື່ອມໂຍງ/NIC ຈະເຮັດວຽກໂດຍການຊ່ວຍເຫຼືອຂອງຜູ້ຂັບຂີ່ທີ່ຜູກພັນໃນ Kernel. ພວກເຮົາຈະໃຊ້ສອງ NIC ເພື່ອສະແດງດຽວກັນ.
ມີເກືອບຫົກປະເພດຂອງ Channel Bond ປະເພດຕ່າງໆ. ນີ້, ພວກເຮົາຈະທົບທວນພຽງແຕ່ສອງປະເພດຂອງ Channel Bond ເທົ່ານັ້ນທີ່ໄດ້ຮັບຄວາມນິຍົມແລະ ນຳ ໃຊ້ຢ່າງກວ້າງຂວາງ.
<
ການສ້າງພັນທະບັດ Channel Ethernet
ພວກເຮົາມີສອງເຄືອຂ່າຍ Network Ethernet Card i.e eth1 ແລະ eth2 ບ່ອນທີ່ bond0 ຈະຖືກສ້າງຂື້ນເພື່ອຈຸດປະສົງການຜູກພັນ. ຕ້ອງການສິດທິພິເສດຂອງ superuser ເພື່ອປະຕິບັດ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
ຕົວກໍານົດການກ່າວ MASTER bond0 ແລະ eth1 interface ເປັນ SLAVE ໃນໄຟລ໌ config ດັ່ງທີ່ສະແດງຢູ່ທາງລຸ່ມ.
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
ນີ້ຍັງ, ລະບຸພາລາມິເຕີ 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 ແລະ ກຳ ນົດຊ່ອງທາງໃນການເຊື່ອມໂຍງ Channel ໃນ“/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"
ໝາຍ ເຫດ: ໃນການຕັ້ງຄ່າຂ້າງເທິງນີ້ພວກເຮົາໄດ້ເລືອກຮູບແບບຕົວເລືອກພັນທະບັດ = 0 i.e 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)
ໃຫ້ບໍລິການ Restart Network ແລະອິນເຕີເຟດ.
# 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
ຜົນໄດ້ຮັບຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນວ່າຮູບແບບການເປັນພັນທະບັດແມ່ນ Load Balancing (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 Mode) ກຳ ລັງສະແດງໃຫ້ເຫັນເຖິງຄວາມຜິດຂອງຄວາມຜິດ (ການ ສຳ ຮອງຂໍ້ມູນທີ່ໃຊ້ງານໄດ້) ແລະ 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
ໝາຍ ເຫດ: ລົງມືແລະລົງ Slave Interfaces ເພື່ອກວດເບິ່ງການເຮັດວຽກຂອງ Channel Bonding. ກະລຸນາເບິ່ງ ຄຳ ສັ່ງດັ່ງລຸ່ມນີ້.
# ifconfig eth1 down # ifconfig eth1 up
ວ່າມັນ!