Khi sợi cáp mạng trở thành ‘điểm chết’ của hệ thống
2 giờ sáng, điện thoại rung bần bật. Đầu dây bên kia, sếp hốt hoảng báo hệ thống sập, khách hàng không thể truy cập. Bạn check log và phát hiện một sự thật đắng ngắt: một sợi cáp mạng cũ bị hỏng, hoặc một cổng Switch bị chết. Một lỗi phần cứng vài trăm nghìn đồng đã đánh sập hệ thống phục vụ hàng nghìn người dùng.
Tôi từng rơi vào cảnh này khi quản lý cụm server CentOS 7. Hồi đó, mỗi server chỉ cắm duy nhất một sợi cáp. Khi sợi cáp đó gặp sự cố, server bị cô lập hoàn toàn. Bài học rút ra rất rõ ràng: Đừng bao giờ đặt toàn bộ niềm tin vào một thiết bị phần cứng đơn lẻ.
Tại sao một card mạng là chưa đủ?
Việc sử dụng một card mạng (NIC) duy nhất luôn tồn tại hai rủi ro lớn:
- Single Point of Failure (SPOF): Chỉ cần card mạng lỗi driver hoặc đứt cáp, server sẽ biến thành một “hòn đảo” cô độc.
- Nghẽn cổ chai (Bottleneck): Với các dịch vụ ngốn băng thông như Database hay File Server, cổng 1Gbps thường xuyên chạm ngưỡng 90-100% tải. Điều này khiến tốc độ phản hồi của ứng dụng chậm đi trông thấy.
Khi migrate 5 server quan trọng sang CentOS Stream 9, tôi đã chuẩn hóa lại hạ tầng bằng Network Teaming. Đây là giải pháp giúp hệ thống đạt độ ổn định chuẩn Enterprise của RHEL (Red Hat Enterprise Linux).
Teaming hay Bonding: Lựa chọn nào hiện đại hơn?
Dân quản trị Linux lâu năm thường quen với Bonding. Tuy nhiên, từ RHEL 7 trở đi, Network Teaming đã trở thành giải pháp thay thế mạnh mẽ hơn.
Bonding xử lý logic chủ yếu trong nhân (kernel). Ngược lại, Teaming đẩy phần này ra ngoài (user-space) thông qua daemon teamd. Cách tiếp cận này giúp Teaming linh hoạt, dễ mở rộng và giám sát link thông minh hơn hẳn.
Cấu hình Network Teaming trên CentOS Stream 9
Bạn cần ít nhất 2 card mạng vật lý. Giả sử server có hai card là enp1s0 và enp2s0. Chúng ta sẽ gộp chúng thành một interface ảo tên là team0.
Bước 1: Kiểm tra phần cứng
Đầu tiên, hãy liệt kê danh sách các interface hiện có để xác định đúng tên card mạng.
nmcli device status
Ghi lại tên các card đang ở trạng thái disconnected. Chúng ta sẽ dùng chúng ở bước tiếp theo.
Bước 2: Tạo Interface Team chính
Sử dụng nmcli – công cụ tiêu chuẩn trên CentOS 9. Tôi sẽ cấu hình chế độ activebackup. Trong chế độ này, một card chạy chính, card còn lại dự phòng. Nếu card chính hỏng, card phụ sẽ thay thế sau chưa đầy 1 giây.
nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
Nếu muốn gộp băng thông để tăng tốc độ truyền tải, bạn hãy thay activebackup bằng loadbalance.
Bước 3: Gán các card vật lý vào Team
Tiếp theo, chúng ta đưa hai card vật lý vào làm “thành viên” của team0.
# Gán card thứ nhất
nmcli connection add type team-slave con-name team0-slave1 ifname enp1s0 master team0
# Gán card thứ hai
nmcli connection add type team-slave con-name team0-slave2 ifname enp2s0 master team0
Bước 4: Thiết lập địa chỉ IP
Lưu ý: Bạn không đặt IP lên card lẻ (enp1s0, enp2s0). Mọi thông số IP phải được cấu hình trực tiếp trên interface team0.
nmcli connection modify team0 ipv4.addresses 192.168.1.100/24
nmcli connection modify team0 ipv4.gateway 192.168.1.1
nmcli connection modify team0 ipv4.dns "8.8.8.8,8.8.4.4"
nmcli connection modify team0 ipv4.method manual
Bước 5: Kích hoạt hệ thống
Bật các interface slave trước, sau đó kích hoạt team chính để hoàn tất.
nmcli connection up team0-slave1
nmcli connection up team0-slave2
nmcli connection up team0
Kiểm tra thực tế: Đừng chỉ tin vào lý thuyết
Trong ngành IT, mọi cấu hình đều vô nghĩa nếu không được test. Để xem trạng thái của Team, hãy dùng lệnh:
teamdctl team0 state
Hãy thử một bài test “bạo lực”: Rút cáp mạng của card đang active. Nếu cấu hình đúng, lệnh ping đến server chỉ mất khoảng 1-2 gói tin rồi hoạt động bình thường trên card còn lại. Lúc này, bạn có thể hoàn toàn yên tâm kê cao gối ngủ.
Các chế độ Runner phổ biến
Tùy nhu cầu, bạn có thể chọn runner phù hợp trong file JSON:
- activebackup: Ưu tiên dự phòng, dễ cấu hình, không cần can thiệp vào Switch.
- roundrobin: Truyền gói tin tuần tự qua từng card để tăng băng thông.
- loadbalance: Sử dụng thuật toán thông minh để phân phối lưu lượng.
- lacp (802.3ad): Chế độ chuyên nghiệp nhất để gộp băng thông. Lưu ý: Switch của bạn cũng phải hỗ trợ và cấu hình LACP tương ứng.
Lời kết
Triển khai Network Teaming không khó, nhưng giá trị nó mang lại là sự an tâm tuyệt đối. Trong một lần bảo trì Switch gần đây, tôi đã rút nóng dây mạng để sắp xếp lại tủ Rack mà dịch vụ vẫn chạy phăm phăm. Không một khách hàng nào phàn nàn, không một cảnh báo đỏ nào hiện lên.
Với các hệ thống Production, hãy coi Network Teaming là tiêu chuẩn bắt buộc. Chúc các bạn cấu hình thành công!

