Cấu hình Linux Virtual Server via Direct Routing
Trang 1 trong tổng số 1 trang
Cấu hình Linux Virtual Server via 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.3 và 192.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/
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.3 và 192.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/
TruongThiThuyDung- Tổng số bài gửi : 74
Join date : 21/09/2012
Age : 32
Re: Cấu hình Linux Virtual Server via Direct Routing
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
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
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
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
TruongThiThuyDung- Tổng số bài gửi : 74
Join date : 21/09/2012
Age : 32
Re: Cấu hình Linux Virtual Server via Direct Routing
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
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
TruongThiThuyDung- Tổng số bài gửi : 74
Join date : 21/09/2012
Age : 32
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|