环境:1台客户端,1台DNS服务器,1台路由,4台lvs+keepalived,2台apache,3台mysql
客户端 ip:192.168.65.25
dns ip:192.168.65.26
路由 ip:192.168.65.30,192.168.66.100
分发器1master ip:192.168.66.101
分发器1backup ip:192.168.66.102
apache1 ip:192.168.66.103
apache2 ip:192.168.66.104
分发器2master ip:192.168.66.105
分发器2backup ip:192.168.66.106
mysql写ip:192.168.66.107
mysql读1ip:192.168.66.108
mysql读2ip:192.168.66.109
拓扑图如下:
配置:
客户端:
route add default gw 192.168.65.26
dns:
yum install bind* -y
vim /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
zone "joker.com" {
type master;
file "joker.com.zone";
};
cp /usr/share/doc/bind-9*/sample/var/named/localhost.zone /var/named/chroot/var/named/joker.com.zone
vim /var/named/chroot/var/named/joker.com.zone
@ IN NS master.joker.com.
master.joker.com. IN A 192.168.65.26
www.joker.com. IN A 192.168.66.200
service named restart
路由:
echo 1 > /proc/sys/net/ipv4/ip_forword
分发器1master:
route add default gw 192.168.66.100
yum install ipvsadm -y
yum install openssl-devel kernel-devel -y
tar zxf keepalived-1.1.17.tar.gz
ln -s /usr/src/kernels/2.6.18.194.el5-i686/ /usr/src/linux
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -pv /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id 1
}
vrrp_sync_group http {
group {
apache
}}
vrrp_instance apache {state MASTER
interface eth0
virtual_router_id 2
priority 180
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.66.200
}
}virtual_server 192.168.18.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
# persistence_timeout 3600
protocol TCP
real_server 192.168.66.103 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
real_server 192.168.66.104 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
分发器1backup:
route add default gw 192.168.66.100
yum install ipvsadm -y
yum install openssl-devel kernel-devel -y
tar zxf keepalived-1.1.17.tar.gz
ln -s /usr/src/kernels/2.6.18.194.el5-i686/ /usr/src/linux
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -pv /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id 2
}
vrrp_sync_group http {
group {
apache
}}
vrrp_instance apache {state BACKUP
interface eth0
virtual_router_id 3
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.66.200
}
}virtual_server 192.168.18.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
# persistence_timeout 3600
protocol TCP
real_server 192.168.66.103 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
real_server 192.168.66.104 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
启动master和backup上的keepalived服务
apache1:
yum install httpd php* -y
service httpd restart
route add default gw 192.168.66.100
route add -host 192.168.66.200 dev lo:0
ifconfig lo:0 192.168.66.200/32 broadcast 192.168.66.200
echo 1 > /proc/sys/net/sys/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/sys/ipv4/conf/all/arp_announce
apache2:
yum install httpd php* -y
service httpd restart
route add default gw 192.168.66.100
route add -host 192.168.66.200 dev lo:0
ifconfig lo:0 192.168.66.200/32 broadcast 192.168.66.200
echo 1 > /proc/sys/net/sys/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/sys/ipv4/conf/all/arp_announce
分发器2master:
route add default gw 192.168.66.100
yum install ipvsadm -y
yum install openssl-devel kernel-devel -y
tar zxf keepalived-1.1.17.tar.gz
ln -s /usr/src/kernels/2.6.18.194.el5-i686/ /usr/src/linux
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -pv /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id 3
}
vrrp_sync_group http {
group {
mysql
}}
vrrp_instance mysql {state MASTER
interface eth0
virtual_router_id 4
priority 180
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.66.201
}
}virtual_server 192.168.18.201 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
# persistence_timeout 3600
protocol TCP
real_server 192.168.66.108 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
real_server 192.168.66.109 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
分发器2backup:
route add default gw 192.168.66.100
yum install ipvsadm -y
yum install openssl-devel kernel-devel -y
tar zxf keepalived-1.1.17.tar.gz
ln -s /usr/src/kernels/2.6.18.194.el5-i686/ /usr/src/linux
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -pv /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id 4
}
vrrp_sync_group http {
group {
mysql
}}
vrrp_instance mysql {state BACKUP
interface eth0
virtual_router_id 5
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.66.201
}
}virtual_server 192.168.18.201 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
# persistence_timeout 3600
protocol TCP
real_server 192.168.66.108 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
real_server 192.168.66.109 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
mysql主:
yum install mysql
vim /etc/my.cnf
server_id=1
log-bin=binlog
grant replication slave on *.* to 'ls'@'%' identified by '123';
flush privileges;
grant all on *.* to 'hello'@'%' identified by '123';
mysql从1:
route add default gw 192.168.66.100
yum install mysql
vim /etc/my.cnf
server_id=2
relay_log=/var/lib/mysql/mysql-relay-bin
relay_log_index=/var/lib/mysql/mysql-relay-bin.index
grant all on *.* to 'who'@'%' identified by '123';
change master to master_host='192.168.66.105',master_port=3306,master_user='ls',master_password='123',master_log_file='binlog.000001',master_log_pos=294;
start slave;
mysql从2:
route add default gw 192.168.66.100
yum install mysql
vim /etc/my.cnf
server_id=3
relay_log=/var/lib/mysql/mysql-relay-bin
relay_log_index=/var/lib/mysql/mysql-relay-bin.index
grant all on *.* to 'who'@'%' identified by '123';
change master to master_host='192.168.66.105',master_port=3306,master_user='ls',master_password='123',master_log_file='binlog.000001',master_log_pos=294;
start slave;