Cách thiết lập bonding interface trong RHEL6
Linux
77
network
10
White

Bùi Hồng Hà viết ngày 29/07/2015

Giới thiệu

alt text

RHEL (Redhat enterprise Linux) cho phép quản trị hệ thống kết hợp nhiều network interface vào thành 1 interface sử dụng bonding module của Linux kernel và một interface bonding. Điều này cho phép 2 network interface hoạt động như 1 interface. Điều này đem lại 2 lợi ích.

  • Tăng độ tin cậy. Bonding module có thể cho phép 2 interface hoạt động ở chế độ active-standby. Khi đường truyền active interface bị lỗi, dẫn đến việc không truyền tải được nội dung, Linux kernel sẽ tự động chuyển qua standby interface.
  • Tăng bandwidth. Nếu là cable G thì thông lượng tối đa của 1 Giga NIC là 1Gbps. Bằng việc load-balancing qua 2 NIC, ta có thể tăng thông lượng truyền tải lên 2Gbps.

Cách cài đặt bonding

Yêu cầu

  • Máy tính phải có 2 card mạng, tương đương với 2 cổng mạng
  • Mỗi cổng phải được cắm vào 1 đường truyền khác nhau (switch khác nhau)

Cách cài đặt

Bước 1: Load module bonding
$ modprobe --first-time bonding
$ modinfo bonding
Bước 2: Tạo bond channel

Tạo 1 file ifcfg-bondN ở đây là N là 1 số thứ tự của device (ví dụ 0) có nội dung gần như sau:

DEVICE=bond0
IPADDR=192.168.10.25
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
BONDING_OPTS="bonding parameters separated by spaces"

ở đây IP cần cài cho bond sẽ là 192.168.10.25
BONDING_OPTS có thể cài các giá trị sau: BONDING_OPTS="miimon=100 mode=1"

mode của bond có thể là 1 trong các lựa chọn sau:

  • mode = 1: active - backup
  • mode = 2: balance - xor
  • mode = 3: broadcast
  • mode = 4: 802.3ad
  • mode = 5: balance - tlb
  • mode = 6: balance - alb

miimon: là giá trị tính bằng milisecond (ms) chỉ thời gian giám sát MII của NIC.

Bước 3: Cấu hình slave

Như ở ảnh đầu bài viết, 1 bond sẽ có 2 slave là eth0 và eth1. 2 slaves này sẽ được cấu hình để cùng trỏ đến master là bond. Nội dung file cầu hình của eth0 và eth1 như sau

# /etc/sysconfig/network-scripts/ifcfg-ethX
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Chú ý slave = yesmaster = bond0

Bước 4: Khởi động lại mạng và kiểm tra
$ /etc/init.d/network restart
$  cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

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

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:19:99:ee:6d:e4
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:19:99:ee:6d:e5
Slave queue ID: 0

Trong trường hợp NIC (ethX) của bạn chưa được khởi tạo, bạn có thể cần reboot lại máy.

Trong ví dụ trên mình có 2 NIC được "bó với nhau" qua bond0. NIC hiện tại đang active là eth0. Mỗi NIC có bandwidth là 1Gbps. Mình sử dụng active-backup mode 1. Với cách cấu hình này, khi 1 NIC / switch bị hỏng, network của máy chủ không bị gián đoạn.

Bạn có thể kiểm tra tính đúng đăn của cấu hình bằng cách thử rút 1 dây mạng và quan sát Linux tự động failover NIC từ eth0 sang eth1 và ngược lại. Log của quá trình này được ghi ra syslog (/var/log/messages).

Kết luận

Sử dụng tính năng bonding của Linux cho phép ta tăng độ tin cậy của hệ thống và tăng được bandwidth. Nếu bạn có nhiều và có nhiều port thì không tội gì không dùng bonding (trừ phi tiết kiệm switch :D)

Tham khảo

  1. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-networkscripts-interfaces-chan.html
  2. https://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Bùi Hồng Hà

59 bài viết.
262 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
74 8
Bài viết tổng hợp cơ chế hoạt động của https Chút ít về chữ ký điện tử Chữ ký điện tử là cơ chế bao gồm 3 thuật toán: Thuật toán chọn một khóa...
Bùi Hồng Hà viết gần 3 năm trước
74 8
White
43 7
Giới thiệu Gần đây thấy bản thân chém gió rất nhiều về MapReduce, Hadoop v.v nhưng chưa thấy có bài viết nào tổng hợp + giải thích cụ thể về MapRe...
Bùi Hồng Hà viết 2 năm trước
43 7
White
33 0
Giới thiệu Google là một công ty dẫn đầu về phần mềm xử lý Big Data. Hầu hết các phần mềm xử lý dữ liệu như Hadoop đều có nguồn gốc ý tưởng từ Goo...
Bùi Hồng Hà viết 2 năm trước
33 0
Bài viết liên quan
White
1 0
sudo du sh
t viết gần 2 năm trước
1 0
Male avatar
7 0
Nhu cầu: Một số khách hàng phàn nàn là việc kết nối đến server khá chậm. Trong trường hợp này, việc đầu tiên là phải kiểm tra đường kết nối. Vì kh...
manhdung viết gần 3 năm trước
7 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
59 bài viết.
262 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!