Skip to content

Latest commit

 

History

History
184 lines (145 loc) · 6.56 KB

6. Bonding.md

File metadata and controls

184 lines (145 loc) · 6.56 KB

Tìm hiểu bonding trong Centos

1. Linux Bonding

1. Khái niệm

  • Linux cho phép quản trị viên bonnding interface từ 2 hoặc nhiều interface kết hợp thành 1 interface ảo có tên bonding interface bằng cách sử dụng module kernel "bonding " trên Linux .
  • Bằng cách này giúp nhiều interface vật lý hoạt động như một network interface nhằm : tăng bandwidth, tăng tính dự phòng nếu 1 card vật lý chết thì sẽ còn card còn lại

2. Các mode bonding

Mode Chính sách Hoạt động Khả năng chịu lỗi Cân bằng tải
0 Round Rubin Các packet được truyền / nhận tuần tự trên từng giao diện Không
1 Active Backup khi một NIC active thì NIC khi sẽ ở trạng thái sleep và ngược lại , chỉ hỗ trợ trên x86 Không
2 XOR Truyền tải dựa trên địa chỉ MAC nguồn mà MAC đích
3 Broadcast Truyền packet trên tất cả slave interface Không
4 Dynamic Link Aggregation 802.3ad Tạo một nhóm các interface cùng tốc độ và duplex . Yêu cầu swtich hỗ trợ IEEE 802.3ad Yes Yes
5 Transmit Load Balancing (TLB) cân bằng tải trên quá trình truyền dữ liệu ra ngoài : lưu lượng packet ra ngoài sẽ phân phối tùy thuộc vào % chịu tải còn rảnh lên các slave interface . Lưu lượng đến sẽ gửi đến một slave , nối bị lỗi sẽ chiếm địa chỉ MAC và đảm nhiệm nhận packet
6 Adaptive Load Balancing (ALB) Cân bằng tải thích ứng: bao gồm cả cân bằng tải truyền (balance-tlb) và cân bằng tải nhận (rlb - receive load balancing) đối với lưu lượng IPv4 Bonding driver sẽ chặn các bản tin phản hồi ARP gửi bởi hệ thống cục bộ trên đường ra và ghi đè địa chỉ MAC nguồn bằng địa chỉ MAC của một trong các slaves trên đường bond.. Chỉ hỗ trợ trên x86

3. Các parameter trong bonding

  • max_bonds : số lượng bond driver tạo ra
  • tx_queues : số lượng packet ở hàng đợi truyền tải
  • num_grat_arp : số thông báo ngang hàng để xác định failover ovent
  • miimon : milliseconds để xác định failover
  • updelay : số milliseconds trì hoãn trước khi cho 1 slave thành thạng tháo up
  • downdelay : số milliseconds trì hoãn trước khi hủy 1 slave khi bị down
  • arp_interval : ARP monitor làm việc theo chu kì để check slave xem nó gửi hay nhận nhưng traffic gần nhất. Tùy chọn này cho phép kích hoạt ARP monitoring, mặc định nó sẽ bị disabled, giá trị mặc định cũng là 0.
  • arp_ip_target : Chỉ ra địa chỉ IP sẽ dược dùng làm ARP monitoring khi mà giá trị arp_interval > 0.
  • primary : Các card mạng sẽ được lựa chọn để làm primary device. Card mạng nào được chọn thì nó sẽ luôn là active slave nếu thời điểm đó nó available. Tùy chọn này chỉ có tác dụng ở mode 1, 5, và 6.

4. Lab Bonding Centos 7

  • Load module boding
modprobe bonding
  • Khởi tạo một bond interface mới
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.30.131
PREFIX=24
GATEWAY=192.168.30.1
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100"
EOF
  • Sửa cấu hình trên 2 interface slave ens224, ens256

cat << EOF > /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens224
DEVICE=ens224
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
MASTER=bond0
SLAVE=yes

EOF

cat << EOF > /etc/sysconfig/network-scripts/ifcfg-ens256
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens256
DEVICE=ens256
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
MASTER=bond0
SLAVE=yes

EOF

  • Khởi động lại network service
systemctl restart network
  • Kiểm tra IP trên cổng interface bond

[root@compute1 network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:0a:98:b6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.30.131/24 brd 192.168.30.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::c787:c683:5333:de24/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:0a:98:c0 brd ff:ff:ff:ff:ff:ff
8: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:0a:98:c0 brd ff:ff:ff:ff:ff:ff
9: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:0a:98:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.30.131/24 brd 192.168.30.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe0a:98c0/64 scope link 
       valid_lft forever preferred_lft forever

  • Kiểm tra thông tin bond interface
[root@compute1 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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

Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0a:98:c0
Slave queue ID: 0

Slave Interface: ens256
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0a:98:ca
Slave queue ID: 0

5. Tham khảo thêm

[1] : https://www.unixmen.com/linux-basics-create-network-bonding-on-centos-76-5/