一.模拟LVS的DR模式下的HA高可用
实验环境:
主机名(IP) | 服务 |
---|---|
server1(172.25.254.1) | 主备 |
server2(172.25.254.4) | 辅备 |
server2(172.25.254.2) | realserver |
server3(172.25.254.3) | realserver |
1.主备server1上的操作
-
(1) 官网下载安装包(本次实验已有安装包直接从物理机上scp
-
(2)将安装包解压并且编译安装(在yum源头搭建好后)
a.安装包解压
b.安装包的安装(三部曲)
安装keepalived的依赖包
编译keepalived的源码包
-
(3)给keepalive的服务启动脚本加执行权限
-
(4)创建软链接方便调用
- ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
- ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
- ln -s /usr/local/keepalived/etc/keepalived/ /etc/
- ln -s /usr/local/keepalived/sbin/keepalived /sbin/
/etc/init.d/ldirectord stop ##该功能与HA功能有重复,HA会自动分配virtualserver
- (5)删除虚拟服务器添加的网卡
- (6)编译keepalived的配置文件
- (7)keepalived配置文件的编辑及其详解
A.keepalived的所有配置都在一个配置文件里面设置,支持的配置主要分为三类
1.全局配置(Global Configuration):作用于整个keepalived服务
2.VRRPD配置:keepalived的核心
3.虚拟服务配置:指定服务与负载均衡配置文件都是以块形式组织的,每个块都在{}包围的范围内
! Configuration File for keepalived
global_defs { #全局定义块
notification_email { #邮件通知
root@localhost ##指的是邮件发给本地用户
}
#设置邮件发送地址
notification_email_from keepalived@localhost
smtp_server 127.0.0.1 #设置smtp server地址,为回环接口
smtp_connect_timeout 30 #设置smtp server服务的超时时间
router_id LVS_DEVEL #load balance的标识ID,用于email报警
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
##VRRPD的配置
vrrp_instance VI_1 {
state MASTER #主机,备机为BACKUP,此状态是由priority的数值来决定的,当前priority的数值小于备机的数值,那么将会失去master状态
interface eth0 #HA检测网络接口
virtual_router_id 51 #主,备机的virtual_router_id必须相同取值0-255
priority 100 #主机的优先级,必须大于备机
advert_int 1 #主备之间的通告间隔秒数
authentication {
auth_type PASS #设置验证类型,主要由PASS和AH俩种
auth_pass 1111
}
#指定漂移地址(VIP)即切换到master时,这些IP会被添加,切换到BACKUP时,这些IP会被删除(传给ip addr命令),所以每台服务器可以不用绑定任何的虚拟地址。
virtual_ipaddress {
172.25.13.100
}
}
#虚拟服务配置
virtual_server 172.25.13.100 80 { #定义虚拟服务器
delay_loop
lb_algo rr #lvs调度算法里面的论叫
lb_kind DR #lvs的DR模式
#persistence_timeout 50 #注释掉
protocol TCP #指定转发协议类型
real_server 172.25.13.2 80 { #配置服务节点
TCP_CHECK {
weight 1 #默认为1,0为失效
connect_timeout 3 #10秒无响应超时
retry 3 #重复次数
delay_before_retry 3 #重复间隔
}
}
real_server 172.25.13.3 80 {
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
- (8)开启服务
注:启动不了服务可能是启动服务的脚本没有加执行的权限,解决如下:
2.辅备server4上的配置
- (1)以base作为母盘建立快照虚拟机vm4
-
(2)vm4的快照虚拟机的基本配置
主机名和ip的修改如下:
-
(3)在主备(server1)上拷贝keepalive的相关配置文件
-
(4)如果该服务的脚本没有执行权限则需要添加脚本的执行权限
-
(5)创建软链接方便调用
-
(6)编辑keepalived的配置文件与server1主备基本相同,需要修改的地方如下标记
-
(7)开启服务
3.测试: -
在server1(主备)
发现已经分配到了虚拟服务器的IP,但是server4(辅备)上是没有虚拟IP的。 -
server2和server3上打开apache服务并且在默认发布目录下添加要发布的内容
-
在物理机上
-
关掉server1(主备)上的keepalived服务
发现大约在9s左右的时间server4上会有虚拟IP出现
在物理机上再次测试
4.当有错误时自动发邮件给本机的检测
server1(主备)和server4(辅备)都可以收到邮件,下面以server1为例
-
安装邮件所需要的软件(yum源搭建好之后)
-
当关掉server4的keepalived服务之后查看邮件
mail ##查看该邮件如果当server1该keepalived服务关掉的时候,当realserver的httpd关掉的时候都会有报错
补充知识:
管理虚拟机的三种命令的含义
- kvm:内核的虚拟化
- qemu:外部设备的虚拟化
- libvirt:内部接口的虚拟化,管理虚拟化接口,即使关掉服务虚拟机还是会正常使用