高可用集群keepalived的应用以及部署

1.高可用集群

1.1.集群类型

  • LB:Load Balance 负载均衡

    LVS/haproxy/nginx(http/upstream,stream/upstream)

  • HA : High Point of Failure 高可用集群

    数据库、Redis

  • SPoF:single point Of failure 解决单点故障

    HPC:High performmance computing 高性能集群

1.2.系统可用性

SLA:Service-Level Agreement 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能 等方面所达成的双方共同认可的协议或契约)

A = MTBF / (MTBF+MTTR)

99.95%:(60*24*30)*(1-0.9995)=21.6分钟 #一般按一个月停机时间统计

1.3.系统故障

硬件故障:设计缺陷、wear out(损耗)、非人为不可抗拒因素

软件故障:设计缺陷 bug

1.4.实现高可用

提升系统高用性的解决方案:降低MTTR- Mean Time To Repair(平均故障时间) 解决方案:建立冗余机制

  • active/passive 主/备

  • active/active 双主

  • active --> HEARTBEAT --> passive

  • active <--> HEARTBEAT <--> active

1.5.VRRP:Virtual Router Redundancy Protocol

虚拟路由冗余协议,解决静态网关单点风险

  • 物理层:路由器、三层交换机

  • 软件层:keepalived

1.5.1VRRP相关术语

  • 虚拟路由器:Virtual Router

  • 虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器

  • VIP:Virtual IP

  • VMAC:Virutal MAC (00-00-5e-00-01-VRID)

  • 物理路由器:

    • master:主设备

    • backup:备用设备

    • priority:优先级

1.5.2VRRP相关技术

通告:心跳,优先级等;周期性 工作方式:抢占式,非抢占式 安全认证:

  • 无认证

  • 简单字符认证:预共享密钥

  • MD5

工作模式

  • 主/备:单虚拟路由器

  • 主/主:主/备(虚拟路由器1)、备/注(虚拟路由器2),他们互为主备

2.keepalived部署

2.1keepalived简介及功能

简介

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

功能:

基于vrrp协议完成地址流动

为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

为ipvs集群的各RS做健康状态检测

基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务

2.2keepalived工作原理

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

2.3keepalived架构

用户空间核心组件:

vrrp stack:VIP消息通告

checkers:监测real server

system call:实现 vrrp 协议状态转换时调用脚本的功能

SMTP:邮件组件

IPVS wrapper:生成IPVS规则

Netlink Reflector:网络接口

WatchDog:监控进程

控制组件:提供keepalived.conf 的解析器,完成Keepalived配置

IO复用器:针对网络目的而优化的自己的线程抽象

内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

2.4keepalived相关文件

  • 软件包名:keepalived

  • 主程序文件:/usr/sbin/keepalived

  • 主配置件:/etc/keepalived/keepalived.conf

  • 配置文件示例:/usr/share/doc/keepalived/

  • UnitFile:/lib/systemd/system/keepalived.service

  • Unit File的环境配置文件:/etc/sysconfig/keepalived

2.6环境

我们基于rhel7

克隆四台rhel7的虚机,分别是

realserver1:172.252.50.110

realserver2:172.25.250.120

KA1:172.252.50.10

KA2:172.25.250.20

VIP:172.25.250.100

关闭防火墙和SElinux

复制代码
realserver1、realserver2主机都下载Apache

[root@realserver1 ~]# yum install httpd -y

[root@realserver1 ~]# systemctl enable --now httpd

[root@realserver1 ~]# echo realserver1 - 172.25.250.110 > /var/www/html/index.html

[root@realserver2 ~]# yum install httpd -y

[root@realserver2 ~]# systemctl enable --now httpd

[root@realserver2 ~]# echo realserver2 - 172.25.250.120 > /var/www/html/index.html

2.7keepalived虚拟路由管理

2.7.1 ka1主机

复制代码
###KA1和KA2主机下载keepalived

[root@ka1 ~]# yum install keepalived -y

[root@ka2 ~]# yum install keepalived -y



[root@ka1 ~]# rpm -ql | grep keepalived    //查看文件

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf     //keepalived主配置文件

root@ka1 \~\]# systemctl enable --now keepalived.service \[root@ka1 \~\]# ifconfig ![](https://i-blog.csdnimg.cn/direct/a2c128e856bf415793a5e61a2401cd2a.png) #### 2.7.2ka2主机 [root@ka1 ~]# scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/keepalived.conf //将KA1里面 /etc/keepalived/keepalived.conf 文件内容复制到KA2的/etc/keepalived/keepalived.conf ##然后我们去KA2主机打开/etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/13459ad688d049c79d6934d82afcb42c.png) [root@ka2 ~]# systemctl enable --now keepalived.service [root@ka2 ~]# ifconfig ![](https://i-blog.csdnimg.cn/direct/e13445ea31594605891538f92b326115.png) 然后我们关闭KA1主机的keepalived,再去KA2主机查看 \[root@ka1 \~\]# systemctl stop keepalived.service ![](https://i-blog.csdnimg.cn/direct/029327ddd087464da613c6a663b94a4c.png) ### 2.8 虚拟路由的通信设定 最开始ka1主机或ka2主机是ping不通VIP的 因为默认情况会把VIP访问功能禁掉 iptables -nL 如果想要实现通信 \[root@ka1 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/4ccd1ba59cad4976958a1b9e379b1baa.png) ### 2.9日志分离 \[root@ka1 \~\]# vim /etc/sysconfig/keepalived ![](https://i-blog.csdnimg.cn/direct/3b0ddf0e59e64b9e9d04a6c3c608778a.png) \[root@ka1 \~\]# vim /etc/rsyslog.conf ![](https://i-blog.csdnimg.cn/direct/3effceecb0344966a8dc3325f7efd029.png) [root@ka1 ~]# systemctl restart keepalived.service [root@ka1 ~]# systemctl restart rsyslog.service [root@ka1 ~]# ll /var/log/keepalived.log -rw-------. 1 root root 2121218 Aug 12 20:56 /var/log/keepalived.log ### 2.10独立子配置文件 当生产环境复杂时, /etc/keepalived/keepalived.conf 文件中内容过多,不易管理 将不同集群的配置,比如:不同集群的VIP配置放在独立的子配置文件中利用include 指令可以实现包含 子配置文件 \[root@ka1 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/81952d6362c14865ab9eddc654373a88.png) 然后创建目录 ![](https://i-blog.csdnimg.cn/direct/2c33701fb1a24a77ad8f7d18a7da58c3.png) ![](https://i-blog.csdnimg.cn/direct/467d9509a7324ad78713d9d85cbd36a4.png) ## 3.keepalived企业应用示例 ### 3.1抢占模式和非抢占模式 #### 3.1.1非抢占模式 nopreempt 默认为抢占模式preempt,即当高优先级的主机恢复在线后,会抢占低先级的主机的master角色, 这样会使vip在KA主机中来回漂移,造成网络抖动, 建议设置为非抢占模式 nopreempt ,即高优先级主机恢复后,并不会抢占低优先级主机的master角色 非抢占模块下,如果原主机down机, VIP迁移至的新主机, 后续也发生down时,仍会将VIP迁移回原主机 注意:要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP **ka1主机** \[root@ka1 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/e42476518d434aed9fabb6f580e23f85.png) **ka2主机** \[root@ka2 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/b97afa3f72ba4f119d09207bb2d558d2.png) 然后测试结果就是当ka1关闭keepalived时,VIP就会到ka2主机,然后ka1再次开启keepalived时,VIP不会回到ka1主机,而是继续在ka2主机 #### 3.1.2延时抢占模式 > 抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP > > preempt_delay # #指定抢占延迟时间为#s,默认延迟300s > > 注意:需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict ka1主机配置 vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 20 priority 100 #优先级高 preempt_delay 10s #抢占延迟10s advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.100/24 dev eth0 label eth0:1 } } #KA2主机配置 vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 20 priority 80 #优先级低 advert_int 1 preempt_delay 10s #抢占延迟10S authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.100/24 dev eth0 label eth0:1 } } 然后我们做完延时抢占模式实验后建议把延时注释掉,不然会影响后面实验 ### 3.2VIP单播配置 默认keepalived主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量 注意:启用 vrrp_strict 时,不能启用单播 > #在所有节点vrrp_instance语句块中设置对方主机的IP,建议设置为专用于对应心跳线网络的地址,而非使 用业务网络 > > unicast_src_ip \ #指定发送单播的源IP > > unicast_peer { > > \#指定接收单播的对方目标主机IP > > ...... > > } > > #启用 vrrp_strict 时,不能启用单播,否则服务无法启动,并在messages文件中记录下面信息 **ka1主机** \[root@ka1 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/ae848b27c40f4b8faed2cce23996e9a6.png) ![](https://i-blog.csdnimg.cn/direct/e4ded3a358834119a98d0b15f44de586.png) **ka2主机** \[root@ka2 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/a81a1f447b124e7e99cdf5ef98464257.png) 然后我们关掉ka1主机的keepalived \[root@ka1 \~\]# systemctl stop keepalived.service ![](https://i-blog.csdnimg.cn/direct/45ecc811fa03423d997903db10875d1a.png) ### 3.3通知脚本配置 ka1和ka2主机都下载mailx yum install mailx -y qq邮箱通知 ![](https://i-blog.csdnimg.cn/direct/aad2dff4a2d84fb0a3315de664936a87.png) \[root@ka2 \~\]# vim /etc/mail.rc ![](https://i-blog.csdnimg.cn/direct/2386e6a5a8d84f269cea63841a1f5ca2.png) ![](https://i-blog.csdnimg.cn/direct/3dc71b1428034f68840d568f00066d6d.png) **写脚本** [root@ka1 ~]# vim /etc/keepalived/mail.sh #!/bin/bash mail_dst="[email protected]" //你自己的qq邮箱 send_message() { mail_sub="$HOSTNAME to be $1 vip move" mail_msg="`date +%F\ %T`: vrrp move $HOSTNAME chage $1 " echo $mail_msg | mail -s "$mail_sub" $mail_dst } case $1 in master) send_message master ;; backup) send_message backup ;; fault) send_message fault ;; *) ;; esac [root@ka1 ~]# chmod +x /etc/keepalived/mail.sh //给脚本执行权限 \[root@ka1 \~\]# vim /etc/keepalived/keepalived.conf ![](https://i-blog.csdnimg.cn/direct/63e838d1e3c94babb9adfa82b43d2a26.png) 然后 /etc/keepalived/mail.sh fualt //你就会收到邮件 \[root@ka1 \~\]# systemctl stop keepalived.service \[root@ka1 \~\]# systemctl restart keepalived.service 你也会收到对应的邮件 ka2主机上一样的操作 ### 3.4双主机 **ka1主机** [root@ka1 ~]# vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 100 priority 100 advert_int 1 #preempt_delay 5s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.100/24 dev eth0 label eth0:1 } unicast_src_ip 172.25.250.10 unicast_peer { 172.25.250.20 } } vrrp_instance VI_2 { state BACKUP interface eth0 virtual_router_id 200 priority 80 advert_int 1 #preempt_delay 5s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.200/24 dev eth0 label eth0:2 } unicast_src_ip 172.25.250.10 unicast_peer { 172.25.250.20 } } ![](https://i-blog.csdnimg.cn/direct/6feaa04b23e541f79944e466c950adce.png) **ka2主机** [root@ka2 ~]# vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 100 priority 80 advert_int 1 # preempt_delay 5s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.100/24 dev eth0 label eth0:1 } unicast_src_ip 172.25.250.20 unicast_peer { 172.25.250.10 } } vrrp_instance VI_2 { state MASTER interface eth0 virtual_router_id 200 priority 100 advert_int 1 # preempt_delay 5s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.200/24 dev eth0 label eth0:2 } unicast_src_ip 172.25.250.20 unicast_peer { 172.25.250.10 } } ![](https://i-blog.csdnimg.cn/direct/19d15a3f635a4735bc49d5a5f408fefc.png) **测试** ![](https://i-blog.csdnimg.cn/direct/270ba0a861f9442b904ac071b366dc02.png) ![](https://i-blog.csdnimg.cn/direct/75f2c64f0a10449990d2c27c090f91ac.png) ![](https://i-blog.csdnimg.cn/direct/02efd559a9cc4503a79c256aa8a57cb6.png) ### 3.5实现ipvs的高可用性 #### 3.5.1实现单主机lvs-DR模式 **准备web服务器并使用脚本绑定VIP至web服务器lo网卡** ##rs1主机和rs2主机 [root@realserver1 ~]# yum install httpd -y [root@realserver2 ~]# yum install httpd -y [root@realserver1 ~]# echo realserver1 - 172.25.250.110 > /var/www/html/index.html [root@realserver2 ~]# echo realserver2 - 172.25.250.120 > /var/www/html/index.html #rs1主机 [root@realserver1 ~]# ip a a 172.25.250.100/32 dev lo [root@realserver1 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@realserver1 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@realserver1 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce [root@realserver1 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce #rs2主机 [root@realserver2 ~]# ip a a 172.25.250.100/32 dev lo [root@realserver2 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@realserver2 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@realserver2 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce [root@realserver2 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce **配置keepalived** #ka1主机 [root@ka1 ~]# vim /etc/keepalived/keepalived.conf virtual_server 172.25.250.100 80 { delay_loop 6 lb_algo wrr lb_kind DR protocol TCP real_server 172.25.250.110 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 2 delay_before_retry 2 } } real_server 172.25.250.120 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 2 delay_before_retry 2 } } } #ka2主机 [root@ka2 ~]# vim /etc/keepalived/keepalived.conf virtual_server 172.25.250.100 80 { delay_loop 6 lb_algo wrr lb_kind DR protocol TCP real_server 172.25.250.110 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 2 delay_before_retry 2 } } real_server 172.25.250.120 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 2 delay_before_retry 2 } } } #测试结果 [root@ka1 ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.25.250.100:80 wrr -> 172.25.250.110:80 Route 1 0 0 -> 172.25.250.120:80 Route 1 0 0 TCP 10.10.10.2:1358 rr persistent 50 -> 192.168.200.200:1358 Masq 1 0 0 TCP 10.10.10.3:1358 rr persistent 50 ![](https://i-blog.csdnimg.cn/direct/e6797cf369194334b0f9e284ffebc7c9.png) ![](https://i-blog.csdnimg.cn/direct/389bd31048d34da685ee998c6c023351.png) ![](https://i-blog.csdnimg.cn/direct/95c01ada1181439588b88055b779e38c.png) **模拟rs1故障** **\[root@realserver1 \~\]# systemctl stop httpd** ![](https://i-blog.csdnimg.cn/direct/f43b10a3720e42648c3093b24f011fc7.png) ### 3.6实现其它应用的高可用性 VRRP script keepalived利用 VRRP Script 技术,可以调用外部的辅助脚本进行资源监控,并根据监控的结果实现优先 动态调整,从而实现其它应用的高可用性功能 #### 3.6.1VRRP script配置 分两步实现 vrrp_script:自定义资源监控脚本,vrrp实例根据脚本返回值,公共定义,可被多个实例调用,定 义在vrrp实例之外的独立配置块,一般放在global_defs设置块之后。 通常此脚本用于监控指定应用的状态。一旦发现应用的状态异常,则触发对MASTER节点的权重减至 低于SLAVE节点,从而实现 VIP 切换到 SLAVE 节点 #### 3.6.2利用脚本实现主从角色切换 [root@ka1 ~]# cat /mnt/check_file.sh //脚本随便写在那个路径,唯一要注意的就是在配置文件里面的路径要与这里一致 #!/bin/bash [ ! -f "/mnt/file" ] [root@ka1 ~]# chmod +x /mnt/check_file.sh //给脚本执行权限 ################### [root@ka1 ~]# sh /etc/keepalived/test.sh [root@ka1 ~]# echo $? 0 //如果没有/mnt/file这个文件,那么返回0,不会做任何改变 [root@ka1 ~]# touch /mnt/file [root@ka1 ~]# sh /etc/keepalived/test.sh [root@ka1 ~]# echo $? 1 //如果有/mnt/file这个文件,返回为1,那么就会触发降低权重 ##################### [root@ka1 ~]# vim /etc/keepalived/keepalived.conf vrrp_script check_file { script "/mnt/check_lee.sh" #此脚本返回值为非0时,会触发下面OPTIONS执行 interval 1 weight -30 fall 2 rise 2 timeout 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 100 priority 100 advert_int 1 #preempt_delay 5s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.100/24 dev eth0 label eth0:1 } teack_script { check_file } unicast_src_ip 172.25.250.10 unicast_peer { 172.25.250.20 } } ![](https://i-blog.csdnimg.cn/direct/a980d4c7a82a4710a32dde4c91062a27.png) ![](https://i-blog.csdnimg.cn/direct/c4e2e92d7d2d4fb6b9d8d07ef0b4db94.png) ![](https://i-blog.csdnimg.cn/direct/0b0cdc825f5448b4b821394223be1958.png) ![](https://i-blog.csdnimg.cn/direct/012d88158e71475db20056877e8d614e.png) ![](https://i-blog.csdnimg.cn/direct/287be42f26b2460a9b4ca74ec6161e65.png) #### 3.7.3实现haproxy与keepalived的高可用 #在ka1和ka2主机安装haproxy [root@ka1 ~]# yum install haproxy -y [root@ka2 ~]# yum install haproxy -y #在ka1和ka2主机实现haproxy的配置 #ka1主机 [root@ka1 ~]# vim /etc/haproxy/haproxy.cfg listen webserver bind 172.25.250.100:80 server web1 172.25.250.110:80 check server web2 172.25.250.120:80 check #ka2主机 [root@ka2 ~]# vim /etc/haproxy/haproxy.cfg listen webserver bind 172.25.250.100:80 server web1 172.25.250.110:80 check server web2 172.25.250.120:80 check #在两个ka1和ka2先实现haproxy的配置 backend webcluster bind 172.25.250.100:80 mode http balance roundrobin server realserver1 172.25.250.110:80 check inter 3 fall 2 rise 5 server realserver2 172.25.250.120:80 check inter 3 fall 2 rise 5 ![](https://i-blog.csdnimg.cn/direct/6196e1178d1b4343a5e7a0d614ac7662.png) #在两个ka1和ka2两个节点启用内核参数 [root@ka1 ~]# cat /etc/sysctl.conf # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. # # Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override # only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there. # # For more information, see sysctl.conf(5) and sysctl.d(5). net.ipv4.ip_nonlocal_bind = 1 //这条参数 #在ka1中编写检测脚本 [root@ka1 ~]# vim /etc/keepalived/scripts/haproxy.sh #!/bin/bash /usr/bin/killall -0 haproxy [root@ka1 ~]# chmod +X /etc/keepalived/scripts/haproxy.sh #在ka1中配置keepalived [root@ka1 ~]# vim /etc/keepalived/keepalived.conf vrrp_script check_haproxy { script "/etc/keepalived/scripts/haproxy.sh" interval 1 weight -30 fall 2 rise 2 timeout 2 } vrrp_instance web { state MASTER interface eth0 virtual_router_id 100 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.250.100 dev eth0 label eth0:1 } track_script { check_haproxy } } 测试 我们把ka1主机的haproxy关掉,可以看到VIP飘到ka2主机上 ![](https://i-blog.csdnimg.cn/direct/d9e246beaa654ef4b00e7f2df81b5f02.png) 然后客户机一直访问172.25.250.100 ,会发现访问不会断 ![](https://i-blog.csdnimg.cn/direct/979e23a58d904daf9087e7aa0d17c960.png) 这就是haproxy和keepalived联用实现高可用,利用keepalived检测haproxy是否存活,如果存活则不会有任何操作,如果不存活则会把VIP飘到另外一台haproxy存活的主机上,然后客户端主机访问不受影响

相关推荐
DBWYX11 分钟前
gcc 链接顺序,静态库循环依赖问题
linux·运维·服务器
zxsz_com_cn28 分钟前
风电行业预测性维护解决方案:AIoT驱动下的风机健康管理革命
大数据·运维·人工智能
我们的五年30 分钟前
【Linux系统】进程间通信-System V消息队列
linux·运维·服务器·c++
island131439 分钟前
【Linux网络#18】:深入理解select多路转接:传统I/O复用的基石
linux·运维·数据库
GodGump3 小时前
dbgpt7.0 docker部署
运维·docker·容器
Wnq100727 小时前
智能巡检机器人在化工企业的应用研究
运维·计算机视觉·机器人·智能硬件·deepseek
tf的测试笔记9 小时前
测试团队UI自动化实施方案
运维·自动化
TDD_062810 小时前
【运维】Centos硬盘满导致开机时处于加载状态无法开机解决办法
linux·运维·经验分享·centos
x66ccff10 小时前
vLLM 启动 GGUF 模型踩坑记:从报错到 100% GPU 占用的原因解析
linux
头孢头孢10 小时前
k8s常用总结
运维·后端·k8s