Khi hệ thống mạng gia đình (home network) ngày càng mở rộng và số lượng dịch vụ tự host (self-host) tăng lên, sự phụ thuộc vào các dịch vụ này cũng theo đó mà lớn dần. Đây là sự đánh đổi giữa quyền riêng tư khi dữ liệu nằm trên thiết bị của bạn thay vì máy chủ đám mây của các công ty khác, đi kèm với nhiều trách nhiệm hơn. Việc này đòi hỏi bạn phải tìm cách đảm bảo các dịch vụ đó luôn có tính sẵn sàng cao (High Availability – HA), bởi vì bạn không phải là người duy nhất trong gia đình sử dụng, và mọi sự cố ngừng hoạt động giờ đây là vấn đề của chính bạn.
Điều này có nghĩa là một Proxmox cluster với tính sẵn sàng cao đã được thiết lập để giảm thiểu khả năng các máy ảo (VM) ngừng hoạt động, nhưng vẫn còn một điểm lỗi đơn (Single Point of Failure – SPOF) về mặt kết nối mạng. Đây là lúc Keepalived phát huy tác dụng. Keepalived sử dụng giao thức dư thừa bộ định tuyến ảo (Virtual Router Redundancy Protocol – VRRP) để chia sẻ nhiều máy chủ hoặc dịch vụ trên một địa chỉ IP ảo duy nhất, đồng thời cung cấp phương pháp chuyển đổi dự phòng (failover) nếu một trong số chúng gặp sự cố. Đây là một công cụ tuyệt vời để xây dựng một mạng lưới kiên cường hơn và hoạt động gần như liền mạch. Mặc dù bạn có thể sử dụng HAProxy cho một mục đích chuyển đổi dự phòng tương tự và có thêm khả năng cân bằng tải, nhưng điều gì sẽ ngăn HAProxy ngừng hoạt động? Đúng vậy, đó lại là một instance Keepalived khác. Với mục tiêu giữ cho mọi thứ đơn giản và hiệu quả, Keepalived là lựa chọn tối ưu cho giai đoạn này.
Thẻ nhớ SD sử dụng cho Raspberry Pi trong môi trường Home Lab
5 Trường hợp ứng dụng Keepalived giúp dịch vụ Home Lab không bao giờ ngừng nghỉ
1. Đảm bảo hoạt động liên tục cho máy chủ DNS
Tự host một máy chủ DNS là một quá trình đáng giá, mang lại sự riêng tư cần thiết cho các thiết bị, mạng và thông tin cá nhân của bạn. Trong thời đại mà mọi hoạt động trực tuyến đều có nguy cơ bị theo dõi và kiếm tiền, việc tự bảo vệ là cực kỳ quan trọng. Nhiều người dùng đã sử dụng hai máy chủ Pi-hole để đảm bảo khi một máy gặp sự cố, máy kia sẽ tiếp quản và giữ an toàn cho mạng của họ.
Với Technitium, một máy chủ DNS đầy đủ tính năng mà bạn có thể tự host, tính năng clustering vẫn đang được phát triển. Cho đến khi đó, Keepalived là giải pháp lý tưởng. Bạn có thể cài đặt Keepalived trên NAS và một Mini PC chạy Proxmox, cho phép sử dụng một IP ảo duy nhất để truy cập cả hai instance Technitium. Để thiết lập, chỉ cần thêm dòng sau vào các máy chủ, sau đó liên kết Technitium với cả IP máy chủ và IP ảo trong Keepalived, và thêm IP ảo vào cài đặt DNS Server Local End Points trong Technitium.
net.ipv4.ip_nonlocal_bind=1
Giao diện dashboard Pi-hole hiển thị trên máy tính xách tay
2. Tăng cường độ tin cậy cho hệ thống nhà thông minh Home Assistant
Bạn có thể sử dụng Home Assistant để tự động hóa nhà thông minh và tích hợp nhiều hệ sinh thái khác nhau thành một khối thống nhất. Hệ thống này hoạt động cực kỳ hiệu quả khi máy ảo Home Assistant trên NAS có thể truy cập được bởi phần còn lại của mạng, nhưng đôi khi kết nối đến thiết bị đó bị gián đoạn. Bạn sẽ không chấp nhận việc máy chủ Google Home hay HomeKit ngừng hoạt động trong một thời gian dài, và Home Assistant của bạn cũng không nên như vậy.
Với Keepalived, vấn đề này được giải quyết. Bạn có thể giữ máy ảo đó làm máy chủ chính để định tuyến các yêu cầu, đồng thời có một container Docker chạy Home Assistant trên một thiết bị khác. Thiết bị này cũng chạy một thành phần Keepalived để kiểm tra xem máy ảo chính có đang hoạt động hay không. Với gói đăng ký Home Assistant Cloud, bạn có thể sao lưu dữ liệu để dễ dàng duy trì sự đồng bộ giữa hai instance Home Assistant. Một số tính năng mà container Docker không thể chạy cũng không phải là dịch vụ thiết yếu, vì vậy việc chúng không khả dụng trong thời gian ngắn cho đến khi bạn khởi động lại NAS hoặc khắc phục sự cố kết nối là hoàn toàn chấp nhận được.
Giao diện người dùng Home Assistant với chức năng hỗ trợ Jukebox
3. Giúp Reverse Proxy luôn sẵn sàng
Máy chủ Reverse Proxy là cánh cổng dẫn đến các ngăn xếp dịch vụ tự host của bạn, khiến nó trở thành một phần thiết yếu trong kiến trúc mạng và là một điểm lỗi đơn nếu có bất kỳ sự cố nào xảy ra. Hầu hết các dịch vụ của bạn có thể chạy trên các máy chủ dựa trên Ubuntu hoặc Debian, bao gồm cả Proxmox, vì đây là những hệ điều hành quen thuộc. Dù sử dụng Nginx hay HAProxy làm reverse proxy, cả hai đều dễ dàng liên kết với Keepalived. Tất cả những gì bạn cần là ba địa chỉ IP và nhớ thay đổi priority của hai instance VRRP để một cái cao hơn cái kia.
$ sudo iptables -I INPUT -p 112 -d 224.0.0.18 -j ACCEPT
$ sudo iptables -I INPUT -p 51 -d 224.0.0.18 -j ACCEPT
Lần đầu tiên thiết lập, mọi thứ dường như chính xác nhưng vẫn không hoạt động. Sau đó, một hướng dẫn khác đã đề cập đến việc thêm các quy tắc tường lửa cho vrrp và ah (authentication) để cho phép chúng đi qua, điều này khá đơn giản trong Ubuntu.
Hệ thống Home Lab với các máy chủ Proxmox đang hoạt động
4. Đảm bảo VPN Server luôn hoạt động
Truy cập từ xa vào mạng và Home Lab của bạn là yếu tố cần thiết cho kiến trúc mạng hiện đại. Tuy nhiên, chuỗi kết nối được tạo tỉ mỉ đó sẽ trở nên vô dụng nếu máy chủ chạy OpenVPN gặp sự cố. Để đảm bảo tính liên tục, bạn có thể chạy OpenVPN trên hai máy chủ, liên kết chúng với địa chỉ IP ảo (VIP) trong Keepalived cùng với địa chỉ IP riêng của chúng. Điều này giúp máy chủ phụ hoạt động như máy chủ chính khi kết nối bị gián đoạn vì bất kỳ lý do gì.
Người dùng đang kiểm tra trang web, tượng trưng cho việc truy cập từ xa an toàn
Điều này có nghĩa là máy chủ VPN của bạn luôn sẵn sàng. Và nếu điều tồi tệ nhất xảy ra và hai máy chủ trên mạng gia đình của bạn ngừng hoạt động, bạn sẽ phải đối mặt với những vấn đề lớn hơn nhiều so với việc không thể đăng nhập từ xa. Bạn có thể thực hiện điều tương tự với các giải pháp khác như Pangolin, nhưng vẫn sẽ gặp vấn đề tương tự nếu các địa chỉ IP mà Pangolin được ánh xạ bị ngừng hoạt động. Mục tiêu cuối cùng là có các máy chủ ứng dụng đồng bộ hóa phía sau hai instance HAProxy và Keepalived để mọi thứ có cơ hội hoạt động liên tục cao nhất.
Tủ chứa thiết bị Home Lab nhỏ gọn với các máy chủ
5. Quản lý Proxmox Cluster hiệu quả hơn
Thiết lập một Proxmox cluster có tính sẵn sàng cao là một cách tuyệt vời để đảm bảo các container và máy ảo của bạn luôn sẵn sàng cho người dùng. Nhưng điều gì sẽ xảy ra khi bạn cần thực hiện các tác vụ quản trị trên các node Proxmox? Nếu một node bị hỏng, bạn cần biết đó là node nào để sử dụng một trong các node khác. Tuy nhiên, các tác vụ quản trị nên được thiết lập sao cho ít gây khó khăn nhất có thể.
Việc thiết lập Keepalived để truy cập cluster bằng một IP ảo duy nhất giúp tiết kiệm thời gian khi bạn cần thay đổi thứ gì đó. Nó sẽ luôn đăng nhập vào node đang hoạt động, điều này rất tiện lợi và dễ dàng. Mặc dù chỉ là vài giây mỗi lần đăng nhập, nhưng con số đó sẽ cộng dồn theo thời gian, đặc biệt khi bạn dự định sử dụng cluster này trong một thời gian dài.
Hệ thống Proxmox cluster gồm hai node đang hoạt động
Keepalived: Một công cụ không thể thiếu cho Home Lab
Mặc dù có những giải pháp tích hợp sẵn như CARP trong OPNsense, giúp bạn nhanh chóng tạo một cluster với tính năng chuyển đổi dự phòng mà không cần công cụ bổ sung, nhưng không phải mọi dịch vụ hoặc máy chủ đều có khả năng clustering native. Keepalived đóng vai trò là một giải pháp linh hoạt và mạnh mẽ, đảm bảo các dịch vụ quan trọng trong Home Lab của bạn luôn có tính sẵn sàng cao, từ máy chủ DNS đến hệ thống nhà thông minh hay các máy chủ Reverse Proxy và VPN.
Cho đến khi mọi dịch vụ đều được trang bị tính năng clustering native, Keepalived vẫn là công cụ hữu hiệu để bảo vệ hệ thống của bạn khỏi các điểm lỗi đơn, giúp bạn duy trì quyền kiểm soát và sự ổn định cho mạng gia đình. Việc đầu tư thời gian tìm hiểu và triển khai Keepalived sẽ mang lại sự yên tâm đáng kể, giúp bạn tận hưởng trọn vẹn lợi ích của các dịch vụ tự host mà không lo ngại về sự cố ngừng hoạt động.
Bạn đã ứng dụng Keepalived vào hệ thống Home Lab của mình như thế nào? Hãy chia sẻ kinh nghiệm của bạn nhé!