keepalived+LVS配置详解

news2024/10/6 14:32:59

keepalived+LVS配置详解

  • keepalived简介
  • keepalived的应用场景
  • keepalived工作原理
    • VRRP协议
    • 核心组件
    • 分层工作
    • 工作状态
  • LVS简介
  • LVS三种模式
    • NAT模式(网络地址映射)
    • IPTUN模式(IP隧道)
    • DR模式(直接路由)
      • 三种模式对比
  • keepalived+LVS配置
    • 1.master配置
    • 2. keepalived配置文件
    • 3 修改keepalived配置文件
      • 3.1配置VIP
      • 3.2 配置负载均衡策略
    • 4 配置web01节点(192.168.182.132)
      • 4.1 安装httpd服务
      • 4.2 调整proc响应参数
      • 4.3 设置路由
    • `web02的操作和上面web01一样`
    • 测试

keepalived简介

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP全名Virtual Route RedundancyProtocol(虚拟路由冗余协议),VRRP出现的目的就是为了解决静态路由单点故障问题,它能够保证当个别节点宕机时,整个网络可以不间断地运行,所以,keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

keepalived的应用场景

  • 管理LVS软件
  • 基于VRRP实现高可用
  • 健康检查,故障切换
    keepalived官网地址
    通过官网介绍,我们可以得知keepalived提供的两个重要的功能:loadbalancing和high-availability。最初是专门为了LVS负载均衡软件设计的,可以用来管理并监控LVS集群系统中各个服务节点的状态,后来的版本中又加入了可以实现高可用的VRRP功能。

keepalived主要有两种应用场景,一个是通过配置keepalived结合ipvs做到负载均衡(LVS+Keepalived);另一个是通过自身健康检查、资源接管等功能做高可用(双机热备),实现故障转移,功能近似于Heartbeat。

keepalived工作原理

VRRP协议

keepalived是以VRRP协议为实现基础的,VRRP全称Vritual Router Redundancy Protocol,即虚拟路由冗余协议,可以认为是实现路由器高可用的协议。

  • VRRP是用来实现路由器冗余的协议。
  • VRRP协议是为了消除在静态缺省路由环境下路由器单点故障引起的网络失效而设计的主备模式的协议,使得发生故障而进行设计设备功能切换时可以不影响内外数据通信,不需要再修改内部网络的网络参数。
  • VRRP协议需要具备有IP备份,优先路由选择,减少不必要的路由器通信等功能。
  • VRRP协议将两台或多台路由器虚拟成一个设备,对外提供虚拟路由器IP(一个或多个)。然而,在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话,就是master,或者是通过算法选举产生的,master实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等,其他设备不具有该IP,状态时backup。除了接收master的VRRP状态通告信息外,不执行对外的网络功能,当主机失效时,backup将接管原先master的网络功能。
  • VRRP协议配置时,需要配置每个路由器的虚拟路由ID(VRID)和优先权值,使用VRID将路由器进行分组,具有相同VRID值的路由器为同一个组,VRID是一个0-255的整整数;同一个组中的路由器通过使用优先权值来选举MASTER。优先权大者为MASTER,优先权也是一个0-255的正整数。
    在高可用场景,就是把路由器换成服务器或者服务器上的应用:

通常情况下是将两台linux服务器组成一个热备组(master-backup),同一时间热备组内只有一台主服务器(master)提供服务,同时master会虚拟出一个共用IP地址(VIP),这个VIP只存在master上并对外提供服务。

如果keepalived检测到master宕机或服务故障,备服务器(backup)会自动接管VIP成为master,keepalived并将master从热备组移除,当master恢复后,会自动加入到热备组,默认再抢占成为master,起到故障转移功能。

核心组件

keepalived是模块化设计,不同模块负责不同的功能,主要有三个模块,分别是core、check和VRRP。

  • core模块:为keepalived的核心组件,负责住进程启动、维护以及全局配置文件的加载和解析;
  • check模块:负责健康检查,包括常见的各种检查方式,这里的配置决定了工作在哪个层;
  • VRRP模块:是实现VRRP协议的。

此外还有:

  • system call:系统调用
  • watch dog:监控check和vrrp进程的看管者
  • libipfwc:iptables(ipchains)库,配置LVS会用到
  • libipvs*:配置LVS时会用到

分层工作

keepalived做负载均衡时工作在TCP/IP协议的3/4/5层,做高可用时工作在OSI七层模型的3/4/7层,基本上一样的。

分层功能相关协议
应用层网络服务和最终用户的一个接口TFTP,HTTP,SNMP,DNS,FTP,SMTP,TELNET
表示层数据的表示、安全、压缩无协议
会话层会话的建立、管理、中止无协议
传输层定义传输数据的协议端口号,以及流程和差错校验TCP,UDP
网络层进行逻辑地址寻址,实现不同网络之间的路径选择IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层建立逻辑连接、硬件地址寻址、差错校验等功能SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层建立、连接、断开物理连接ISO2110,IEEE802,IEEE802.2

具体工作层数,区别于使用的哪一个网络协议来进行的健康检查:

Layer3:工作在三层时,keepalived会定期向热备组中的服务器发送一个ICMP数据包,来判断某台服务器是否故障,如果没有响应则将这台服务器从热备组移除。

Layer4:工作在四层时,keepalived以TCP端口的状态判断服务器是否故障,比如MySQL的3306端口,如果无法访问则将这台服务器从热备组移除。

Layer7:工作在七层时,keepalived根据用户设定的策略判断服务器上的程序是否正常运行,比如HTTP请求的方式,如果返回错误状态码则将这台服务器从热备组移除。

在Keepalived服务器群之间,只有作为主的服务器不断发送VRRP广播包,告诉备它还活着,此时备不会抢占主,只有当主不可用,既备接受不到主的VRRP广播包,这时候备就会启动相关的服务接管主的任务向外提供服务,以保证服务的正常使用。

工作状态

keepalived正常启动的时候,共启动3个进程:
一个父进程,负责监控其子进程;一个时VRRP子进程,另外一个是checkers子进程;两个子进程都被系统watchlog看管,Healthcheck子进程检查各自服务器的健康状况。如果healthchecks进程检查到master上服务不可用了,就会通知本机上的VRRP子进程,让他删除通告,兵器去掉虚拟IP,转换为BACKUP状态。

LVS简介

LVS官网
LVS中文站点
LVS 是 Linux Virtual Server 的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统,是根据iptables的实现来开发的,所以使用时会和iptables相似。

LVS三种模式

NAT模式(网络地址映射)

NAT模式工作原理是:客户端访问LVS时,LVS通过重写请求报文的目标地址,且根据预设的调度算法,将请求分派给后端真实服务器,真实服务器接收到请求处理后,发出响应报文也需要通过LVS返回,返回时需要修改报文的源地址,然后返回给客户,完成整个负载调度过程

  1. DNAT:目标地址转换,改变的是目标地址
  2. SNAT:源地址转换,改变的是源地址

NAT 模式就是使用 SNAT 和 DNAT 技术完成报的转发,NAT 方式可支持任何的操作系统,以及私有网络,并且只需一个 Internet IP 地址,非常节省成本,但是整个系统的性能受到限制。因为执行 NAT 每次需要重写数据包,有一定的延迟,另外,大部分应用有 80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对LVS形成很大压力,容易成为瓶颈

IPTUN模式(IP隧道)

IP TUN当LVS分配请求到不同的 real server,real server 处理请求后直接回应给用户,这样 LVS 仅处理客户机与服务器的一半连接。IP TUN 技术极大地提高了 LVS 的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过 100 个节点。real server 可以在任何 LAN 或 WAN 上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。但此模式要求所有服务器必须支持 IP 隧道协议,因此只能在 linux 下使用,在 windows 无法使用。

DR模式(直接路由)

DR与 IP TUN 类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性,DR 与 IP TUN 相比,没有 IP 封装的开销,但由于采用物理层(修改 MAC地址)技术,所有服务器都必须在同一个局域网

DR和IP TUN区别
DR和IP TUN相比,没有IP封装的开销,但由于采用数据链路层(修改MAV地址)技术,所有服务器都必须在一个物理网段

三种模式对比

NAT模式IP TUN模式DR模式
对服务器要求任何操做系统都支持必须支持IP隧道协议,目前只有Linux支持
网络要求局域网局域网或广域网
支持的节点数10-20个,据Diretor处理能力而定可以支持100个节点
安全性较高,可以隐藏real server较差,real server容易暴露
IP要求仅需要一个合法IP地址作为VIP除VIP外,每个服务器需要拥有合法IP地址可以直接路由至客户端
拓展性
特点地址转换封装IP地址

keepalived+LVS配置

环境说明:

系统版本软件版本节点名称节点IP地址
centos7.9keepalived-2.2.7、LVS-1.27master192.168.182.130
centos7.9keepalived-2.2.7、LVS-1.27backup192.168.182.131
centos7.9httpd不同发行版本,httpd版本也不同web01192.168.182.132
centos7.9httpd不同发行版本,httpd版本也不同web02192.168.182.133

1.master配置

// 安装前的准备工作

[root@master ~]# systemctl disable --now firewalld  //关闭防火墙
[root@master ~]# setenforce 0  //关闭selinux
[root@master ~]# head -7 /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled  //改为disabled


[root@master opt]# wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz  //下载keepalived

[root@master opt]# tar -zxf keepalived-2.2.7.tar.gz -C /usr/local/  //这里我解压到/usr/local 目录下,各位根据自己需求进行解压

[root@master keepalived-2.2.7]# pwd
/usr/local/keepalived-2.2.7
[root@master keepalived-2.2.7]# yum -y install gcc openssl-devel libnl3-devel //解决依赖问题
[root@master ~]# modprobe ip_vs  //加载ip_vs模块
[root@master ~]# modprobe ip_vs 
[root@master ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

[root@master ~]# vim /etc/sysctl.conf  //调整proc响应参数,并关闭linux内核重定向参数,添加下面内容
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
net.ipv4.ip_forward = 1
[root@master ~]# sysctl -p  //加载,使其生效

// 编译安装keepalived

[root@master keepalived-2.2.7]# ./configure --prefix=/usr/local/keepalived
[root@master keepalived-2.2.7]# make && make install

// 启动keepalived

[root@master keepalived]# pwd
/usr/local/keepalived/etc/keepalived
[root@master keepalived]# cp keepalived.conf.sample keepalived.conf  //因为没有keepalived配置文件,并且没有配置文件keepalived是启动不了的,所以需要我们自己copy一个配置文件
[root@master keepalived]# cp keepalived.conf keepalived.conf-bak  //做一个备份,这一步可做可不做
// 完成上面的步骤依旧启动不了,还需要做以下步骤
[root@master keepalived]# mkdir /etc/keepalived/
[root@master keepalived]# ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@master keepalived]# vim keepalived.conf
interface ens33  //找到21行,将eth0改为ens33,这里的网卡名根据自己的网卡名来修改
[root@master keepalived]# systemctl enable --now keepalived  //这样就可以启动keepalived了。

// 安装LVS

[root@master keepalived]# yum -y install ipvsadm 

// 在第一次启动LVS时可能会出现报错,解决措施如下

[root@master keepalived]# systemctl cat ipvsadm.service 
# /usr/lib/systemd/system/ipvsadm.service
[Unit]
Description=Initialise the Linux Virtual Server
After=syslog.target network.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c "exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm"  //我们可以看到LVS启动依赖etc下的ipvsadm这个文件,但是这个文件恰恰没有。
ExecStop=/bin/bash -c "exec /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm"
ExecStop=/sbin/ipvsadm -C
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
[root@master keepalived]# touch /etc/sysconfig/ipvsadm //创建完成之后百年可重新启动了。
[root@master keepalived]# systemctl enable --now ipvsadm

2. keepalived配置文件

配置文件分为: 全局配置、VRRP配置、LVS配置
配置文件又包括以下模块

  • LOBAL CONFIGURATION
  • BFO CONFIGURATION
  • VRRP CONFIGURATION
  • LVS CONFIGURATION
! Configuration File for keepalived

global_defs {   //全局定义部分
   notification_email {  //设置报警邮件地址,可设置多个
     acassen@firewall.loc  //接收通知邮件的地址
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc  //设置发送邮件通知地址
   smtp_server 192.168.200.1  //设置 smtp server 地址,可以ip或域名,可选端口号(默认是25)
   smtp_connect_timeout 30  //设置连接 smtp server超时时间
   router_id LVS_DEVEL  //主机标识,用于邮件通知
   vrrp_skip_check_adv_addr
   vrrp_strict  //严格执行VRRP协议规范,此模式不支持节点单播
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   script_user keepalived_script   //指定运行脚本的用户名和组。默认使用用户的默认组。如未指定,默认为keepalived_script 用户,如无此用户,则使用root。
   enable_script_security  //如果路径为非root可写,不要配置脚本为root用户执行。
}

vrrp_instance VI_1 {  //VRRP实例部分定义,VI_1自定义的名称
    state MASTER  // 指定keepalived的角色,必须大写,可选值为MASTER|BACKUP
    interface eth0  //网卡设置,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
    virtual_router_id 51  // 虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
    priority 100  // 定义优先级,数字越大,优先级越高
    advert_int 1  // 设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
    authentication {  //设置验证类型和密码,两个节点必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {  //设置虚拟IP地址,可以设置多个
        192.168.200.16
        192.168.200.17
        192.168.200.18
    track_script {    // 脚本监控状态
        chk_nginx_service // 可加权重,但会覆盖声明的脚本权重值chk_nginx_service weight -20
    }
     notify_master “写脚本的绝对路径”      //当前节点成为master时,通知脚本执行此脚本
     notify_backup “写脚本的绝对路径”  //当前节点成为master时,通知脚本执行此脚本
     notify_fault “写脚本绝对路径” //当前节点出现故障时,执行此脚本
    }
}

virtual_server 192.168.200.100 443 {  // 定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
    delay_loop 6  // 每隔6秒查询realserver状态
    lb_algo rr  // 后端调试算法(load balancing algorithm)
    lb_kind NAT  //LVS调度类型NAT/DR/TUN
    persistence_timeout 50  // 同一IP的连接60秒内被分配到同一台realserver
    protocol TCP  // 用TCP协议检查realserver状态

    real_server 192.168.201.100 443 {
        weight 1  //权重值越大优先级越高,优先级越大lvs就越优先访问
        SSL_GET {  // keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            url {
              path /
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3  3秒无响应为超时
            retry 3   //重连次数
            delay_before_retry 3  //重连间隔时间
            connect_port 80  //健康检查realserver的端口
        }
    }
}

3 修改keepalived配置文件

[root@master ~]# vim /etc/keepalived/keepalived.conf
router_id LVS_01  //修改此行,指定服务器名称,主备服务器名称须不同这里我修改为LVS_01
!vrrp_strict  //注释掉此行内容
state MASTER  //指定热备状态,主就改为MASTER,备就为BACKUP
interface ens33  //网卡名也要和自己的网卡名匹配
virtual_router_id 51 
nopreempt  //设置为非抢占模式,就是MASTER挂了之后BACKUP就不会去替代,如果想设置可以加上此行,这里我们不加
    virtual_ipaddress {  //指定集群的VIP
        192.168.182.100
virtual_server 192.168.182.100 80 { //指定虚拟服务器地址(VIP)、端口号,定义虚拟服务器和web服务器
delay_loop 6  //健康检查时间间隔,就是每隔6秒,检查MASTER是否存活
lb_algo rr  //指定调度算法,轮询(rr)
protocol TCP  //应用服务使用的是tcp协议
persistence_timeout 0  //连接保持时间默认是秒
real_server 192.168.182.132 80 {  //第一个web服务器的ip加端口号
        weight 1  节点权重
        TCP_CHECK { 
            connect_port 80  //检查目标端口
            connect_timeout 3  //添加连接超时
            nb_get_retry 3  //添加重试次数
            !retry 3 
            delay_before_retry 3  //添加重试间隔
              }
    }
 
 real_server 192.168.182.133 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

[root@master ~]# systemctl restart keepalived.service  //修改完之后重启keepalived

3.1配置VIP

[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33  //添加下面两行内容结即可
IPADDR1=192.168.182.100  //VIP地址 
NETMASK1=255.255.255.255  //VIP的子网掩码
[root@master ~]# systemctl restart network  //重启网卡服务

[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:95:56:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.182.130/24 brd 192.168.182.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.182.100/32 scope global ens33  //这里就是我们刚才添加的VIP

3.2 配置负载均衡策略

[root@master ~]# ipvsadm-save > /etc/sysconfig/ipvsadm  //这条命令是用来保存负载分配策略的
[root@master ~]# ipvsadm -C  //此命令是用来清空分配策略的
[root@master ~]# ipvsadm -A -t 192.168.182.100:80 -s rr  //A表示的是添加虚拟服务器,t是指定VIP和端口号,s是指定算法,rr表示的是轮询算法
[root@master ~]# ipvsadm -a -t 192.168.182.100:80 -r 192.168.182.132:80 -g //a是添加真实服务器地址,r指定RIP以及端口号,RIP也就是后端服务器ip地址,g表示的是DR模式
[root@master ~]# ipvsadm -a -t 192.168.182.100:80 -r 192.168.182.133:80 -g  //132和133分别是web01和02

[root@master ~]# ipvsadm -ln  //查看节点状态
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.182.100:80 rr
TCP  10.10.10.2:1358 rr persistent 50
  -> 192.168.200.200:1358         Masq    1      0          0

backup也就是192.168.182.131的配置和上面的步骤一样,除以下地方不同之外,其他都一样

[root@backup ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

keepalived配置文件中根据你BACKUP进行修改
router_id LVS_02
state BACKUP
priority 90  //优先级要比主上面小

4 配置web01节点(192.168.182.132)

// 关闭防火墙和selinux
[root@web01 ~]# systemctl disable --now firewalld
[root@web01 ~]# setenforce 0
[root@web01 ~]# head -7 /etc/sysconfig/selinux 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

4.1 安装httpd服务

[root@web01 ~]# yum -y install httpd
[root@web01 ~]# systemctl enable --now httpd  //设置开机自启
[root@web01 ~]# touch /var/www/html/index.html
[root@web01 ~]# vim /var/www/html/index.html 
<marquee><font color=blue><h1>this is web01<marquee>
[root@web01 ~]# systemctl restart httpd

[root@web01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo
DEVICE=lo:1
IPADDR1=192.168.182.100
NETMASK1=255.255.255.255
[root@web01 ~]# systemctl restart network
[root@web01 ~]# ifup lo:1  //开启网卡
没有ifconfig命令,解决措施
[root@web01 ~]# yum -y install net-tools
[root@web01 ~]# ifconfig lo:1  //查看lo:1,网卡
lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.182.100  netmask 255.255.255.255
        loop  txqueuelen 1000  (Local Loopback)

4.2 调整proc响应参数

[root@web01 ~]# 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
[root@web01 ~]# sysctl -p 

4.3 设置路由

[root@web01 ~]# route add -host 192.168.182.100 dev lo:1
[root@web01 ~]# route -n

web02的操作和上面web01一样

测试

关闭master上的keepalived
[root@master keepalived]# systemctl stop keepalived.service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做主管如何规范测试团队

当你来到一个项目不规范的技术团队&#xff0c;你会怎么处理呢? 问题 Testing 流程不规范 没有需求评审和设计评审&#xff0c;需求经常是业务或者项目经理直接跟开发提&#xff0c;有时候开发自己都不明白需求&#xff0c;糊里糊涂地就要开发&#xff0c;也没有设计评审&…

插画师培训怎么选,5大插画师培训班排名

插画师培训哪里好&#xff0c;给大家推荐5大插画师培训班排名&#xff0c;各有优势和特色&#xff0c;提供大家选择&#xff01; 一&#xff1a;5大插画师培训班排名 1、轻微课&#xff08;五颗星&#xff09; 主打课程有日系插画、游戏原画、古风插画、动漫漫画&#xff0c;以…

UI自动化测试、接口测试等自动化测试策略

今天跟大家介绍UI测试、接口测试、单元测试主要内容&#xff0c;以及每种测试花费时间讨论。 UI测试【Selenium】 UI测试是最接近软件真实用户使用行为的测试类型。通常是模拟真实用户使用软件的行为&#xff0c;即模拟用户在软件界面上的各种操作&#xff0c;并验证这些操作对…

江苏专转本如何事半功倍的备考

专转本如何事半功倍的备考 一个人学习成绩的优劣取决于他的学习能力&#xff0c;学习能力包括三个要素&#xff1a;规范的学习行为&#xff1b;良好的学习习惯&#xff1b;有效的学习方法。有了规范的学习行为才能培养出良好的学习习惯&#xff0c;形成了良好的学习习惯就会形成…

Android - 代码生成远程依赖库(阿里云)

一、注册 没有注册过阿里云且没有实名认证的点这里&#xff1a;阿里云官网 二、查看库 阿里云制品仓库Packages &#xff08;注&#xff1a;如果没有创建企业或个人使用&#xff0c;按照提示&#xff0c;选个人使用&#xff09; 三、选择类型 选择其中一个&#xff08;两…

问题解决篇 | Win11网络连接上了但是无法上网(修改DNS弹出框框“出现问题”,如何通过网络检测确定并修复网络问题)

目录 问题 网络诊断 Win i 打开设置 搜索“查找并修复网络问题”并点击 "远程计算机或设备将不接受连接" 解决办法&#xff1a; Win R&#xff0c;输入 inetcpl.cpl &#xff0c;点击确定&#xff0c;打开Internet选项 选择“连接” 点击“局域网设置” 三个…

vscode下使用arduino插件开发ESP32 Heltec WiFi_Kit_32_V3

下载vsCode 添加 arduino 插件 在Arduino IDE 中添加开发板&#xff0c;注意只能用右侧的开发板管理器添加&#xff0c;自己下载之后复制进去的IDE认&#xff0c;但是vsCode不认&#xff0c;搜索ESP32 第一个库里面只有到V2的&#xff0c;没有V3&#xff0c;要安装下面那个 H…

CDH 6.3.2启用HDFS高可用

启用原因 CDH 6.3.2平台即将用于生产&#xff0c;生产平台几乎需要高可用平台&#xff0c;故需要升级CDH中的HDFS为HA。 启用准备 CDH已经成功安装并正常使用CMS的管理员账号正常登陆 HDFS启用HA 登陆CMS系统->选择HDFS服务->点击进入到HDFS服务详情页面&#xff0c…

CRC冗余校验的原理和FPGA实现思路

CRC校验码&#xff0c;顾名思义是用于校验的。它可以用于检测数据传输过程中是否出现错误&#xff08;某些位&#xff0c;或某几位&#xff0c;或者某块区域位错误&#xff09;&#xff0c;反正 可以知道数据出错了&#xff0c;但是不能纠错。 CRC校验&#xff0c;本质上是模2…

VIIRS-NPP夜间灯光遥感数据下载和预处理

VIIRS-NPP夜间灯光遥感数据下载和预处理 月和年合成产品下载网站 日数据下载网站 一、下载shp掩膜文件 下载好月合成产品后&#xff0c;在这个网站上下载矢量地图&#xff0c; 点击复制按钮&#xff0c;来到这个网站&#xff0c;ctrl v粘贴 点击右上角Export&#xff0c;…

【阿旭机器学习实战】【31】股票价格预测案例--线性回归

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例&#xff0c;欢迎点赞&#xff0c;关注共同学习交流。 注:本文模型结果不好&#xff0c;仅做学习参考使用&#xff0c;提供思路。了解数据处理思路,训练模型和预测数值的过程。 目录1. 读取数据K线图绘…

解决一打开IE浏览器就自动跳转到Edge浏览器的问题

问题说明&#xff1a; 打开Internet Explorer浏览器后会自动跳转到Microsoft Edge浏览器。 解决方法&#xff1a; 打开控制面板&#xff0c;选择“Internet选项”&#xff0c;选择【高级】选项卡&#xff0c;取消勾选“启用第三方浏览器扩展*”即可。

Java之前缀和算法

一.前缀和 1.前缀和介绍 前缀和,顾名思义,就是前n项相加之和,和我们高中时候学习的数列中的一个含义 例如一个等差数组n,那他的前n项和 也可知道- 2.编程中的前缀和 对于一个数组nums,也可以很容易求出它的前缀和数组 public int[] prefix(int[] nums) {int[] prefix …

01 | TDengine3.0部署

1 TDengine简介 TDengine 是一款开源、高性能、云原生的时序数据库&#xff0c;且针对物联网、车联网、工业互联网、金融、IT 运维等场景进行了优化。TDengine 的代码&#xff0c;包括集群功能&#xff0c;都在 GNU AGPL v3.0 下开源。除核心的时序数据库功能外&#xff0c;TD…

因子的有效性检验(IC)

使用神经网络的预测值作为因子载荷&#xff08;因子暴露&#xff0c;因子值 factor&#xff09;时&#xff0c; 我们需要知道这个因子是否是有效的&#xff0c;所以要做因子的有效性检验。 当前的学术论文给出的IC&#xff0c; rankIC 这些都是属于判断因子是否有效的metric 因…

Linux系统安装Nginx常见报错问题

安装Nginx从nginx官网下载所需版本的nginx&#xff0c;http://nginx.org/下载之后&#xff0c;将安装包上传到linux系统指定路径解压文件&#xff0c;tar -zxvf nginx-1.22.1.tar.gz &#xff08;此处用1.22.1版本为例&#xff09;进入安装包目录&#xff0c;cd nginx-1.22.1执…

面试了字节、美团、腾讯等30几家公司后,才知道软件测试面试全是这个套路......

一、Linux系统应用和环境配置&#xff1a; 1、Linux系统的操作命令给我说10个&#xff0c;一般用什么工具远程连接Linux服务器&#xff1f; 2、Linux中的日志存储在哪里&#xff1f;怎么查看日志内容&#xff1f; 3、Linux中top和ps命令的区别&#xff1f; 4、Linux命令运行…

【极海APM32替代笔记】HAL库Flash读写操作及配置

【极海APM32替代笔记】HAL库Flash读写操作及配置 在keil里面的默认工程配置中 Flash分配地址 程序部分为0x0800 0000到0x0810 0000 总共是0x0010 0000的大小 也就是1048576Byte 1024KB 1MB 而实际上程序部分大小应该要看硬件手册来确定 可以通过配置keil工程中size的大小 来确…

改进YOLO系列 | YOLOv5/v7 更换骨干网络之 MobileNeXt

重新思考瓶颈结构以实现高效移动网络设计 倒置残差块成为了移动网络架构设计的主流。它通过引入学习倒置残差和使用线性瓶颈的两个设计规则,改变了经典的残差瓶颈。在本文中,我们重新思考了这种设计改变的必要性,并发现它可能会带来信息丢失和梯度混淆的风险。因此,我们提出…

kettle导入树形结构数据

kettle导入树形结构数据应用场景工作原理工作流程应用场景 获取数据的接口传入父节点的id&#xff0c;返回直属的子节点列表&#xff0c;通过广度优先遍历一棵树。 工作原理 使用数据库存放数据&#xff0c;利用作业进行循环遍历数据。 数据库存放节点数据&#xff0c;节点数…