1、Linux集群介绍
- linux集群功能可以分为:HA高可用、负载均衡。
- 高可用是:有两台机器,一台作为主用工作,一台作为冗余备份。当主用机器宕机后,冗余机器将接替,继续提供服务。
开源的高可用软件有:heartbeat、keepalived,其中heartbeat已无人维护,现在基本上都使用keepalived。
- 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2台;
实现负载均衡的开源软件有LVS、keepalived、haproxy、nginx,商业的负载均衡有:F5、Netscaler,优点是稳定,支持高并发,但是价格昂贵。
2、keepalived介绍
- 高可用我们重点学习keepalived。heartbeat由于在Centos6上会有一些问题,偶尔会切换不及时,已经比较少使用。
- keepalived通过VRRP(Virtual Router Redundancy Protocl 中文为:虚拟路由冗余协议)来实现高可用。
- HA高可用:类似是多台功能相同的路由器组成的一个小组,小组中有一台master角色,N>=1个backup角色。
- master会组播vrrp数据包给backup,当backup收不到master发送的数据包时,就认为master宕机了,使用backup来充当新的master(通过backup的优先级来判断哪个backup成功新的master)
- Keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。
3、keepalived配置高可用集群
- 首先准备两台机器,都安装keepalived: yum install -y keepalived ;keepalived,实际是包含一个服务的,也就是说这个服务用来实现高可用;
A机器:ip:110 [root@aminglinux ~]# yum install -y keepalived B机器:ip:112 [root@localhost ~]# yum install -y keepalived VIP :IP:115
- 这里使用 nginx ,把它作为一个高可用的对象——>使用nginx作为演示对象的原因,因为nginx在工作中,在生产环境中,很多企业把nginx做一个负载均衡器 ,假设nginx一旦挂掉,那么后端所有的web,即使说是正常的,那也无法访问到;
- 若是A、B机器没有装nginx服务,可以直接 yum安装
- 若是lnmp安装过nginx,则不需要安装了(源码包安装的nginx)
A机器:yum安装 [root@aminglinux ~]# yum install -y nginx [root@aminglinux ~]# systemctl start nginx [root@aminglinux ~]# ps aux |grep nginx root 2064 0.0 0.2 120812 2092 ? Ss 22:41 0:00 nginx: master process /usr/sbin/nginx nginx 2065 0.0 0.3 121276 3128 ? S 22:41 0:00 nginx: worker process nginx 2066 0.0 0.3 121276 3128 ? S 22:41 0:00 nginx: worker process root 2068 0.0 0.0 112720 984 pts/0 S+ 22:41 0:00 grep --color=auto nginx B机器:因之前安装过lnmp,不需安装 [root@localhost ~]# ps aux |grep nginx root 1057 0.0 0.1 46040 1264 ? Ss 21:05 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf nobody 1058 0.0 0.3 48528 3904 ? S 21:05 0:00 nginx: worker process nobody 1059 0.0 0.3 48528 3904 ? S 21:05 0:00 nginx: worker process root 1667 0.0 0.0 112724 984 pts/0 S+ 22:35 0:00 grep --color=auto nginx
**3. master上修改keepalived的配置文件;**配置文件内容地址:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf
- 默认的配置文件路径在/etc/keepalived/keepalived.conf
- 清空文件的快捷键方法 > !$
[root@aminglinux ~]# ls /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf [root@aminglinux ~]# > !$ //直接清空文件内容了 > /etc/keepalived/keepalived.conf [root@aminglinux ~]# cat /etc/keepalived/keepalived.conf [root@aminglinux ~]# vim /etc/keepalived/keepalived.conf //去文件地址去下载内容
将拷贝的内容复制进去 只需要改网卡名字和IP192.168.222.115 ####################### # 全局配置 ####################### global_defs { //global_defs 全局配置标识 notification_email { //notification_email用于设置报警邮件地址 xou6363@163.com //可以设置多个,每行一个 } notification_email_from xou6363@163.com //设置邮件发送地址 smtp_server 127.0.0.1 //设置邮件的smtp server地址 smtp_connect_timeout 30 //设置连接smtp sever超时时间 router_id LVS_DEVEL } ###################### # VRRP配置 ###################### vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh" //检查服务是否正常,通过写脚本实现,脚本检查服务健康状态 interval 3 //检查的时间间断是3秒 } vrrp_instance VI_1 { //VRRP配置标识 VI_1是实例名称 state MASTER //定义master相关 interface ens33 //通过vrrp协议去通信、去发广播。配置时,需注意自己的网卡名称 virtual_router_id 51 //定义路由器ID ,配置的时候和从机器一致 priority 100 //权重,主角色和从角色的权重是不同的 advert_int 1 //设定MASTER与BACKUP主机质检同步检查的时间间隔,单位为秒 authentication { //认证相关信息 auth_type PASS //这里认证的类型是PASS auth_pass aminglinux>com //密码的形式是一个字符串 } virtual_ipaddress { //设置虚拟IP地址 (VIP),又叫做漂移IP地址 192.168.222.115 //更改为192.168.222.115 } track_script { //加载脚本 chk_nginx } }
- virtual_ipaddress:简称VIP,这个vip,两台机器,一个主,一个从,正常的情况是主在服务,主宕掉了,从起来了,从启动服务,从启动nginx以后,,启动以后,访问那个IP呢?把域名解析到那个IP上呢?假如解析到主上,主宕掉了,所以这个,需要定义一个公有IP(主上用的IP,从上也用的IP);这个IP是随时可以夏掉,去配置的
- 定义监控脚本,脚本内容地址: