|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
10-02-2014, 04:50 PM | #1 |
Guest
Trả Lời: n/a
|
Cấu hình Linux Virtual Server via Direct Routing (loadbalance web server)
Cấu hình Linux Virtual Server via Direct Routing Ở bài viết Cấu hình Web Cluster mình đã trình bày về cách tạo ra cụm Web Server sử dụng heartbeat nhằm tăng tính sẵn sàng cho hệ thống Website. Thông thường, những hệ thống Cluster sẽ kèm theo khả năng đồng bộ dữ liệu giữa các node và cần bằng tải. Trong bài viết này, mình sẽ trình bày cách cấu hình cụm Web Server với khả năng cần bằng tải sử dụng LVS – Direct Routing. I – Mô hình: II – Cài đặt: Cài đặt heartbeat và các gói cần thiết bằng lệnh sau (chạy 2 lần) # yum -y install libnet heartbeat-* ipvsadm Kiểm tra các gói cài đặt đã đủ hay chưa # rpm –qa | grep heartbeat III - Cấu hình trên 2 Load Balancing Server: Tạo file authkeys # vi /etc/ha.d/authkeys Thêm vào 2 dòng sau auth 1 1 sha1 123456 Sau đó chmod lại file này # chmod 600 /etc/ha.d/authkeys Tạo file ha.cf # vi /etc/ha.d/ha.cf Thêm vào nội dung sau: debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 # tien ich dung cho syslog hoac logger keepalive 1 # thoi gian kiem tra giua cac heartbeat deadtime 10 # thoi gian quyet dinh mot host da die hay chua? warntime 5 # thoi gian de dua ra canh bao initdead 120 # thoi gian chet dau tien udpport 694 # Port de gui tin hieu heartbeat bcast eth1 # Card mang de gui tin hieu heartbeat auto_failback off # tu dong gui tai nguyen sai tro lai node chinh node lb1.khanh.com.vn # ten load balancer 1 node lb2.khanh.com.vn # ten load balancer 2 respawn hacluster /usr/lib/heartbeat/ipfail Tạo file haresources # vi /etc/ha.d/haresources Thêm vào nội dung lb1.khanh.com.vn \ ldirectord::ldirectord.cf \ LVSSyncDaemonSwap::master \ IPaddr2::192.168.10.100/24/eth0/192.168.10.255 Trong đó:
# vi /etc/ha.d/ldirectord.cf Thêm vào nội dung logfile="/var/log/ldirectord.log" checktimeout=15 checkinterval=5 autoreload=yes quiescent=no virtual=192.168.10.100:80 fallback=127.0.0.1:80 real=192.168.10.3:80 gate real=192.168.10.4:80 gate service=http request="check.html" receive="alive" scheduler=lblc persistent=600 protocol=tcp checktype=negotiate Trong đó:
Bật tính năng chuyển hướng gói tin: # vi /etc/sysctl.conf Sửa net.ipv4.ip_forward = 0 thành net.ipv4.ip_forward = 1 Để thay đổi có hiệu lực ta thực hiện # sysctl –p Chú ý: Vì nội dung các tệp tin cấu hình trên 2 LB Server là giống nhau nên chúng ta chỉ cần cấu hình trên LB1 sau đó dùng lệnh để copy qua LB2. # scp /etc/ha.d/* 192.168.10.2:/etc/ha.d/ IV - Cấu hình trên 2 Web Server: Trên 2 Web Server ta thực hiện cài đặt dịch vụ httpd và các dịch vụ kèm theo khác cho việc chạy ứng dụng web (thao khảo:Cài đặt Apache và PHP trên CentOS ) Sau khi đã cài đặt dịch vụ httpd, ta cài đặt thêm 2 gói sau (download ở file đính kèm). # rpm -ivh arptables_jf-0.0.8-8.i386.rpm # rpm –ivh arptables-noarp-addr-0.99.2-1.rh.el.um.1.noarch.rpm Tạo thêm 1 card loopback ảo # vi /etc/sysconfig/network-scripts/ifcfg-lo:0 Thêm vào nội dung: DEVICE=lo:0 IPADDR=192.168.10.100 NETMASK=255.255.255.255 NETWORK=192.168.10.0 BROADCAST=192.168.10.255 ONBOOT=yes NAME=loopback Trong đó 192.168.10.100 là địa chỉ IP ảo Thực hiện chặn ARP trên IP ảo của 2 Web Server: # /etc/init.d/arptables_jf stop # /usr/sbin/arptables-noarp-addr 192.168.10.100 start # /etc/init.d/arptables_jf save # /etc/init.d/arptables_jf start # /sbin/chkconfig --level 2345 arptables_jf on Tại sao lại phải chặn ARP? Tham khảo tại đây. Tiếp đó, ta khởi động lại dịch vụ mạng và dịch vụ httpd # service network restart # service httpd restart Để test kết quả, ta có thể tạo ra các trang web đơn giản trên 2 Web Server như sau: Trên Web Server 1: # echo " <h1> Web Server 1" > /var/www/html/index.html # echo "alive" >/var/www/html/check.html Trên Web Server 2: # echo " <h1> Web Server 2" > /var/www/html/index.html # echo "alive" >/var/www/html/check.html V – Kiểm tra: Trên 2 LB Server ta thực hiện: # chkconfig ldirectord off # chkconfig heartbeat on # service heartbeat restart # service ldirectord stop Dùng lệnh ipvsadm để kiểm tra trạng thái của 2 Web Server Trên LB1: # ipvsadm -l -n Trên LB2: # ipvsadm -l -n Ở đây LB2 là Slave nên lệnh #ipvsadm -l -n sẽ không có kết quả trả về. Chỉ khi nào LB1 chết thì LB2 mới đứng ra kiểm soát/phân giải 2 Web Server. Kiểm tra Load Balancing: Từ Client, ta dùng trình duyệt truy cập vào địa chỉ IP ảo, kết quả trang web nằm trên Web Server 2 được trả về. Ở một máy tính khác với thao tác tương tự, được kết quả trang web từ Web Server 1 trả về. Kiểm tra Cluster: Dừng dịch vụ heartbeat trên LB1 # service heartbeat stop Dừng dịch vụ httpd trên Web Server 2 # service httpd stop Kiểm tra IP ảo và kết quả phân giải trạng thái IP trên LB2 được kết quả như hình đưới. Dùng trình duyệt truy cập vào địa chỉ IP ảo, kết quả vẫn vào được Website trả về từ Web Server 1 Tệp tin đính kèm: arptables_jf-0.0.8-8.i386.rpm (92,04 kb) [Downloads: 180] arptables-noarp-addr-0.99.2-1.rh.el.um.1.noarch.rpm (10,46 kb) [Downloads: 175] theo: khanh.com.vn |
|
|