环境: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;