Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 10-02-2014, 04:50 PM   #1
hoctinhoc
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 đó:
  • lb1.khanh.com.vn: là node chính (master).
  • ldirectord: là dịch vụ cấu hình load balancing.
  • 192.168.10.100: là địa chỉ IP ảo.
Tạo file ldirectord.cf
# 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 đó:
  • 192.168.10.100: là địa chỉ IP ảo.
  • 192.168.10.3192.168.10.4: là địa chỉ IP của 2 Web Server.
  • http: là dịch vụ cần cấu hình load balancing.
  • check.html: là tệp tin mà ldirectord kiểm tra Web Server còn sống hay không?
  • alive: là nội dung chứa trên file check.html.
  • scheduler: Có thể set giá trị là rr hoặc lblc để dùng cho dịch vụ http

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


  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 07:34 AM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.