Linux&&LVS+Keepalived高可用群集

了解

用途:
判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。
官方网站:
http://www.keepalived.org/
实现功能:

  • 双主热备
  • DNS负载均衡
  • keepalived跟踪服务(web)
  • inotify+rsync数据同步

keepalived的热备方式

keepalived采用VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。
VRRP是针对路由器的一种备份解决方案-----由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。
在这里插入图片描述
热备组内的每台路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行移动,所以也成为漂移IP地址。
使用keepalived时,漂移地址的实现不需要手动建立虚接口配置文件(如eth0:0),而是由keepalived根据配置文件自动管理。

部署

预安装内核开发支持库:

yum  -y  install  kernel-devel  openssl-devel  popt-devel
yum  -y  ipvsadm
#编译安装keepalived
tar  zxf  keepalived-1.2.13.tar.gz
cd  keepalived-1.2.13
./configure  --prefix=/  --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
make  &&  make  install
#使用keepalived服务。执行make  install操作以后,会自动生成/etc/init.d/keepalived脚本文件,但换需要手动添加为系统服务,这样就可以使用service、chkconfig工具来对keepalived服务程序进行管理了。
ls  -l  /etc/init.d/keepalived
chkconfig  --add  keepalived
chkconfig  keepalived  on

使用keepalived实现双机热备

基于VRRP协议的热备方式,keepalived可用作服务器的故障切换,每个热备组可以有多台服务器。
在双机热备方案中,故障切换主要针对虚拟IP地址的漂移来实现,so能够适用于各种应用服务器(web、ftp、mail、ssh、dns)
以下基于web服务进行部署、测试
在这里插入图片描述

主服务器配置

#编写httpd服务监控脚本
vim  /opt/chk_httpd.sh
    service  httpd  status  &>  /dev/null
    if [ $? -ne 0 ];then
        service  httpd  restart  &>  /dev/null
        service  httpd  status  &>  /dev/null
        if [ $? -ne 0 ];then
            killall  keepalived
        fi
    fi
chmod  +x  /opt/chk_httpd.sh
#进入keepalived服务的配置目录
cd  /etc/keepalived/
#备份并编辑主配置文件
cp  keepalived.conf  keepalived.conf.bak
vim  keepalived.conf
    #指定全局参数
    global_defs {
        route_id  HA_TEST_R1  //本路由器(服务器)的名称
    }
    #定义httpd服务监控脚本并设置别名为chk_http_port
    vrrp_script chk_http_port {
        script  "/opt/chk_httpd.sh"  //检测nginx状态的脚本路径
        interval  2
    }
    #指定VRRP热备参数
    vrrp_instance dfq {  //定义VRRP热备实例
        state  MASTER  //热备状态,MASTER表示主服务器
        interface  eth0  //承载VIP地址的物理网卡接口
        virtual_route_id  1  //虚拟路由器的ID号,每个热备组保持一致
        priority  100  //优先级,数值越大优先级越高
        advert_int  1  //通告间隔秒数(心跳频率)
        authentication {  //认证信息,每个热备组保持一致
            auth_type  PASS  //认证类型
            auth_pass  123456  //密码字串
        }
        #调用监控别名
        track_script {
            chk_http_port
        }
        virtual_ipaddress {  //指定漂移地址(VIP),可以有多个
            172.16.16.172
        }
    }
    #指定VRRP热备组2
    vrrp_instance dfq2 {  //定义VRRP热备实例2
        state  BACKUP  //热备状态,MASTER表示主服务器
        interface  eth0  //承载VIP地址的物理网卡接口
        virtual_route_id  2  //虚拟路由器的ID号,每个热备组保持一致
        priority  90  //优先级,数值越大优先级越高
        advert_int  1  //通告间隔秒数(心跳频率)
        authentication {  //认证信息,每个热备组保持一致
            auth_type  PASS  //认证类型
            auth_pass  123456  //密码字串
        }
        #调用监控别名
        track_script {
            chk_http_port
        }
        virtual_ipaddress {  //指定漂移地址(VIP),可以有多个
            172.16.16.173
        }
    }
#启动keepalived服务。实际状态为MASTER的主服务器将为eth0接口自动添加VIP地址,通过ip命令可以查看(ifconfig命令看不到)
service  keepalived  start
ip  addr  show  dev  eth0

#实现ssh免交互登录
ssh-keygen  -t  rsa
ssh-copy-id  root@172.16.16.173
#安装inotify
tar  zxf  inotify-tools-3.14.tar.gz  -C  /usr/src
cd  /usr/src/inotify-tools-3.14/
./configure  &&  make  &&  make  install
vim  /opt/rsync.sh
    inotify_cmd="inotifywait  -mrq  -e  create,delete,move,modify,attrb  /var/www/html"
    rsync_cmd="rsync  -za  --delete  /var/www/html/  root@172.16.16.173:/var/www/html/"
    #inotify_cmd | while  read  a b c
    do
        if [ $(pgrep ^rsync$| wc -l)  -le  0 ];then
            $rsync_cmd
    done
chown  a+x  /opt/rsync.sh
/opt/rsync.sh &

priority 高的就是主服务器,即便state为MASTER

备用服务器配置

  • router_id : 路由器名称,建议为相同热备组的不同服务器配置不同路由器(服务器)的名称
  • state : 热备状态,至少存在一台状态为MASTER的主服务器,存在多台状态为BACKUP的备用服务器。
  • priorit : 优先级,数值越大则取得VIP控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可以依次递减,但不要相同,避免在争夺VIP控制权时发生冲突。
#预安装内核开发支持库:
yum  -y  install  kernel-devel  openssl-devel  popt-devel
yum  -y  ipvsadm
#编译安装keepalived
tar  zxf  keepalived-1.2.13.tar.gz
cd  keepalived-1.2.13
./configure  --prefix=/  --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
make  &&  make  install
#使用keepalived服务。执行make  install操作以后,会自动生成/etc/init.d/keepalived脚本文件,但换需要手动添加为系统服务,这样就可以使用service、chkconfig工具来对keepalived服务程序进行管理了。
ls  -l  /etc/init.d/keepalived
chkconfig  --add  keepalived
chkconfig  keepalived  on
service  ipstables  stop

#编写httpd服务监控脚本
vim  /opt/chk_httpd.sh
    service  httpd  status  &>  /dev/null
    if [ $? -ne 0 ];then
        service  httpd  restart  &>  /dev/null
        service  httpd  status  &>  /dev/null
        if [ $? -ne 0 ];then
            killall  keepalived
        fi
    fi
chmod  +x  /opt/chk_httpd.sh

cd  /etc/keepalived
#备份并编辑主配置文件
cp  keepalived.conf  keepalived.conf.bak
vim  keepalived.conf
    #指定全局参数
    global_defs {
        route_id  HA_TEST_R2  //本路由器(服务器)的名称
    }
    #定义httpd服务监控脚本并设置别名为chk_http_port
    vrrp_script chk_http_port {
        script  "/opt/chk_httpd.sh"  //检测nginx状态的脚本路径
        interval  2
    }
    #指定VRRP热备参数
    vrrp_instance dfq {  //定义VRRP热备实例
        state  BACKUP  //热备状态,MASTER表示主服务器
        interface  eth0  //承载VIP地址的物理网卡接口
        virtual_route_id  1  //虚拟路由器的ID号,每个热备组保持一致
        priority  99  //优先级,数值越大优先级越高
        advert_int  1  //通告间隔秒数(心跳频率)
        authentication {  //认证信息,每个热备组保持一致
            auth_type  PASS  //认证类型
            auth_pass  123456  //密码字串
        }
        #调用监控别名
        track_script {
            chk_http_port
        }
        virtual_ipaddress {  //指定漂移地址(VIP),可以有多个
            172.16.16.172
        }
    }
    #指定VRRP热备组2
    vrrp_instance dfq {  //定义VRRP热备实例2
        state  MASTER  //热备状态,MASTER表示主服务器
        interface  eth0  //承载VIP地址的物理网卡接口
        virtual_route_id  2  //虚拟路由器的ID号,每个热备组保持一致
        priority  100  //优先级,数值越大优先级越高
        advert_int  1  //通告间隔秒数(心跳频率)
        authentication {  //认证信息,每个热备组保持一致
            auth_type  PASS  //认证类型
            auth_pass  123456  //密码字串
        }
        #调用监控别名
        track_script {
            chk_http_port
        }
        virtual_ipaddress {  //指定漂移地址(VIP),可以有多个
            172.16.16.173
        }
    }
#启动keepalived服务。实际状态为MASTER的主服务器将为eth0接口自动添加VIP地址,通过ip命令可以查看(ifconfig命令看不到)
service  keepalived  start
ip  addr  show  dev  eth0

DNS负载均衡配置

yum  clean  all
yum  -y  install  bind  bind-chroot
vim  /etc/named.rfc1912.zones
   zone  "test.com"  in  {
       type  master;
       file  "test.com";
   } 
cd  /var/named
cp  -p  named.localhost  test.com
vim  test.com
    $TTL 1D
    @  IN  SOA  @  rname.invalid. (
                                       0
                                       1D
                                       1H
                                       1W
                                       3H    )
         IN  NS  dns
    dns  in  a   172.16.16.170
    www  in  a   172.16.16.172
    www  in  a   172.16.16.173
service  named  restart

测试双机热备功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LVS+Keepalived高可用群集

优势:
对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

在这里插入图片描述

配置主调度器

全局配置、热备配置:
为主、从调度器实现热备功能,漂移地址使用LVS群集的VIP地址

#加载ip_vs模块
modprobe  ip_vs
#重复上个环境的安装
--snip--
vim  /etc/sysctl.conf
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.eth0.send_redirects = 0
sysctl  -p
vim  /etc/keepalived/keepalived.conf
    global_defs {
        router_id  LVS_HA_R1  //主调度器名称
    }
    vrrp_instance  VI_1 {
        state  MASTER  //主调度器的热备状态
        interface  eth0
        virtual_router_id  1  
        priority  100  //主调度器的优先级
        advert_int  1
        authentication {  //主、从热备认证信息
            auth_type  PASS  //认证类型
            auth_pass  123456  //密码字串
        }
        virtual_ipaddress {  //指定漂移地址(VIP),可以有多个
            172.16.16.172
        }
    }

web服务器池配置:

vim  /etc/keepalived/keepalived.conf
    --snip--
    virtual_server  172.16.16.172  80  {  //虚拟服务器地址(VIP)、端口
        delay_loop  15  //健康检查的间隔时间(秒)
        lb_algo  rr  //轮询(rr)调度算法
        lb_kind  DR  //直接路由(DR)群集工作模式
        !persistence  60  //连接保持时间(秒),若启用请去掉!号
        protocol  TCP  //应用服务采用的是TCP协议
        real_server  172.16.16.177  80 {  //第一个web节点的地址、端口
            weight  1  //节点的权重
            TCP_CHECK {  //健康检查方式
                connect_port  80  //检查的目标端口
                connect_timeout  3  //连接超时(秒)
                nb_get_retry  3  //重试次数
                delay_before_retry  4  //重试间隔(秒)
            }
        }
        real_server  172.16.16.178  80 {  //第二个web节点的地址、端口
            weight  1  //节点的权重
            TCP_CHECK {  //健康检查方式
                connect_port  80  //检查的目标端口
                connect_timeout  3  //连接超时(秒)
                nb_get_retry  3  //重试次数
                delay_before_retry  4  //重试间隔(秒)
            }
        }
        real_server  172.16.16.179  80 {  //第三个web节点的地址、端口
            weight  1  //节点的权重
            TCP_CHECK {  //健康检查方式
                connect_port  80  //检查的目标端口
                connect_timeout  3  //连接超时(秒)
                nb_get_retry  3  //重试次数
                delay_before_retry  4  //重试间隔(秒)
            }
        }
    }
#重启keepalived服务
service  keepalived  restart

配置从调度器

全局配置、热备配置:
为主、从调度器实现热备功能,漂移地址使用LVS群集的VIP地址

#加载ip_vs模块
modprobe  ip_vs
#重复上个环境的安装
--snip--
vim  /etc/sysctl.conf
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.eth0.send_redirects = 0
sysctl  -p
vim  /etc/keepalived/keepalived.conf
    global_defs {
        router_id  LVS_HA_R2  //从调度器名称
    }
    vrrp_instance  VI_1 {
        state  BACKUP  //从调度器的热备状态
        interface  eth0
        virtual_router_id  1  
        priority  99  //从调度器的优先级
        advert_int  1
        authentication {  //主、从热备认证信息
            auth_type  PASS  //认证类型
            auth_pass  123456  //密码字串
        }
        virtual_ipaddress {  //指定漂移地址(VIP),可以有多个
            172.16.16.172
        }
    }

web服务器池配置:

vim  /etc/keepalived/keepalived.conf
    --snip--
    virtual_server  172.16.16.172  80  {  //虚拟服务器地址(VIP)、端口
        delay_loop  15  //健康检查的间隔时间(秒)
        lb_algo  rr  //轮询(rr)调度算法
        lb_kind  DR  //直接路由(DR)群集工作模式
        !persistence  60  //连接保持时间(秒),若启用请去掉!号
        protocol  TCP  //应用服务采用的是TCP协议
        real_server  172.16.16.177  80 {  //第一个web节点的地址、端口
            weight  1  //节点的权重
            TCP_CHECK {  //健康检查方式
                connect_port  80  //检查的目标端口
                connect_timeout  3  //连接超时(秒)
                nb_get_retry  3  //重试次数
                delay_before_retry  4  //重试间隔(秒)
            }
        }
        real_server  172.16.16.178  80 {  //第二个web节点的地址、端口
            weight  1  //节点的权重
            TCP_CHECK {  //健康检查方式
                connect_port  80  //检查的目标端口
                connect_timeout  3  //连接超时(秒)
                nb_get_retry  3  //重试次数
                delay_before_retry  4  //重试间隔(秒)
            }
        }
        real_server  172.16.16.179  80 {  //第三个web节点的地址、端口
            weight  1  //节点的权重
            TCP_CHECK {  //健康检查方式
                connect_port  80  //检查的目标端口
                connect_timeout  3  //连接超时(秒)
                nb_get_retry  3  //重试次数
                delay_before_retry  4  //重试间隔(秒)
            }
        }
    }
#重启keepalived服务
service  keepalived  restart
#查看双机热备运行情况
ipvsadm  -ln

配置web节点服务器

#设置回环地址为VIP地址
vim  /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    ONBOOT=yes
    IPADDR=172.16.16.172
    NETMASK=255.255.255.255
ifup  lo:0
#修改内核参数
vim  /etc/sysctl.conf
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.conf.default.arp_ignore = 1
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
#添加路由规则
route  add  -host  172.16.16.172  dev  lo:0
service  httpd  restart

测试LVS+Keepalived高可用群集

在这里插入图片描述

数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值