Ucarp là 1 dịch vụ chạy rất nhẹ nhàng trên các hệ thống linux. Mục đích của UCARP là (automatic failover) tạo ra một địa chỉ IP ảo (Virtual IP) đứng trước một vài máy chủ nhằm đảm bảo tính sẵn sàng cao cho các dịch vụ đang chạy trên các máy chủ đó.

Hướng dẫn cài đặt & Cấu hình

virtual_ip

Hình vẽ trên bạn có thể thấy, Server 1 và Server 2 đều đứng đằng sau một Virtual IP. Chú ý: Không phải cả hai Server 1 và Server 2 đều chia sẻ tải, chạy đồng thời cùng nhau.

Đầu tiên, UCARP sẽ chọn một Server làm Master (dựa vào độ ưu tiên trong tham số cấu hình xem bên dưới), IP ảo sẽ được Bind vào một card mạng (vd như eth1) trên Server đó (Ở đây ví dụ là Server 1). Khi card mạng eth1 của Server 1 bị down. Tức là gặp sự cố gì đó liên quan đến Network, OS thì lúc này UCARP sẽ tự động gán (bind) địa chỉ IP ảo đó vào Server 2. Chỉ khi nào gặp sự cố trên Server 2 thì IP ảo mới được chuyển lại cho Server 1.

Ưu điểm của UCARP

  • Cấu hình dễ dàng
  • Dịch vụ chạy rất nhẹ
  • Có sử dụng mật khẩu để mã hóa các message giao tiếp của ucarp giữa hai server.

Mô hình

Server1: 192.168.1.208 (eth0)
Server2: 192.168.1.209 (eth0)
Virtual IP (VIP): 192.168.1.150
OS: CentOs 6.5

Cài đặt
– Cài đặt ucarp trên cả 2 server 1 và 2:

Cấu hình
– UCARP định nghĩa 1 cụm VIP theo format : vip-.conf
Ví dụ: vip-001.conf, nếu bạn có 2 cụm thì sẽ tạo thêm 1 file thứ 2 với tên vip-002.conf (và ID bên trong file thứ 2 sẽ đặt là ID=002)

Trên server 1:

Thêm nội dung dưới đây vào file vip-001.conf:

Trên server 2:

Thêm nội dung dưới đây vào file vip-001.conf:

Bật dịch vụ và cho phép khởi động cùng OS:

Kiểm tra

Trên server 1 (IP Master)
ucarp_db_master
– Check message log server 1:
ucarp_log_master
Trên server 2 (IP Backup)
ucarp_db_backup
– Check message log server 2:
ucarp_log_backup

Tham số

  • VIP_ADDRESS: Địa chỉ IP ảo
  • BIND_INTERFACE: Card mạng nào sẽ được phép gán IP ảo
  • SOURCE_ADDRESS: Địa chỉ IP hiện tại của máy chủ
  • PASSWORD: Mật khẩu để mã hóa các message
  • OPTIONS: Các options tùy biến của dịch vụ UCarp.
    • –daemonize (-B): run in background
    • –shutdown (-z): call shutdown script at exit
    • –preempt (-P): thiệt lập để chọn máy chủ master
    • –advskew= (-k ): thiết lập độ ưu tiên, số càng nhỏ càng ưu tiên cao hơn nằm trong dải từ (0 – 255)

Test

– Cài httpd trên cả 2 server 1 và 2:

– Trên server 1:
+ Tạo file index.html với nội dung:
ucarp_test_server_1
+ Chạy thử:

ucarp_run_server_1
– Trên server 2:
+ Tạo file index.html với nội dung:
ucarp_test_server_2
+ Chạy thử
ucarp_run_ip_server2
– Giờ mở 1 trình duyệt lên truy cập vào link IP ảo : 192.168.1.150/index.html
ucarp_run_ip_ao
– Tiếp theo chúng ta tắt thử ucarp trên server 2(master) để xem chuyện gì xảy ra:

# /sbin/service ucarp stop

ucarp_run_ao_2
– Như vậy các bạn đã thấy UCARP tự động bind về server 1 (backup), đảm bảo hệ thống vẫn hoạt động ổn định. Chúc các bạn thành công !

4. Tài liệu tham khảo

  • Harry Hiếu : http://blog.0x1115.org/2015/08/18/ucarp-tao-ip-ao-dam-bao-tinh-san-sang-cao/
  • http://ragzilla.co.uk/setup-ip-failover-with-ucarp-on-centos-6/
  • http://blog.naresh.moe/2011/12/22/ucarp-for-ip-failover-on-centos-6/

Nguồn: @betapcode (https://convoicoi.wordpress.com/2015/09/13/huong-dan-su-dung-ucarp-tao-ip-ao-tren-centos/)