VMware-based virtual Linux cluster setup-lvs + keepalived
Build a virtual Linux cluster based on VMware-lvs + keepalived this article uses keepalived to achieve load balancing between the dual-machine hot backup of the lvs server and the Real Server. There are many blogs in this regard, but the environments for each person to build a cluster are different and the problems they encounter are also different. This article describes some of the configuration processes and the solutions for problems encountered during the configuration process. Quasi-work 1. create a Linux virtual machine this article is based on the Vmare virtual environment to build a cluster, so first create some virtual machines in Vmare (install a Linux system, other copies can be installed for the first time ), this document creates four virtual machines. The NIC mode is set to the bridging mode, which ensures that the network and Host IP address in the virtual machine are in the same network segment. The advantage is that after the IP address is set for each virtual machine, you can log on to Linux using another host in the same CIDR block without switching back and forth between virtual machines. (CentOS 5.5 for Linux) 2. Configure the yum Library
If the local machine does not have the yum library, it is best to configure and install the yum library to facilitate software installation.
Basic Steps for creating a yum Library
① Install createrepo
② Yum-y installl createrepo
③ Create with createrepo
The createrepo command is used to generate some basic configuration information required by the yum repository.
For more information, see "install and configure the yum library"
Cluster configuration 1. Set the Virtual Machine IP Address
Virtualize four Linux Hosts in the Vmare Virtual Machine
LvsMaster: 192.168.10.101
Lvsbsk: 192.168.10.102
RealServer1: 192.168.10.121
RealServer2: 192.168.10.122
Topological Relationship Diagram Between Hosts
2. Install ipvsadm and keepalived ① install ipvsadm on LvsMaster and lvsbach respectively.
Yum-y install * ipvsadm *
: Wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar
② Keepalived is installed on LvsMaster and lvsbach respectively.
Install the dependency Library: yum install-y openssl-devel
Download keepalived: wget http://www.keepalived.org/software/keepalived-1.2.6.tar.gz
Tar zxvf keepalived-1.2.6.tar.gz
./Configure -- prefix =/usr/local/keepalived
Make
Make install
Cp/usr/local/keepalived/sbin/keepalived/usr/sbin/
Cp/usr/local/keepalived/etc/sysconfig/
Cp/usr/local/keepalived/etc/rc. d/init. d/keepalived/etc/init. d/
Mkdir/etc/keepalived
Cp/usr/local/keepalived/etc/keepalived. conf
③ Configure keepalived
LvsMaster Configuration
Global_defs {
Notification_email {
540621626@qq.com # emial notification
}
Notification_email_from 540621626@qq.com
Smtp_server 192.168.200.1
Smtp_connect_timeout 30
Router_id LVS_DEVEL
}
Vrrp_sync_group test {# Set vrrp Group
Group {
Loadbalance
}
}
Vrrp_instance loadbalance {
State MASTER # Set the host type, MASTER and BACKUP, which must be capitalized, that is, a BACKUP host is too large.
Interface eth0 # Set the external service Nic
Virtual_router_id 51
Priority 100 # set priority. The priority of the standby host is lower than that of the host.
Advert_int 1 # Set the synchronization interval
Authentication {# Set the authentication type and password
Auth_type PASS
Auth_pass 1111
}
Virtual_ipaddress {# Set a virtual ip address, that is, a floating ip address.
192.168.10.115
}
Virtual_server 192.168.10.115 80 {
Delay_loop 6 # Health Check Interval
Lb_algo rr # load scheduling algorithm, which is a rotation algorithm by default
Lb_kind DR # Server Load balancer forwarding rules, that is, IP Forwarding rules. The DR forwarding method is the fastest, but all machines must be in the same network segment, and there are two forwarding Methods: NAT and KNN.
Protocol TCP
Real_server 192.168.10.121 80 {
Weight 1
TCP_CHECK {
Connect_timeout 3
Nb_get_retry 3
Delay_before_retry 3
}
}
Real_server 192.168.10.122 80 {
Weight 1
TCP_CHECK {
Connect_timeout 3
Nb_get_retry 3
Delay_before_retry 3
}
}
}
Lvsbkr Configuration
Global_defs {
Notification_email {
540621626@qqq.com
}
Notification_email_from 540621626@qq.com
Smtp_server 192.168.200.1
Smtp_connect_timeout 30
Router_id LVS_DEVEL
}
Vrrp_sync_group test {
Group {
Loadbalance
}
}
Vrrp_instance loadbalance {
State BACKUP
Interface eth0
Virtual_router_id 51
Priority 99
Advert_int 1
Authentication {
Auth_type PASS
Auth_pass 1111
}
Virtual_ipaddress {
192.168.10.115
}
}
Virtual_server 192.168.10.115 80 {
Delay_loop 6
Lb_algo rr
Lb_kind DR
Protocol TCP
Real_server 192.168.10.121 80 {
Weight 1
TCP_CHECK {
Connect_timeout 3
Nb_get_retry 3
Delay_before_retry 3
}
}
Real_server 192.168.10.122 80 {
Weight 1
TCP_CHECK {
Connect_timeout 3
Nb_get_retry 3
Delay_before_retry 3
}
}
}
④ Start keepalived
LvsMastrer:/etc/init. d/keepalived start
Lvsback:/etc/init. d/keepalived start
View startup status
LvsMaster: tail-f/var/log/messages
Lvsbsk: tail-f/var/log/messages
Use ip addr and ipvsadm to view route information
LvsMaster: ip addr
LvsMaster: ipvsadm
Lvsbsk: ip addr
Lvsback: ipvsadm
3. Set RealServer1 and RealServer2 ① to edit the RealServe scripts RealServer1 and ResalServer2, both of which are realserver. sh. The setting script is as follows: SNS_VIP = 192.168.10.115
Source/etc/rc. d/init. d/functions
Case "$1" in
Start)
Ifconfig lo: 0 $ SNS_VIP netmask 255.255.255.255 broadcast $ SNS_VIP up
/Sbin/route add-host $ SNS_VIP dev lo: 0
Echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
Echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
Echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
Echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
Sysctl-p>/dev/null 2> & 1
Echo "RealServer Start OK"
;;
Stop)
Ifconfig lo: 0 down
Route del $ SNS_VIP>/dev/null 2> & 1
Echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
Echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
Echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
Echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
Echo "RealServer Stoped"
;;
*)
Echo "Usage: $0 {start" stop }"
Exit 1
Esac
Exit 0
After the script is edited, start realserver. sh.
RealServer1:./realserver. sh startRealServer2:./realserver. sh start
View IP② Install apache on RealServer1 and RealServer2
InstallYum-y install httpd
ConfigurationServerName www. example. comNameVirtualHost 192.168.10.121: 80 <VirtualHost 192.168.10.121: 80>
DocumentRoot/var/www/html
ServerName www.example.com
</VirtualHost>
On the homepage of index.html testing under/var/www/hmtl /,
Start apache:/etc/init. d/httpd start
4. Test Server Load balancer and dual-host hot standby
Use ipvsadm to view the routes of LvsMaster and lvsback
LvsMaster: ipvsadm
L
VsBak: ipvsadm
5. precautions during configuration
Zookeeper ① precautions for keepalvied ConfigurationLvsMaster and lvsback have only two different state Masters "BACKUP (MASTER Lvs and slave Lv are BACKUP)
Priority 100 | 90 (the main Lvs is 100, and the standby LVS is smaller than 100)
② Disable iptables or enable the corresponding service port. Otherwise, the service cannot be accessed through a browser.