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
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:
# rpm -ivh http://ftp-stud.hs-esslingen.de/pub/epel/6/i386/epel-release-6-8.noarch.rpm # yum -y install ucarp
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:
# cp /etc/ucarp/vip-001.conf.example /etc/ucarp/vip-001.conf # mv /etc/ucarp/vip-001.conf.example /etc/ucarp/vip-001.conf.example.save # vi /etc/ucarp/vip-001.conf
Thêm nội dung dưới đây vào file vip-001.conf:
ID=001 VIP_ADDRESS="192.168.1.150" PASSWORD="123456" BIND_INTERFACE="eth0" SOURCE_ADDRESS="192.168.1.208" OPTIONS="-k 10 --shutdown --preempt"
Trên server 2:
# cp /etc/ucarp/vip-001.conf.example /etc/ucarp/vip-001.conf # mv /etc/ucarp/vip-001.conf.example /etc/ucarp/vip-001.conf.example.save # /etc/ucarp/vip-001.conf
Thêm nội dung dưới đây vào file vip-001.conf:
ID=002 VIP_ADDRESS="192.168.1.150" PASSWORD="123456" BIND_INTERFACE="eth0" SOURCE_ADDRESS="192.168.1.209" OPTIONS="-k 10 --shutdown --preempt"
Bật dịch vụ và cho phép khởi động cùng OS:
# /sbin/service ucarp start # chkconfig ucarp on
Kiểm tra
Trên server 1 (IP Master)
– Check message log server 1:
Trên server 2 (IP Backup)
– Check message log server 2:
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:
# yum install httpd httpd-devel # /sbin/service httpd start
– Trên server 1:
+ Tạo file index.html với nội dung:
+ Chạy thử:
– Trên server 2:
+ Tạo file index.html với nội dung:
+ Chạy thử
– Giờ mở 1 trình duyệt lên truy cập vào link IP ảo : 192.168.1.150/index.html
– 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
– 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/)