q4561231 发表于 2015-9-4 09:19:26

Rhel6-keepalived+lvs配置文档

系统环境: rhel6 x86_64 iptables and selinux disabled
主机: 192.168.122.119 server19.example.com
192.168.122.25 server25.example.com
192.168.122.163 server63.example.com
192.168.122.193 server93.example.com
所需的包:keepalived-1.2.7.tar.gz


Realserver1192.168.122.163:apache
Realserver2192.168.122.193:apache
LoadBalance 192.168.122.119:keepalived
LoadBalance 192.168.122.25:keepalived
VirtualIP 192.168.122.178


以下步骤在server19和server25上实施:
# yum install kernel-devel make gcc -y
# yum install openssl-devel popt-devel -y
# yum install libnl-devel -y


以下步骤在server19或server25上实施:
# tar zxf keepalived-1.2.7.tar.gz
# cd keepalived-1.2.7
# ./configure –prefix=/usr/local/keepalived
# make && make install
# scp -r /usr/local/keepalived/root@192.168.122.25:/usr/local/


以下步骤在server19和server25上实施:
# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
# ln -s/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/
# ln -s/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
注:系统镜像的负载均衡套件中也集成了keepalived,也可以直接使用yuminstall keepalived -y进行安装。但需先配置yum源:

name=InstructorServer Repository
baseurl=ftp://192.168.122.1/pub/yum/LoadBalancer
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1


以下步骤在server19实施:
# vim /etc/keepalived/keepalived.conf
global_defs{
notification_email {
root@localhost 错误发送至此邮箱
}
notification_email_from keepalived@server19.example.com发信人
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}


vrrp_instanceVI_1 {
state MASTER   角色:(1)MASTER(2)BACKUP
interface eth0
virtual_router_id 51   (主备的配置需要一致)
priority 100   优先级(数字越大,优先级越高)
advert_int 1   
authentication {
auth_type PASS    认证类型
auth_pass 1111    认证密码
}
virtual_ipaddress {
192.168.122.178    虚拟IP,可设置多个
}
}


virtual_server192.168.122.178 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#nat_mask 255.255.255.0
#persistence_timeout 50
protocol TCP
real_server 192.168.122.163 80 {
weight 1
TCP_CHECK {(注:TCP_CHECK和大括号之间要有空格)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}


real_server 192.168.122.193 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

以下步骤在server25实施:
# vim /etc/keepalived/keepalived.conf
global_defs{
notification_email {
root@localhost错误发送至此邮箱
}
notification_email_from keepalived@server25.example.com发信人
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}


vrrp_instanceVI_1 {
state BACKUP   角色:(1)MASTER(2)BACKUP
interface eth0
virtual_router_id 51 (主备的配置需要一致)
priority 50   优先级(数字越大,优先级越高)
advert_int 1
authentication {
auth_type PASS    认证类型
auth_pass 1111    认证密码
}
virtual_ipaddress {
192.168.122.178   虚拟IP,可设置多个
}
}


virtual_server192.168.122.178 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#nat_mask 255.255.255.0
#persistence_timeout 50
protocol TCP
real_server 192.168.122.163 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}


real_server 192.168.122.193 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}


以下步骤在server63上实施:
# yum install arptables_jf httpd -y
# arptables -A IN -d 192.168.122.178 -j DROP
# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s192.168.122.163
# /etc/init.d/arptables_jf save


# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

# ip addr add 192.168.122.178 dev eth0
注:可用ipaddr show查看


# echo `hostname` > /var/www/html/index.html
# /etc/init.d/httpd start

以下步骤在server93上实施:
# yum install arptables_jf httpd -y
# arptables -A IN -d 192.168.122.178 -j DROP
# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s192.168.122.193
# /etc/init.d/arptables_jf save

# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

# ip addr add 192.168.122.178 dev eth0
注:可用ipaddr show查看


# echo `hostname` > /var/www/html/index.html
# /etc/init.d/httpd start


以下步骤在server19和server25上实施:
# /etc/init.d/keepalived start


测试:
执行ipaddr show可查看虚拟IP,执行ipvsadm-l查看规则是否加载,访问192.168.122.178反复刷新网页,每次出现的页面都不同说明配置成功.当主备挂掉后可由另一台接管,当两台都正常时由Master充当调度器.


#配置多个服务(apache+ftp)
以下步骤在server19实施:
# vim /etc/keepalived/keepalived.conf
global_defs{
notification_email {
root@localhost
}
notification_email_from keepalived@server19.example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}


vrrp_instanceVI_1 {
state MASTER
interface eth0
virtual_router_id 51 (主备的配置需要一致)
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.122.178   虚拟IP,可设置多个
}
}


virtual_server192.168.122.178 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#nat_mask 255.255.255.0
#persistence_timeout 50
protocol TCP
real_server 192.168.122.163 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}


real_server 192.168.122.193 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}


virtual_server192.168.122.178 21 {
delay_loop 6
lb_algo rr
lb_kind DR
#nat_mask 255.255.255.0
persistence_timeout 50持续连接时间为50s
protocol TCP


real_server 192.168.122.163 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}


real_server 192.168.122.193 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

以下步骤在server25实施:
# vim /etc/keepalived/keepalived.conf
global_defs{
notification_email {
root@localhost
}
notification_email_from keepalived@server25.example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}


vrrp_instanceVI_1 {
state BACKUP
interface eth0
virtual_router_id 51 (主备的配置需要一致)
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.122.178   虚拟IP,可设置多个
}
}


virtual_server192.168.122.178 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#nat_mask 255.255.255.0
#persistence_timeout 50
protocol TCP
real_server 192.168.122.163 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}


real_server 192.168.122.193 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}


virtual_server192.168.122.178 21{
delay_loop 6
lb_algo rr
lb_kind DR
#nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP


real_server 192.168.122.163 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}


real_server 192.168.122.193 21 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}


以下步骤在server63上实施:
# yum install arptables_jf httpd vsftpd -y
# arptables -A IN -d 192.168.122.178 -j DROP
# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s192.168.122.163
# /etc/init.d/arptables_jf save


# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

# ip addr add 192.168.122.178 dev eth0
注:可用ipaddr show查看


# echo `hostname` > /var/www/html/index.html
# /etc/init.d/httpd start
# touch /var/ftp/server63
# /etc/init.d/vsftpd start

以下步骤在server93上实施:
# yum install arptables_jf httpd vsftpd -y
# arptables -A IN -d 192.168.122.178 -j DROP
# arptables -A OUT -s 192.168.122.178 -j mangle --mangle-ip-s192.168.122.193
# /etc/init.d/arptables_jf save


# ifconfig eth0:0 192.168.122.178 netmask 255.255.255.255 up

# ip addr add 192.168.122.178 dev eth0
注:可用ipaddr show查看


# echo `hostname` > /var/www/html/index.html
# /etc/init.d/httpd start
# touch /var/ftp/server93
# /etc/init.d/vsftpd start

以下步骤在server19和server25上实施:
# /etc/init.d/keepalived start
页: [1]
查看完整版本: Rhel6-keepalived+lvs配置文档