keepalived使用说明
作者:HelloDog
原文地址:LVS+Keepalived 使用指北, 感谢原作者分享。由于原文地址已经不可访问,所以在此进行备份。
LVS+Keepalived 使用指南
HelloDog 2018-08-07 65 阅读
keepalived LVS
前言
负载均衡技术是构建大型网站必不可少的架构策略之一。它的目的是把用户的请求分发到多台后端的设备上,用以均衡服务器的负载。我们可以把负载均衡器划分为两大类:硬件负载均衡器和软件负载均衡器。这里重点介绍软件实现方法中的LVS+Keepalived。
学习使用 LVS+Keepalived
关键词:
- LB (Load Balancer 负载均衡)
- HA (High Available 高可用)
- FailOver (失败切换)
- CLUSTER (集群)
- LVS (Linux Virtual Server Linux 虚拟服务器)
- RealServer 后端真实服务器,这个概念相对于LVS Director,指lvs集群中真正执行客户端请求的服务器。
- Director 前端调度器,指安装lvs(ipvsadm)的服务器,负责调度 realserver 提供负载均衡。
- VIP (Virtual_IP_address) 虚拟的IP地址
- DIP (Director IP) 前段调度器的IP地址
- RIP (RealServer IP) 后端正式服务器的IP地址
负载均衡(LB Cluster)
负载均衡实现方法有两种:硬件实现和软件实现
硬件比较常见的有:
- F5 Big-IP
- Citrix Netscaler
软件比较常见的有:
- LVS(Linux Virtual Server)
- HAProxy
- Nginx
LVS特点是:
- 首先它是基于4层的网络协议的,抗负载能力强,对于服务器的硬件要求除了网卡外,其他没有太多要求;
- 配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,大大减少了人为出错的几率;
- 应用范围比较广,不仅仅对web服务做负载均衡,还可以对其他应用(mysql)做负载均衡;
- LVS架构中存在一个虚拟IP的概念,需要向IDC多申请一个IP来做虚拟IP。
Nginx负载均衡器的特点是:
- 工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;
- Nginx安装和配置比较简单,测试起来比较方便;
- 也可以承担高的负载压力且稳定,一般能支撑超过上万次的并发;
- Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;
- Nginx对请求的异步处理可以帮助节点服务器减轻负载;
- Nginx能支持http和Email,这样就在适用范围上面小很多;
- 默认有三种调度算法: 轮询、weight以及ip_hash(可以解决会话保持的问题),还可以支持第三方的fair和url_hash等调度算法;
HAProxy的特点是:
- HAProxy是工作在网络7层之上;
- 支持Session的保持,Cookie的引导等;
- 支持url检测后端的服务器出问题的检测会有很好的帮助;
- 支持的负载均衡算法:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash);
- 单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度;
- HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
LVS+keepalived 简介
在lvs+keepalived环境里面,lvs主要的工作是提供调度算法,把客户端请求按照需求调度在real服务器,keepalived主要的工作是提供lvs控制器的一个冗余,并且对real服务器做健康检查,发现不健康的real服务器,就把它从lvs集群中剔除,real服务器只负责提供服务。
LVS
LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。
目前有三种IP负载均衡技术(VS/NAT,VS/TUN,VS/DR)
Virtual Server via Network Address Translation(VS/NAT)
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
Virtual Server via IP Tunneling(VS/TUN)
采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报 文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。
Virtual Server via Direct Routing(VS/DR)
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。
八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)
工作模式
原生只有3种模式(NAT,TUN,DR), fullnat工作模式默认不支持
LVS是四层负载均衡,也就是说建立在OSI模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS支持TCP/UDP的负载均衡。因为LVS是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。
LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。 当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的Real Server节点,而Real Server节点如何返回数据给用户,是IPVS实现的重点技术,IPVS实现负载均衡机制有几种,分别是NAT、DR、TUN及FULLNAT。
lvs-nat
NAT(Network Address Translation 网络地址转换)是一种外网和内外地址映射的技术,内网可以是私有网址,外网可以使用NAT方法修改数据报头,让外网与内网能够互相通信。NAT模式下,网络数据报的进出都要经过LVS的处理。LVS需作为RS(真实服务器)的网关。当包到达LVS时,LVS做目标地址转换(DNAT),将目标IP改为RS的IP。RS接收到包以后,仿佛是客户端直接发给它的一样。RS处理完,返回响应时,源IP是RS IP,目标IP是客户端的IP。这时RS的包通过网(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端看起来就仿佛是LVS直接返回给它的。客户端无法感知到后端RS的存在。
(1)RIP和DIP必须在同一个IP网络,且应该使用私网地址;RS的网关要指向DIP;
(2)请求报文和响应报文都必须经由Director转发;Director易于成为系统瓶颈;
(3)支持端口映射,可修改请求报文的目标PORT;
(4)vs必须是Linux系统,rs可以是任意系统;
缺点:在整个过程中,所有输入输出的流量都要经过LVS 调度服务器。显然,LVS 调度服务器的网络I/O压力将会非常大,因此很容易成为瓶颈,特别是对于请求流量很小,而响应流量很大的Web类应用来说尤为如此。
优点:NAT模式的优点在于配置及管理简单,由于了使用NAT技术,LVS 调度器及应用服务器可以在不同网段中,网络架构更灵活,应用服务器只需要进行简单的网络设定即可加入集群。
lvs-dr
lvs-dr工作模式最为常用
DR(Direct Routing 直接路由模式)此模式时LVS 调度器只接收客户发来的请求并将请求转发给后端服务器,后端服务器处理请求后直接把内容直接响应给客户,而不用再次经过LVS调度器。LVS只需要将网络帧的MAC地址修改为某一台后端服务器RS的MAC,该包就会被转发到相应的RS处理,注意此时的源IP和目标IP都没变。RS收到LVS转发来的包时,链路层发现MAC是自己的,到上面的网络层,发现IP也是自己的,于是这个包被合法地接受,RS感知不到前面有LVS的存在。而当RS返回响应时,只要直接向源IP(即用户的IP)返回即可,不再经过LVS。
注意:
(1) 确保前端路由器将目标IP为VIP的请求报文发往Director:
(a) 在前端网关做静态绑定;
(b) 在RS上使用arptables;
(c) 在RS上修改内核参数以限制arp通告及应答级别;
arp_announce
arp_ignore
(2) RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;
(3) RS跟Director要在同一个物理网络;
(4) 请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client;
(5) 此模式不支持端口映射;
缺点:唯一的缺陷在于它要求LVS 调度器及所有应用服务器在同一个网段中,因此不能实现集群的跨网段应用。
优点:可见在处理过程中LVS Route只处理请求的直接路由转发,所有响应结果由各个应用服务器自行处理,并对用户进行回复,网络流量将集中在LVS调度器之上。
lvs-tun
TUN(virtual server via ip tunneling IP 隧道)调度器把请求的报文通过IP隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文。此转发方式不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP),由于一般网络服务应答数据比请求报文大很多,采用lvs-tun模式后,集群系统的最大吞吐量可以提高10倍
注意:
(1) DIP, VIP, RIP都应该是公网地址;
(2) RS的网关不能,也不可能指向DIP;
(3) 请求报文要经由Director,但响应不能经由Director;
(4) 此模式不支持端口映射;
(5) RS的操作系统得支持隧道功能
缺点:由于后端服务器RS处理数据后响应发送给用户,此时需要租借大量IP(特别是后端服务器使用较多的情况下)。
优点:实现lvs-tun模式时,LVS 调度器将TCP/IP请求进行重新封装并转发给后端服务器,由目标应用服务器直接回复用户。应用服务器之间是通过IP 隧道来进行转发,故两者可以存在于不同的网段中。
lvs-fullnat
lvs-fullnat工作模式默认不支持
此模式类似DNAT,它通过同时修改请求报文的源IP地址和目标IP地址进行转发
注意:
(1) VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP;
(2) RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client;
(3) 请求和响应报文都经由Director;
(4) 支持端口映射;
调度算法
针对不同的网络服务需求和服务器配置,IPVS调度器实现了如下八种负载调度算法:
轮叫(Round Robin)
调度器通过”轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
加权轮叫(Weighted Round Robin)
调度器通过”加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
最少链接(Least Connections)
调度器通过”最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用”最小连接”调度算法可以较好地均衡负载。
加权最少链接(Weighted Least Connections)
在集群系统中的服务器性能差异较大的情况下,调度器采用”加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
基于局部性的最少链接(Locality-Based Least Connections)
“基于局部性的最少链接” 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器 是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用”最少链接”的原则选出一个可用的服务 器,将请求发送到该服务器。
带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
“带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个 目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务 器组,按”最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按”最小连接”原则从这个集群中选出一 台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的 程度。
目标地址散列(Destination Hashing)
“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
源地址散列(Source Hashing)
“源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
keepalived
Keepalived 是运行在lvs之上,是一个用于做双机热备(HA)的软件,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换,提高系统的可用性。
运行原理
keepalived通过选举(看服务器设置的权重)挑选出一台热备服务器做MASTER机器,MASTER机器会被分配到一个指定的虚拟ip,外部程序可通过该ip访问这台服务器,如果这台服务器出现故障(断网,重启,或者本机器上的keepalived crash等),keepalived会从其他的备份机器上重选(还是看服务器设置的权重)一台机器做MASTER并分配同样的虚拟IP,充当前一台MASTER的角色。
选举策略
选举策略是根据VRRP协议,完全按照权重大小,权重最大(0~255)的是MASTER机器,下面几种情况会触发选举
- keepalived启动的时候
- master服务器出现故障(断网,重启,或者本机器上的keepalived crash等,而本机器上其他应用程序crash不算)
- 有新的备份服务器加入且权重最大
LVS(NAT和DR)模式详细配置
环境准备
分别准备两台web服务器,两台服务器配置相同
[root@web1 ~]# yum install httpd* -y [root@web1 ~]# iptables -F [root@web1 ~]# /etc/init.d/iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@web1 ~]# /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] [root@web1 ~]# chkconfig iptables off [root@web1 ~]# sed -i "s/SELINUX=enforcing/SELINUX disabled/g" /etc/selinux/config [root@web1 ~]# setenforce 0 [root@web1 ~]# /etc/init.d/httpd start [root@web1 ~]# ps -ef | grep httpd root 1482 1 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1484 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1485 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1486 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1487 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1488 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1489 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1490 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd apache 1491 1482 0 18:24 ? 00:00:00 /usr/sbin/httpd root 1494 1331 0 18:24 pts/0 00:00:00 grep httpd [root@web1 ~]# netstat --lntup | grep 80 [root@web1 ~]# netstat -lntup | grep 80 tcp 0 0 :::80 :::* LISTEN 1482/httpd [root@web1 ~]# echo "webserver1" > /var/www/html/index.html# LVS在3种方式下均需要打开ip_forward 功能 echo "1" > /proc/sys/net/ipv4/ip_forward vim /etc/sysctl.conf net.ipv4.ip_forward = 1# 设置snat,如需永久保存可以编辑/etc/sysconfig/iptables /sbin/iptables -t nat -A POSTROUTING -j MASQUERADvim /etc/sysconfig/iptables*nat :PREROUTING ACCEPT [6:504] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [1:52] :POSTROUTING ACCEPT [1:52] # SNAT -A POSTROUTING -j MASQUERADE COMMIT*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # 配置外网白名单 -A INPUT -s 180.168.36.198 -j ACCEPT -A INPUT -s 180.168.34.218 -j ACCEPT -A INPUT -s 222.73.202.251 -j ACCEPT # 控制端口 -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 22 -j ACCEPT # For keepalived # allow vrrp -A INPUT -p vrrp -j ACCEPT -A INPUT -p igmp -j ACCEPT # allow multicast -A INPUT -d 224.0.0.18 -j ACCEPT # 配置内网白名单 -A INPUT -s 10.0.0.0/8 -j ACCEPT -A INPUT -s 172.16.0.0/12 -j ACCEPT -A INPUT -s 192.168.0.0/16 -j ACCEPT # 开放本地和Ping -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT # 拒绝其它 -A INPUT -j DROP -A FORWARD -j DROP # 开放出口 -A OUTPUT -j ACCEPT COMMIT# 重启生效 service iptables restart # 复查结果 iptables -nvL
LVS-NAT模式
image
VS/NAT 是最简单的方式,所有的 RealServer只需要将自己的网关指向 lvs(负载均衡器)即可,客户端可以是任意操作系统。VS/NAT 将报文的目标IP地址与目标端口改写成选定服务器(realserver)的地址,最后将修改后的报文发送给选定的服务器(realserver)
# 安装ipvsadm[root@LVS ~]# yum install ipvsadm* -y [root@LVS ~]# lsmod | grep lv_ [root@LVS ~]# lsmod | grep ip_vs ip_vs_rr 1420 0 ip_vs 126897 2 ip_vs_rr libcrc32c 1246 1 ip_vs ipv6 336282 270 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6# 配置脚本如下#!/bin/bashVIP=192.168.10.10 #外网用户直接访问网站的IP地址 RIP1=192.168.84.104 #后端web1服务器的IP地址 RIP2=192.168.84.105 #后端web2服务器的IP地址case "$1" in start)echo "Start LVS as the mode NAT"echo "1" > /proc/sys/net/ipv4/ip_forward #开启LVS服务器的IP路由转发功能/sbin/ifconfig eth0:0 $VIP netmask 255.255.255.0 up #设定VIP地址/sbin/ipvsadm -A -t $VIP:80 -s rr/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -m/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -m/sbin/ipvsadm ;; stop)echo "Stop LVS"echo "0" > /proc/sys/net/ipv4/ip_forward/sbin/ifconfig eth0:0 down;; *) echo "Usage:$0 {start|stop}"exit 1 esac# 运行脚本后结果如下[root@LVS ~]# sh lvs_nat.sh start Start LVS as the mode NAT IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.10.10:http rr-> 192.168.84.104:http Masq 1 0 0 -> 192.168.84.105:http Masq 1 0 0 # web服务器需要删除默认的路由网关,重新设置路由网关为LVS主机IP地址[root@web1 ~]# route del default [root@web1 ~]# route add default gateway 192.168.84.103 [root@web1 ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.84.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth0 default 192.168.84.103 0.0.0.0 UG 0 0 0 eth0# 通过curl命令查看是否成功[root@LVS ~]# curl 192.168.10.10 webserver2 [root@LVS ~]# curl 192.168.10.10 webserver1 [root@LVS ~]# curl 192.168.10.10 webserver2 [root@LVS ~]# curl 192.168.10.10 webserver1 [root@LVS ~]# curl 192.168.10.10 webserver2 [root@LVS ~]# curl 192.168.10.10 webserver1
LVS-DR模式
image
在 web服务中, 请求的流量一般小于回应的流量,VS/DR 方式利用这种非对称的特点,Director只负责调度请求, 而RealServer直接将相应的报文返回给客户机。VS/DR 方式是通过改写请求报文中的 “MAC” 地址部分来实现的, Director 和 RealServer 必需在同一个广播域/vlan的局域网。
RealServer 上绑定的VIP配置在各自 Non-ARP 网络设备上(如 lo 或 tunl),Director的VIP地址对外可见, RealServer的VIP对外是不可见的。
# LVS-DR RealServer服务器脚本,由于VS/DR工作原理,Realserver 需要抑制arp广播 #!/bin/bash VIP=192.168.84.200 /etc/rc.d/init.d/functions case "$1" in start) echo "start LVS of RealServer DR" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce ;; stop) /sbin/ifconfig lo:0 down echo "close LVS of RealServer DR" echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0 # Lvs-DR 启动脚本#!/bin/bash VIP=192.168.84.200 RIP1=192.168.84.104 RIP2=192.168.84.105 /etc/rc.d/init.d/functions case "$1" in start) echo "start LVS of DirectorServer DR" /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev eth0:0 echo "1" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g /sbin/ipvsadm ;; stop) echo "stop LVS of DirectorServer DR" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
ipvsadm
# 每台realserver index.html文件内容为ip 地址,例如: echo "172.27.233.43" > /var/www/html/index.html echo "172.27.233.44" > /var/www/html/index.html# 启动http服务 /etc/init.d/httpd start# 客户端模拟请求 for((i=1;i<=10;i++));do curl http://172.27.233.45/; done 172.27.233.44 172.27.233.43 172.27.233.44 172.27.233.43 172.27.233.44 172.27.233.43 172.27.233.44 172.27.233.43 172.27.233.44 172.27.233.43 # 请求分配结果 ipvsadm -Ln --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP 172.27.233.45:80 10 50 0 4330 0 -> 172.27.233.43:80 5 25 0 2165 0 -> 172.27.233.44:80 5 25 0 2165 0 参数含义 --stats 显示统计信息 Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes 连接数 输入包 输出包 输入流量 输出流量
keepalived的配置文件说明
Keepalived 是运行在lvs之上,它的主要功能是实现RealServer(真实服务器)的故障隔离及Director(负载均衡器)间的FailOver(失败切换).
- keepalived 是lvs的扩展项目,因此它们之间具备良好的兼容性
- 对RealServer的健康检查,实现对失效机器/服务的故障隔离
- 负载均衡器之间的失败切换 failover
全局定义
全局配置又包括两个子配置
- 全局定义(global definition)
- 静态路由配置(static ipaddress/routes)
# 全局定义(global definition) global_defs { notification_email { acassen@firewall.loc failover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } notification_email: 表示keepalived在发生诸如切换操作时需要发送email通知以及email发送给哪些邮件地址邮件地址可以多个每行一个 notification_email_from admin@example.com: 表示发送通知邮件时邮件源地址是谁 smtp_server 127.0.0.1: 表示发送email时使用的smtp服务器地址这里可以用本地的sendmail来实现 smtp_connect_timeout 30: 连接smtp连接超时时间 router_id node1: 机器标识,通常配置主机名# 静态地址和路由配置范例 static_ipaddress {192.168.1.1/24 brd + dev eth0 scope global192.168.1.2/24 brd + dev eth1 scope global } static_routes {src $SRC_IP to $DST_IP dev $SRC_DEVICEsrc $SRC_IP to $DST_IP via $GW dev $SRC_DEVICE } 这里实际上和系统里面命令配置IP地址和路由一样例如 192.168.1.1/24 brd + dev eth0 scope global 相当于: ip addr add 192.168.1.1/24 brd + dev eth0 scope global 就是给eth0配置IP地址路由同理,一般这个区域不需要配置 这里实际上就是给服务器配置真实的IP地址和路由的在复杂的环境下可能需要配置一般不会用这个来配置我们可以直接用vi /etc/sysconfig/network-script/ifcfg-eth1来配置切记这里可不是VIP不要搞混淆了切记切记
VRRPD配置
包括三个类:
- VRRP同步组(synchroization group)
- VRRP实例(VRRP Instance)
- VRRP脚本
# VRRP同步组(synchroization group)配置范例 vrrp_sync_group VG_1 { //注意vrrp_sync_group 后面可自定义名称如lvs_httpd ,httpd group { http mysql } notify_master /path/to/to_master.sh notify_backup /path_to/to_backup.sh notify_fault "/path/fault.sh VG_1" notify /path/to/notify.sh smtp_alert } 其中http和mysql是实例名和下面的实例名一致 notify_master /path/to/to_master.sh //表示当切换到master状态时要执行的脚本 notify_backup /path_to/to_backup.sh //表示当切换到backup状态时要执行的脚本 notify_fault "/path/fault.sh VG_1" // keepalived出现故障时执行的脚本 notify /path/to/notify.sh smtp_alert //表示切换时给global defs中定义的邮件地址发送邮件通知# VRRP实例(instance)配置范例 vrrp_instance http { //注意vrrp_instance 后面可自定义名称如lvs_httpd ,httpd state MASTER interface eth0 dont_track_primary track_interface { eth0 eth1 } mcast_src_ip <IPADDR> garp_master_delay 10 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS autp_pass 1234 } virtual_ipaddress { #<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPT> label <LABEL> 192.168.200.17/24 dev eth1 192.168.200.18/24 dev eth2 label eth2:1 } virtual_routes { # src <IPADDR> [to] <IPADDR>/<MASK> via|gw <IPADDR> dev <STRING> scope <SCOPE> tab src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1 192.168.110.0/24 via 192.168.200.254 dev eth1 192.168.111.0/24 dev eth2 192.168.112.0/24 via 192.168.100.254 } nopreempt preemtp_delay 300 debug }
state: state指定instance(Initial)的初始状态就是说在配置好后这台 服务器的初始状态就是这里指定的但这里指定的不算还是得要通过竞选通过优先级来确定里如果这里设置为master但如若他的优先级不及另外一台 那么这台在发送通告时会发送自己的优先级另外一台发现优先级不如自己的高那么他会就回抢占为master
interface: 实例绑定的网卡因为在配置虚拟VIP的时候必须是在已有的网卡上添加的
dont track primary: 忽略VRRP的interface错误
track interface: 跟踪接口设置额外的监控里面任意一块网卡出现问题都会进入故障(FAULT)状态例如用nginx做均衡器的时候内网必须正常工作如果内网出问题了这个均衡器也就无法运作了所以必须对内外网同时做健康检查
mcast src ip: 发送多播数据包时的源IP地址这里注意了这里实际上就是在那个地址上发送VRRP通告这个非常重要一定要选择稳定的网卡端口来发送这里相当于heartbeat的心跳端口如果没有设置那么就用默认的绑定的网卡的IP也就是interface指定的IP地址
garp master delay: 在切换到master状态后延迟进行免费的ARP(gratuitous ARP)请求,默认5s
virtual router id: 这里设置VRID这里非常重要相同的VRID为一个组他将决定多播的MAC地址
priority 100: 设置本节点的优先级优先级高的为master
advert int: 设置MASTER与BACKUP负载均衡之间同步即主备间通告时间检查的时间间隔,单位为秒,默认1s
virtual ipaddress: 这里设置的就是VIP也就是虚拟IP地址他随着state的变化而增加删除当state为master的时候就添加当state为backup的时候删除这里主要是有优先级来决定的和state设置的值没有多大关系这里可以设置多个IP地址
virtual routes: 原理和virtual ipaddress一样只不过这里是增加和删除路由
lvs sync daemon interface: lvs syncd绑定的网卡,类似HA中的心跳检测绑定的网卡
authentication: 这里设置认证
auth type: 认证方式可以是PASS或AH两种认证方式
auth pass: 认证密码
nopreempt: 设置不抢占master,这里只能设置在state为backup的节点上而且这个节点的优先级必须别另外的高,比如master因为异常将调度圈交给了备份serve,master serve检修后没问题,如果不设置nopreempt就会将调度权重新夺回来,这样就容易造成业务中断问题
preempt delay: 抢占延迟多少秒,即延迟多少秒后竞选master
debug:debug级别
notify master:和sync group这里设置的含义一样可以单独设置例如不同的实例通知不同的管理人员http实例发给网站管理员mysql的就发邮件给DBA
# VRRP脚本 # 如下所示为相关配置示例 vrrp_script check_running {script "/usr/local/bin/check_running"interval 10weight 10 }vrrp_instance http {state BACKUPsmtp_alertinterface eth0virtual_router_id 101priority 90advert_int 3authentication {auth_type PASSauth_pass whatever}virtual_ipaddress {1.1.1.1}track_script {check_running } } # 首先在vrrp_script区域定义脚本名字和脚本执行的间隔和脚本执行的优先级变更,如下所示: vrrp_script check_running {script "/usr/local/bin/check_running"interval 10 #脚本执行间隔weight 10 #脚本结果导致的优先级变更10表示优先级+10-10则表示优先级-10} # 然后在实例(vrrp_instance)里面引用有点类似脚本里面的函数引用一样先定义后引用函数名 track_script {check_running }
注意:
VRRP脚本(vrrp_script)和VRRP实例(vrrp_instance)属于同一个级别
keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级。一般脚本检测返回的值为0,说明脚本检测成功,如果为非0数值,则说明检测失败
如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加, 如果weight为非0,则优先级不变
如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少, 如果weight为0,则优先级不变
其他情况,维持原本配置的优先级,即配置文件中priority对应的值。
这里需要注意的是:
1) 优先级不会不断的提高或者降低
2) 可以编写多个检测脚本并为每个检测脚本设置不同的weight
3) 不管提高优先级还是降低优先级,最终优先级的范围是在[1,254],不会出现优先级小于等于0或者优先级大于等于255的情况
这样可以做到利用脚本检测业务进程的状态,并动态调整优先级从而实现主备切换。
virtual_server 虚拟主机配置
关于keeplived的虚拟主机配置有三种如下所示
virtual server IP port
virtual server fwmark int
virtual server group string
以常用的第一种为例
virtual_server 192.168.1.2 80
含义:设置一个virtual server: VIP:Vport
delay_loop 3
含义:设置service polling的delay时间即服务轮询的时间间隔
lb_algo rr|wrr|lc|wlc|lblc|sh|dh
含义:设置LVS调度算法
lb_kind NAT|DR|TUN
含义:设置LVS集群模式
persistence_timeout 120
含义:设置会话保持时间秒为单位即以用户在120秒内被分配到同一个后端realserver,超过此时间就重新分配
persistence_granularity
含义:设置LVS会话保持粒度ipvsadm中的-M参数默认是0xffffffff即每个客户端都做会话保持
protocol TCP
含义:设置健康检查用的是TCP还是UDP
ha_suspend
含义:suspendhealthchecker’s activity
virtualhost
含义:HTTP_GET做健康检查时检查的web服务器的虚拟主机即host头
sorry_server
含义:设置backupserver就是当所有后端realserver节点都不可用时就用这里设置的也就是临时把所有的请求都发送到这里
real_server
含义:设置后端真实节点主机的权重等设置主要后端有几台这里就要设置几个
weight 1
含义:设置给每台的权重0表示失效(不知给他转发请求知道他恢复正常)默认是1
inhibit_on_failure
含义:表示在节点失败后把他权重设置成0而不是冲IPVS中删除
notify_up |
含义:设置检查服务器正常(UP)后要执行的脚本
notify_down |
含义:设置检查服务器失败(down)后要执行的脚本
注:keepalived检查机制说明
keepalived健康检查方式有:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK几种如下所示
#HTTP/HTTPS方式 HTTP_GET|SSL_GET { #设置健康检查方式url { #设置要检查的URL可以有多个 path / #设置URL具体路径 digest <STRING> #检查后的摘要信息这些摘要信息可以通过genhash命令工具获取 status_code 200 #设置返回状态码 } connect_port 80 #设置监控检查的端口 bindto <IPADD> #设置健康检查的IP地址 connect_timeout 3 #设置连接超时时间 nb_get_retry 3 #设置重连次数 delay_before_retry 2 #设置重连间隔 } #TCP方式 TCP_CHECK { connect_port 80 #设置监控检查的端口 bindto <IPADD> #设置健康检查的IP地址 connect_timeout 3 #设置连接超时时间 nb_get_retry 3 #设置重连次数 delay_before_retry 2 #设置重连间隔 } #SMTP方式 (这个可以用来给邮件服务器做集群) SMTP_CHECK { host { connect_ip <IP ADDRESS> connect_port <PORT> #默认检查25端口 14 KEEPALIVED bindto <IP ADDRESS> } connect_timeout <INTEGER> retry <INTEGER> delay_before_retry <INTEGER> helo_name <STRING>|<QUOTED-STRING> } #MISC方式 这个可以用来检查很多服务器只需要自己会些脚本即可 MISC_CHECK { misc_path <STRING>|<QUOTED-STRING> #外部程序或脚本 misc_timeout <INT> #脚本或程序执行超时时间 misc_dynamic #这个就很好用了可以非常精确的来调整权重是后端每天服务器的压力都能均衡调配这个主要是通过执行的程序或脚本返回的状态代码来动态调整weight值使权重根据真实的后端压力来适当调整不过这需要有过硬的脚本功夫才行哦 #返回0健康检查没问题不修改权重 #返回1健康检查失败权重设置为0 #返回2-255健康检查没问题但是权重却要根据返回代码修改为返回码-2例如如果程序或脚本执行后返回的代码为200#那么权重这回被修改为 200-2 }
以上就是keepalived的配置项说明虽然配置项很多但很多时候很多配置项保持默认即可
lvs+keepalived配置实践
防火墙的配置不在本文的范围,请关闭selinux和firewall
# 关闭防火墙 systemctl disable firewalld systemctl stop firewalld# 禁用selinux setenforce 0 vi /etc/selinux/configSELINUX=disabled# 安装keepalived,ipvsadm yum install keepalived ipvsadm -y# 开启LVS服务器的IP路由转发功能 echo "1" > /proc/sys/net/ipv4/ip_forward # 添加路由转发至sysctl.conf vi /etc/sysctl.conf net.ipv4.ip_forward = 1
最简单的keepalived做HA
# 编辑keepalived配置文件 vi /etc/keepalived/keepalived.confvrrp_sync_group VI_GOP_NC1_LB1 {group {VI_VI_GOP_NC1_LB1_1VI_VI_GOP_NC1_LB1_2} }vrrp_instance VI_VI_GOP_NC1_LB1_1 {state BACKUPinterface bond0virtual_router_id 28priority 100advert_int 1nopreemptauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.65.32.28/23 dev bond0} }vrrp_instance VI_VI_GOP_NC1_LB1_2 {state BACKUPinterface bond0virtual_router_id 29priority 100advert_int 1nopreemptauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.65.32.29/23 dev bond0} }
配置LVS-DR
# Install keepalived # Ubuntu apt-get install keepalived ipvsadm # CentOS yum install keepalived ipvsadm # mod iptables vim /etc/sysconfig/iptables# LVS configuration ## For keepalived: ### allow vrrp (112) -A INPUT -p vrrp -j ACCEPT -A INPUT -p igmp -j ACCEPT ### allow multicast -A INPUT -d 224.0.0.18 -j ACCEPT# restart iptables service iptables restart# example # two vip for lvs-drvrrp_sync_group GOP {group {VI_PRI_CONNECTVI_PRI_AUTH} }vrrp_instance VI_PRI_CONNECT {state BACKUPinterface bond0virtual_router_id 128priority 100advert_int 1nopreemptauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.65.32.28/23 dev bond0} }virtual_server 10.65.32.28 80 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 10.65.32.13 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 10.65.32.14 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 10.65.32.15 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 10.65.32.16 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 10.65.32.17 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 10.65.32.18 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}} }virtual_server 10.65.32.28 443 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 10.65.32.13 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}}real_server 10.65.32.14 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}}real_server 10.65.32.15 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}}real_server 10.65.32.16 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}}real_server 10.65.32.17 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}}real_server 10.65.32.18 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}} }vrrp_instance VI_PRI_AUTH {state BACKUPinterface bond0virtual_router_id 129priority 100advert_int 1nopreemptauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.65.32.29/23 dev bond0} }virtual_server 10.65.32.29 80 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 10.65.32.22 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 110.65.32.23 80 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 80}} }virtual_server 10.65.32.29 443 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 10.65.32.22 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}}real_server 110.65.32.23 443 {weight 100TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 443}} }# enable and start keepalived systemctl start keepalived systemctl enable keepalived watch ipvsadm -L -n --stats
real server
- Edit “/etc/sysconfig/network-scripts/ifcfg-lo” to patch bug in Centos 7 (if using Centos 7). Add TYPE=Loopback to the file.
- Add loopback for each Virtual IP on each worker. E.g. first virtual IP create file “/etc/sysconfig/network-scripts/ifcfg-lo:0”.
- Start adapters if not yet started
# add TYPE=Loopback echo "TYPE=Loopback" >> /etc/sysconfig/network-scripts/ifcfg-lo # add ifcfg-lo:0 cat > /etc/sysconfig/network-scripts/ifcfg-lo:0 << EOF DEVICE=lo:0 IPADDR=10.65.32.28 NETMASK=255.255.255.255 ONBOOT=yes EOF# ifup lo:0 ifup lo:0# add real_start cat > /root/real_start.sh << EOF #!/bin/bash echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce EOF# chmod 755 chmod 755 /root/real_start.sh# add real.service cat > /usr/lib/systemd/system/real.service << EOF [Unit] Description=autostart lvs real After=network.target remote-fs.target nss-lookup.target[Service] Type=forking ExecStart=/root/real_start.sh[Install] WantedBy=multi-user.target EOF# enable service systemctl enable real.service# lvs real server example vim /root/lvs_real.sh#!/bin/bash ### BEGIN INIT INFO # Provides: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start realserver # Description: Start realserver ### END INIT INFO# change the VIP to proper value VIP=10.65.32.28case "$1" instart)echo "Start REAL Server"/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 upecho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce;;stop)/sbin/ifconfig lo:0 downecho "Stop REAL Server"echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announce;;restart)$0 stop$0 start;;*)echo "Usage: $0 {start|stop}"exit 1;; esacexit 0
常见问题
ARP导致MAC地址冲突
[root@sg-gop-10-65-32-35 wangao]# arp -n Address HWtype HWaddress Flags Mask Iface 10.65.32.31 ether 48:8e:ef:7b:c6:0a C bond0 10.65.32.83 ether 50:5d:ac:ed:89:dd C bond0 10.65.32.254 ether 00:00:0c:9f:f0:ec C bond0 10.65.32.252 ether bc:16:65:68:07:81 C bond0 10.65.32.34 ether 50:1d:93:f5:eb:97 C bond0 10.65.32.8 ether 48:8e:ef:7c:0a:8d C bond0 10.65.32.253 ether 18:e7:28:97:e5:01 C bond0 [root@sg-gop-10-65-32-35 wangao]# arp -d 10.65.32.31 [root@sg-gop-10-65-32-35 wangao]# [root@sg-gop-10-65-32-35 wangao]# [root@sg-gop-10-65-32-35 wangao]# telnet 10.65.32.31 12100 Trying 10.65.32.31... Connected to 10.65.32.31. Escape character is '^]'.[root@sg-gop-10-65-32-35 wangao]# arp -n Address HWtype HWaddress Flags Mask Iface 10.65.32.31 ether 48:8e:ef:7b:c7:5a C bond0 10.65.32.70 ether 00:2e:c7:3a:a5:b5 C bond0 10.65.32.83 ether 50:5d:ac:ed:89:dd C bond0 10.65.32.254 ether 00:00:0c:9f:f0:ec C bond0 10.65.32.252 ether bc:16:65:68:07:81 C bond0 10.65.32.34 ether 50:1d:93:f5:eb:97 C bond0 10.65.32.8 ether 48:8e:ef:7c:0a:8d C bond0 10.65.32.253 ether 18:e7:28:97:e5:01 C bond0
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Effective Use of Word Order for Text Categorization with Convolutional Neural Networks
卷积神经网络有效地利用词序进行文本分类(2015年)code:https://github.com/tensorflow/models/tree/master/research/sentiment_analysis(但是这份代码只是简单实现了parallel CNN,并没有实现seqCNN和bowCNN,聊胜于无)摘要卷积神经网络(CNN)是可以利用数据的内部结构(例如…...
2024/3/29 11:12:42 - 程序员,别再迷恋多线程工作了
我刚刚尝试了一下,一边用 iPad 看“Java 极客技术”自制的 SpringBoot 视频(1.2X 倍速),一边在 iMac 上回复博客上读者的留言。过了一会,视频上讲了什么,我完全没有印象了;而回复的内容也写得乱七八糟。很长一段时间内,我都在欺骗我自己:一边写博客,一边听音乐,自认…...
2024/3/28 11:53:48 - Dubbo框架,SOA思想,Zookeeper安装
SOA思想 SOA介绍面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系…...
2024/3/29 11:12:40 - JTAG各类接口针脚定义及含义
JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。 一、引脚定义 Test Clock Input (TCK) -----强制要求1 TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有…...
2024/3/29 11:12:39 - matlab P 文件加密与逆向工程探讨
最近看论文,很多开源程序被加密成p文件。由于论文写得往往跟程序里实际做的还是有一定差别,很想借鉴一下前人宝贵的经验。之前,网上有大神曾经公布过逆向p文件到m文件,据说p文件采用AES-128加密格式,知道秘钥就可以反向逆向工程。由于matlab公司要求下架,该公测网站已经下…...
2024/3/29 11:12:40 - Dynamo-【NO.03】Revit交互节点
Dynamo的Revit交互 本文主要对Dynamo中涉及到数据的节点进行了总结整理,笔记整理自[姑娘课堂]的Dynamo教程,笔记原格式为OneNote格式,如有需要可以按照下方链接下载OneNote文件与PDF文件,如果链接失效或者笔记中有错漏部位请私信联系,看到后会回复。 百度网盘地址:https:…...
2024/3/28 16:51:41 - 求助急急急
1.网页上的文字保存到哪里了? 这些个很多很多的文字 不可能就是写死在网页上了吧?保存数据库感觉也不太对啊!毕竟这么多字。所以大神们这些字跑哪去了?每次初始化页面都会战士。 2.前台页面有没有那些个源码网站推荐的,不想自己写好多好复杂。点赞收藏分享文章举报weixin…...
2024/3/29 2:04:57 - Navicat使用HTTP通道连接MySQL(通过php代理连接数据库)
文章来源:https://blog.ll00.cn/archives/127.html问题描述:通过web服务器访问db服务器, 因为db服务器没有外网ip, 不支持外网直接访问;web服安装了php, 有外网IP,支持外网http访问。补充:什么是Navicat? 在win系统下通过图形操作mysql数据库的软件, 很好用。官网地址 :…...
2024/3/28 18:56:58 - 解决 github 等网站无法访问的办法
一、打开代理设置,在连接->局域网设置中,将“自动检测设置”、“使用自动配置脚本”这两个前面的勾选去掉。二、用记事本打开“C:\Windows\System32\drivers\etc”下的hosts,若在此目录下没有hosts,则新建一个hosts文本文件,然后将“.txt”后缀去掉,以记事本方式打开,…...
2024/3/29 11:25:43 - Dynamo-【NO.04】自定义节点
Dynamo的节点自定义 本文主要对Dynamo中涉及到数据的节点进行了总结整理,笔记整理自[姑娘课堂]的Dynamo教程,笔记原格式为OneNote格式,如有需要可以按照下方链接下载OneNote文件与PDF文件,如果链接失效或者笔记中有错漏部位请私信联系,看到后会回复。 百度网盘地址:https…...
2024/3/28 13:10:38 - NAT网关、vpc、子网、弹性IP 基本概念整理
NAT网关NAT网关(NAT Gateway)是一款企业级的公网网关,提供NAT代理(SNAT和DNAT)、高达10Gbps级别转发能力以及跨可用区的容灾能力。功能简介NAT网关作为一个网关设备,需要绑定公网IP才能正常工作。创建NAT网关后,您可以为NAT网关绑定弹性公网IP(EIP)。说明 对于2017年1…...
2024/3/29 11:25:41 - 使用Vue.js写一个简单的导航菜单
使用Vue.js写一个简单的导航菜单代码运行界面 代码 <!DOCTYPE html> <html> <head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content=&…...
2024/3/28 22:41:42 - Dynamo-【NO.05】CodeBlock节点
Dynamo的CodeBlock节点 本文主要对Dynamo中涉及到数据的节点进行了总结整理,笔记整理自[姑娘课堂]的Dynamo教程,笔记原格式为OneNote格式,如有需要可以按照下方链接下载OneNote文件与PDF文件,如果链接失效或者笔记中有错漏部位请私信联系,看到后会回复。 百度网盘地址:ht…...
2024/3/29 11:25:39 - ActiveMQ--与Spring和Springboot的整合
一、整合Spring首先导入pom文件<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-version>4.3.7.RELEASE</sprin…...
2024/3/29 11:25:38 - 用Python在Excel里画出蒙娜丽莎
之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳。 对于他们的耐心我十分敬佩。 但是作为一个程序员,自然也得挑战一下自己。 这种需求,我们十分钟就可以完成!mona-lisa基本思路实现这个需求的基本思路是读取这张图片每一个像素的色彩值,然后给…...
2024/3/29 11:25:37 - Python3 虚拟环境激活
如果你正在使用Python3,虚拟环境已经成为内置模块,可以直接通过如下命令来创建它: $ python3 -m venv venv注:这个命令不一定能够执行成功,比如译者在Ubuntu16.04环境下执行,提示需要先安装对应的依赖。sudo apt-get install python3-venv 使用这个命令来让Python运行ven…...
2024/3/29 11:25:36 - 《PaddlePaddle从入门到炼丹》3——卷积神经网络
文章目录前言训练模型预测图像参考资料 前言 上一章我们通过学习线性回归例子入门了深度学习,同时也熟悉了PaddlePaddle的使用方式,那么我们在本章学习更有趣的知识点卷积神经网络。深度学习之所以那么流行,很大程度上是得益于它在计算机视觉上得到非常好的效果,而在深度学…...
2024/3/29 11:25:36 - 数据量再大也不怕!笔记本电脑也可以分析 100GB 数据
导语:分析大量的数据,你需要了解下免费的开源工具 Vaex许多组织正试图收集和利用尽可能多的数据,以改进其业务运营方式、增加收入或对周围世界产生更大的影响。因此,数据科学家面对 50GB 甚至 500GB 大小的数据集的情况变得越来越普遍。但是现在,这些数据集使用起来并不方…...
2024/3/29 11:25:34 - Three.js中文文档地址
考虑到threejs官网的文档有时候打开比较慢,为了方便大家编程使用,我申请了一个国内的阿里云服务器,在我的个人小站上部署了一份Threejs中文文档 个人小站文档地址:http://www.yanhuangxueyuan.com/threejs/docs/index.html点赞收藏分享文章举报郭隆邦技术博客发布了138 篇原…...
2024/3/29 11:25:33 - np.newaxis
np.newaxis的作用就是在这一位置增加一个一维,这一位置指的是np.newaxis所在的位置,比较抽象,需要配合例子理解。x1 = np.array([1, 2, 3, 4, 5]) # the shape of x1 is (5,) x1_new = x1[:, np.newaxis] # now, the shape of x1_new is (5, 1) # array([[1], # [2],…...
2024/3/29 11:12:52
最新文章
- 30-3 越权漏洞 - 水平越权(横向越权)
环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、定义 攻击者可以访问和操作与其拥有同级权限的用户资源。 示例: 学生A在教务系统上正常只能修改自己的作业内容,但由于不合理的权限校验规则等原因,学生A可以修改学生B的内…...
2024/3/29 20:25:59 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - C++ Qt开发:QUdpSocket实现组播通信
Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…...
2024/3/28 7:37:39 - 网络安全笔记-day6,NTFS安全权限
文章目录 NTFS安全权限常用文件系统文件安全权限打开文件安全属性修改文件安全权限1.取消父项继承权限2.添加用户访问权限3.修改用户权限4.验证文件权限5.总结权限 强制继承父项权限文件复制移动权限影响跨分区同分区 总结1.权限累加2.管理员最高权限2.管理员最高权限 NTFS安全…...
2024/3/28 21:03:47 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/3/29 18:08:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/3/29 18:08:34 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/3/29 2:45:46 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/3/29 16:26:39 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/3/29 5:19:52 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/3/29 18:08:00 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/3/29 11:11:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/3/29 1:13:26 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/3/29 8:28:16 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/3/29 7:41:19 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/3/29 18:07:15 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/3/29 9:57:23 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/3/29 0:49:46 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/3/29 18:06:57 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/3/29 17:27:19 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/3/29 18:06:36 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/3/29 18:06:22 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/3/28 18:26:34 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/3/29 18:06:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/3/28 20:09:10 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57