Cách thiết lập bonding interface trong RHEL6
Linux
91
network
12
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.
297 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
79 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 hơn 3 năm trước
79 8
White
45 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 gần 3 năm trước
45 7
White
37 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 gần 3 năm trước
37 0
Bài viết liên quan
White
1 0
sudo du sh
t viết hơn 2 năm trước
1 0
White
34 10
Thời kỳ mới đi làm tôi nghĩ cứ phải gõ thật nhiều cho quen cho nhớ nhưng lâu dần việc đó cho cảm giác thật nhàm chán. Hiện giờ, những gì tôi hay là...
manhdung viết hơn 3 năm trước
34 10
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
59 bài viết.
297 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á!