a、安装依赖包:yum -y install kernel-devel* make* gcc* openssl* libnl* popt*
b、解压高可用软件keepalived:tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src/
c、编译安装keepalived包:cd /usr/src/keepalived-1.2.16,
执行:./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/
再执行:make && make install
将启动文件和配置文件复制到指定位置:
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
d、修改/etc/keepalived.conf配置文件,达到高可用状态
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id MASTER #主写MASTER,备写BACKUP
}
vrrp_instance VI_1 {
state MASTER #主写MASTER,备写BACKUP
interface eth0 #本机的有效网卡
virtual_router_id 51
priority 100 #优先级权值,主的值比备的要高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.108.200 #虚拟VIP
}
}
配置好后,启动keepalived服务:systemctl restart keepalived
NAT模式
关闭防火墙,selinux,绑定主机名(lvs主备需要绑定两个vip)
保证后端web服务器和lvs主备能ping通
打开lvs主备的路由转发功能:
vi /etc/sysctl.conf
将net.ipv4.ip_forward = 0 改 1
再保存退,执行sysctl -p 刷新生效
再启动
/etc/init.d/keepalived start
keepalived(一主一备,备的权值要比主小priority 100)
lvs主备配置两张网卡,一张网卡的ip要和后端web的ip在同一个网段
两卡网卡有一张设置的IP要和后面的WEB服务器在一个网段,且不用加网关,另一个网卡设置成另外一个网段并加上网关
两台WEB服务器网卡IP设置注意的地方:
网卡设置时要将虚拟IP设为网关
yum -y install kernel-devel* make* gcc* openssl* libnl* popt*(依赖包)
ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux
tar -zxvf ipvsadm-1.26.tar.gz -C /usr/src/ make && make install
tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src
./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/ 指定内核目录
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
vim /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_MASTER #主写LVS-MASTER,备写LVS-BACKUP
}
vrrp_instance VI_1 {
state MASTER #主写MASTER,备写BACKUP
interface eth0 #本机的有效网卡
virtual_router_id 51
priority 100 #优先级权值,主的值比备的要高
virtual_ipaddress {
192.168.3.41 #虚拟VIP(用户访问网页的ip,必须和lvs主备ip在同一网段)
}
cp上面的改动
vrrp_instance VI_GATEWAY {
tate MASTER #主写MASTER,备写BACKUP
interface eth1 #本机的有效网卡
virtual_router_id 52 #router_id,和上面不一样
priority 100 #优先级权值,主的值比备的要高
virtual_ipaddress {
1.1.1.100 #虚拟VIP,作为后端WEB服务器的网关用
}
virtual_server 192.168.3.41 80(用户访问的vip) {
delay_loop 6
lb_algo rr #高度算法,rr是轮询算法
lb_kind NAT #集群模式,这里是NAT模式
persistence_timeout 50 #主备心跳连接超时时间
protocol TCP #指的是四层分发
real_server 1.1.1.93 80(为web服务器的ip和端口) {
weight 1 #算法高度的权值,如果真实服务器权值一样,那么平均分发
#HTTP_GET {
TCP_CHECK { #验证web服务器是否存在的方式
connect_timeout 3 #连接超时时间,时间秒
nb_get_retry 3 #失败后连接的次数
delay_before_retry 3 #间隔时间秒
connect_port 80
}
}
第一步:搭建lvs-dr集群
1、拿到服务器的三步曲
2、在lvs主和备上安装keepalived 和 ipvsadm 两个包,并配置keepalived的vip,指向真实的web服务器
3、在两台服务器上写lvs-dr.sh的绑定vip脚本,写好后启动
第二步:配置nfs共享存储(用keepalived做两台nfs做主备)
在两台nfs上解压安装keepalived 注意:route_id不能和lvs上keepalived的route_id一样
另外两台nfs共享的目录要一样,先做一台nfs搭建应用(论坛)再cp到另一台nfs上,两台nfs都启动,在web服务 器上使用vip挂载 mount -o rw -t 192.168.201.100:/nfs /aa
umount 192.168.201.100:/nfs
关机:先关web再关nfs,keepalived
启动:先启动keepalived,nfs再启动web服务器
在nfs服务器上配置nfs共享文件目录/nfs
1、修改共享配置文件/etc/exports文件
# vi /etc/exports
/nfs (rw)
2、启动nfs服务
# /etc/init.d/nfs restart
3、在两台web服务器上挂nfs共享存储到本地的/nfs目录
# mount -o rw -t nfs 192.168.5.200:/nfs /nfs
第三步:配置两台web服务器lamp环境,以下两台web服务器都要操作
1、使用yum安装lamp环境
# yum -y install httpd* php* mysql*
2、修改apache网站家目录到/nfs/web目录下
# mkdir /nfs/web
# vi /etc/httpd/conf/httpc.conf
292 DocumentRoot "/nfs/web"
317 <Directory "/nfs/web">
3、启动apache服务
# /etc/init.d/httpd restart
第四:安装mysql服务器(mysql主备)
在mysql主备上安装keepalived,修改配置文件route_id和nfs,lvs的不一样,在主备mysql上授权,grant all on discuz.* to 'discuz'@'192.168.201.%'或者 '%' identified by '123'
安装应用(论坛)时服务器ip填写mysql的VIP(只要安装keepalived,不需要做主从)
1、使用yum安装mysql服务
# yum -y install mysql*
2、启动mysql服务
# /etc/init.d/mysqld restart
3、登陆数据库授权远程登陆
# mysql -uroot -p123456
# grant all on *.* to 'discuz'@'%' identified by '123456';
# flush privileges;
第五步:在web服务器上安装应用
1、解压应用包到web的家目录下
# unzip Discuz_X3.2_SC_UTF8.zip -d /nfs/web/
2、来到/nfs/web目录下配置应用
# cd /nfs/web
# mkdir /nfs/web/discuz
# mv readme/* discuz/
# mv upload/* discuz/
# mv utility/* discuz/
3、使用浏览器打开安装应用
# firefox http://192.168.5.100/discuz &
4、浏览器安装步骤省略.....
5、安装完成后,再打开浏览测试
# firefox http://192.168.5.100/discuz &
Keepalived + LVS 服务端安装配置
keepalived+LVS方案中,两台调度服务需要安排和配置Keepalived+LVS,并配置主备关系,实现负载均衡和高可用
目标服务器:调度主和调度备,两台的安装配置基本完全相同,只是keepalive.conf的部分配置需要修改。
先确认系统内核,用getconf LONG_BIT,和uname -a都可以查看
搭建这个LVS+Keepalived(DR)需要的关键步骤及注意事项,
DR模式主要是靠虚拟IP来实现,客户端访问服务器首先 会找keeaplived服务器,然后由keepalived服务器调度找到真实机,最后真实机通过自己的虚拟IP直接返回给客户端。
要注意popt-static-1.13-7.el6.x86_64.rpm这个包,不装这个包,安装 ipvs的时候会报错。
keepalived安装的时候一定要指定内核,要不然keepalived启动后只有两进程,正常是三个。如果不指定内核 即使keepalived启动了,keepalived也发现不了真实机。
第1步:下载keepalived-1.2.16.tar.gz和ipvsadm-1.26.tar.gz
wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
第2步:在192.168.10.1主跟192.168.10.1备机上安装(keepalived主备)
yum -y install kernel-devel make gcc openssl-devel libnl* popt*
备:如果yum安装的popt包里没有包含popt-static包那么需要手动安装这个RPM包
rpm -ivh popt-static-1.13-7.el6.x86_64.rpm
ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux
tar -zxvf ipvsadm-1.26.tar.gz -C /usr/src/
cd ipvsadm-1.26/
make
make install
cd ..
tar -zxvf keepalived-1.2.16.tar.gz
cd keepalived-1.2.16/
./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/
make && make install
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
第3步:在两台主备LVS上分别配置keepalived
vim /etc/keepalived/keepalived.conf
#! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc //邮件地址
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1 //邮件服务器IP
smtp_connect_timeout 30 //邮件服务器连接超时时间
router_id LVS_MASTER //主配置LVS_MASTER,备改成LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER //主配置MASTER,备改成BACKUP
interface eth0 //服务器使用的网卡
virtual_router_id 60
priority 100 //优先级,备服务器该值要低于主服务器
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.169.200 //配置虚拟IP,就是VIP
}
}
virtual_server 192.168.169.200 80 { //配置虚拟IP要指向的端口
delay_loop 6
lb_algo wrr //使用wrr加权轮循算法
lb_kind DR //使用DR负载均衡技术
nat_mask 255.255.255.0
persistence_timeout 50 //连接超时时间
protocol TCP //使用TCP进行通信
real_server 192.168.169.153 80 { //真实服务器IP与端口
weight 3 //权值
HTTP_GET { //使用HTTP方式验证真实服务器有效性
connect_timeout 3 //连接超时时间
nb_get_retry 3 //每次连接次数
delay_before_retry 3 //每次重试前相隔时间
connect_port 80
}
}
real_server 192.168.169.154 80 {
weight 3
HTTP_GET {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
LVS WEB服务器安装配置
LVS-DR模式中,后端真实服务器(RealServer)无需安装相关软件,只需要对VIP进行绑定和路由设置等一系列操作,这里整理为一个脚本:lvs_realserver.sh,详细解释如下
#!/bin/bash
# description: Config realserver
LVS_VIP=192.168.169.200 //虚拟IP
/etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo:0 $LVS_VIP netmask 255.255.255.255 broadcast $LVS_VIP
/sbin/route add -host $LVS_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 "LVS-RealServer Start OK"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $LVS_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 "LVS-RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
注意:脚本前头位置的 /etc/rc.d/init.d/functions 是需要手动给他加上执行权限
chmod +x /etc/rc.d/init.d/functions
LVS 客户端配置http服务
安装启动httpd
![]()
第一步:将lvs主备两台机器两张卡的IP设置好,两台WEB服务器IP设置好,并将主机名更改好,并将IP和主机名写进/etc/hosts文件
LVS主备服务器网卡IP设置注意的地方
两卡网卡有一张设置的IP要和后面的WEB服务器在一直网段,且不用加网关,另一个网卡设置成另外一个网段并加上网关
两台WEB服务器网卡IP设置注意的地方:
网卡设置时要将虚拟IP设为网关
第二步:在主备两台服务器编译安装ipvsadm和keepalived软件(安装方法见上面DR模式的安装方法)
第1步:下载keepalived-1.2.16.tar.gz和ipvsadm-1.26.tar.gz
wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
第2步:在192.168.10.1主跟192.168.10.1备机上安装(keepalived+lvs主备)
yum -y install kernel-devel* make* gcc* openssl* libnl* popt*
备:如果yum安装的popt包里没有包含popt-static包那么需要手动安装这个RPM包
ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux
tar -zxvf ipvsadm-1.26.tar.gz -C /usr/src/
cd /usr/src/ipvsadm-1.26/
make
make install
cd ..
tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src
cd /usr/src/keepalived-1.2.16/
./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/
make && make install
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived
第三步:修改keepalived配置文件/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_MASTER #主写LVS-MASTER,备写LVS-BACKUP
}
vrrp_instance VI_1 {
state MASTER #主写MASTER,备写BACKUP
interface eth0 #本机的有效网卡
virtual_router_id 51
priority 100 #优先级权值,主的值比备的要高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.100 #虚拟VIP
}
}
vrrp_instance VI_GATEWAY {
state MASTER #主写MASTER,备写BACKUP
interface eth1 #本机的有效网卡
virtual_router_id 52 #router_id,和上面不一样
priority 100 #优先级权值,主的值比备的要高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
1.1.1.100 #虚拟VIP,作为后端WEB服务器的网关用
}
}
virtual_server 192.168.5.100 80 {
delay_loop 6
lb_algo rr #高度算法,rr是轮询算法
lb_kind NAT #集群模式,这里是NAT模式
persistence_timeout 50 #主备心跳连接超时时间
protocol TCP #指的是四层分发
real_server 1.1.1.93 80 {
weight 1 #算法高度的权值,如果真实服务器权值一样,那么平均分发
#HTTP_GET {
TCP_CHECK { #验证web服务器是否存在的方式
connect_timeout 3 #连接超时时间,时间秒
nb_get_retry 3 #失败后连接的次数
delay_before_retry 3 #间隔时间秒
connect_port 80
}
}
real_server 1.1.1.94 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
第四步:开机lvs主备两台机器的路由转发功能
vi /etc/sysctl.conf
将net.ipv4.ip_forward = 0 改 1 && sysctl -p
systemctl start keepalived
第五步:两台WEB服务器安装httpd服务并添加测试文件
yum -y install httpd
第六步:在客户机上访问192.168.5.100虚拟IP进行测试