设为首页 收藏本站
查看: 934|回复: 0

[经验分享] Linux下VS/DR+heartbeat+ldirectory 实现高可用负载均衡服务

[复制链接]

尚未签到

发表于 2019-1-6 15:39:53 | 显示全部楼层 |阅读模式
  LinuxVS/DR+heartbeat+ldirectory 实现高可用负载均衡服务
  
  系统环境CentOS 5.4
  # uname -r
  2.6.18-128.el5
  IP分配:
  client eth0 10.10.10.10
  ldrictory eth1 10.10.10.1
  eth0 192.168.77.222
  realserver1 eth0 192.168.77.221
  realserver2 eth0 192.168.77.225
  LVS简介
  开发者:
  章文嵩(博士) 个人主页:http://zh.linuxvirtualserver.org
  三种模式
  VS/NAT VS/DR VS/TUN
  十种算法:
  Fixed echeduling(rr wrr dh sh)===========静态调度方法
  1. 轮叫 Round-robin (RR)
  调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,
  而不管服务器上实际的连接数和系统负载。
  2. 加权轮叫 Weithted round-robin (WRR)
  调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更
  多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值
  3. 目标地址散列 Destination hashing (DH)
  "目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器
  是可用的且未超载,将请求发送到该服务器,否则返回空。
  4. 源地址散列 Source hash (SH)
  "源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可
  用的且未超载,将请求发送到该服务器,否则返回空。
  Dynamic Scheduling (lc wlc sed nq lblc lblcr)======================动态调度方法
  其算法是:活动链接数x256+非活动链接数 将client请求分给数值小的服务器。
  1. 最少链接 Least-connect (LC)
  调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近
  的系统性能,采用"最小连接"调度算法可以较好地均衡负载。
  2. 加权最少链接 Weighted least-connection (WLC) (Default)
  在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器
  将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
  
  3. 最短期望连接Shortest Expected delay(SED)
  对wlc的改进,在wlc算法的基础上给权重值加一,主要用来针对某个服务器活动链接数值为0情况
  4. 从不排队Never Quene(NQ)
  基于SED算法的改进,不排队
  5. 基于局部性的最少链接locality-based least-connection (LBLC)
  基于局部的最少连接
  6. 带复制的基于局部性最少链接 Locality-Based Least Connectionswith Replication (LBLCR)
  三种IP负载均衡技术的优缺点比较:
  杂项 VS/NAT VS/TUN VS/DR
  服务器操作系统 任意 支持隧道 多数(支持Non-arp )
  服务器网络 私有网络 局域网/广域网 局域网
  服务器数目(100M网络) 10-20 100 多(100)
  服务器网关 负载均衡器 自己的路由 自己的路由
  效率 一般 高 最高
  查看ip_vs模块:
  检测系统是否已经加载lvs模块,默认在2.6.*以上的版本中已经加载了lvs模块。
  可以用modprobe -l命令查看,如果没有的话需对内核打补丁,或者升级内核到2.6.18以上
  # modprobe -l | grep ip_vs
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
  /lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
  我们额外还需要下载ipvs管理工具ipvsadm
  http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.25.tar.gz
  安装ipvsadm
  ## ln -sv /usr/src/kernels/2.6.18-128.el5-i686/ /usr/src/linux =====一定要做,不然报错,
  详细请看README
  # tar -zxvf ipvsadm-1.25.tar.gz
  # make && make install
  NAT模式:
  架构图:

  directory配置:
  [root@node1 ~]# service iptables stop ========================保险期间realserver,ldirectory防火墙均需关闭,
  因为iptables和ipvsadm公用netfilter,会冲突
  Flushing firewall rules: [ OK ]
  Setting chains to policy ACCEPT: mangle [ OK ]
  Unloading iptables modules: [ OK ]
  # echo 1 > /proc/sys/net/ipv4/ip_forward
  # ipvsadm -C
  # ipvsadm -A -t 10.10.10.1:80 -s wrr
  # ipvsadm -a -t 10.10.10.1:80 -r 192.168.77.221:80 -w 1 -m
  # ipvsadm -a -t 10.10.10.1:80 -r 192.168.77.225:80 -w 3 -m -m表示nat模式一定要加,默认是DR模式
  # ipvsadm -L -n
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  TCP 10.10.10.1:80 wrr
  -> 192.168.77.225:80 Masq 3 0 0
  -> 192.168.77.221:80 Masq 1 0 0 Masq 会是route
  realserver配置:
  1.安装web服务,保证web正常访问
  2.realserver需将网关指向directory即可
  测试:
  在client上 http://10.10.10.1 测试
  DR模式:
  这里我们将HA和HL放到一块来做,即:VS/DR+heartbeat高可用负载均衡的实现
  架构图:

  开始之前我们需要提到几个概念和注意的问题:
  1.arp隐藏
  2.为什么网上所有的VS/DR配置文档中,rip vip dip都是在一个网段中(我暂时没有找到,那位找到的请一定给我个网址,ths)
  ++++++++++++++++++++++++++++++++++++++++++++++++++++
  1.arp隐藏的原理
  在LVS的DR模式下,有一个必须要处理的问题就是real server上的ARP响应问题。其实,这个问题不只是LVS,其他的L4 Switch方案比如Foundry的ServerIron,也需要设置real server上的ARP响应。因为这是这种方案的结构决定的。
  根据LVS官方说明,在LVS 的DR模式下,前端的director接收到用户请求以后,director根据后端real server的负载情况,动态地选择一台real server,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出的real server的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的real server,所以被选出来的那台real server肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户,客户认为得到正常的服务,而不会知道是哪一台服务器处理的。
  VS/DR负载调度器也只处于从客户到服务器的半连接中,按照半连接的TCP有限状态机进行状态迁移。
  从上边的LVS DR工作原理可以看到一个客户端计算机发送一个ARP广播到LVS-DR集群,因为Director和集群节点(真实服务器1)都是连接到相同的网络上的,它们都会接收到ARP广播“是谁的VIP1?”,这个时候我们希望的是只有前端的director来对用户进行响应,其他real server不应该响应用户直接的ARP包。(参考下边两幅引用运维网网站的图)
  因此必须对real server进行一定的处理,使其不响应VIP接口上的ARP请求。在2.6系列的内核中,采用的方式是设置arp_announce和arp_ignore这两个内核参数。
  arp_ignore=1,系统只回答目的IP为是本地IP的包。也就是对广播包不做响应。
  arp_announce=2,系统忽略IP包的源地址(source address),而根据目标主机(target host),选择本地地址。
  而且凡是能收到对VIP ARP广播报文的网口,都需要设置。设置的方法是修改/etc/sysctl.conf文件
  永久的:
  net.ipv4.ip_forward = 1
  net.ipv4.conf.lo.arp_ignore = 1
  net.ipv4.conf.lo.arp_announce = 2
  net.ipv4.conf.all.arp_ignore = 1
  net.ipv4.conf.all.arp_announce = 2
  或
  临时:
  echo 1 > /proc/sys/net/ipv4/cconf/lo/arp_ignore
  echo 2 > /proc/sys/net/ipv4/cconf/lo/arp_announce
  echo 1 > /proc/sys/net/ipv4/cconf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/cconf/lall/arp_announce
  参数的具体含义:
  arp_announce : INTEGER
  默认为0
  对网络接口上本地IP地址发出的ARP回应作出相应级别的限制:
  确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
  0 - (默认) 在任意网络接口上的任何本地地址
  1 -尽量避免不在该网络接口子网段的本地地址. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP 不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
  2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送
  all/ 和{interface}/ 下两者同时比较,取较大一个值生效.
  提高约束级别有益于从指定的目标接受应答,而降低级别可以给予更多的arp查询者以反馈信息(关于arp代理这一段我普遍翻译地不好,去啃一下tcp/ip bible的卷一,然后再翻译吧)
  arp_ignore : INTEGER
  默认为0
  定义对目标地址为本地IP的ARP询问不同的应答模式
  0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使 eth0收到来自10.1.1.2这样地址发起的对10.1.1.1 的arp查询也会回应--而原本这个请求该是出现在eth1上,也该有eth1回应的)
  1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使 eth0收到来自10.1.1.2这样地址发起的对192.168.0.1的查询会回答,而对10.1.1.1 的arp查询不会回应)
  2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内(比如 eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到来自10.1.1.2这样地址发起的对192.168.0.1 的查询不会回答,而对192.168.0.2发起的对192.168.0.1的arp查询会回应)
  3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied 翻译地似乎不好,这个我的去问问人)
  4-7 - 保留未使用
  8 -不回应所有(本地地址)的arp查询
  all/ 和{interface}/ 下两者同时比较,取较大一个值生效.
  2.rip vip dip都是在一个网段中,其实没有必要,因为linux内核默认是不转发源IP是自己的包,我们需要打forward_shared补丁包,
  遗憾的是我没有坚持下来,呵呵,带日后有时间了再杀他一回。呵呵
  参考文章:
  http://www.cnblogs.com/ljkeke/archive/2009/02/17/1392693.html
  可以在调度器上使用DR方式,真实服务器使用私有地址并在逻辑设备上配置虚拟IP地址,用调度器作网关访问公网。
  但是,linux内核发行版基本上不支持 share_forward和rp_filter选项,它不会转发源IP是自已的包,所以要打
  forward_shared补丁和使用那两个选项来实现包的转发。
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  directory配置: 两台配置基本一样
  安装heartbeat
  http://www.ultramonkey.org/download/heartbeat/2.1.3/heartbeat-2.1.3.tar.gz
  http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/STABLE-3.0.3.tar.bz2 这个貌似很新,但是我一直没有下载成功过
  http://down.运维网.com/download.php?do=attachment&aid=107685&k=c8469a3d5830e56e6cd13060a0ed7816&t=1281434320
  我用的是第三个链接(解压缩后是八个包),因为第一个是源代码包,中间编译过程会因为系统的不同出现不同的需求和错误,
  很是麻烦。如果链接失败的话,可以给我留言,我邮件给诸位
  # ls
  heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm
  heartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm
  heartbeat-gui-2.1.4-9.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm
  heartbeat-ldirectord-2.1.4-9.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm
  # yum localinstall ./*.rpm
  # rpm -qa | grep heartbeat
  heartbeat-2.1.4-9.el5
  heartbeat-devel-2.1.4-9.el5
  heartbeat-ldirectord-2.1.4-9.el5
  heartbeat-pils-2.1.4-10.el5
  heartbeat-gui-2.1.4-9.el5
  heartbeat-stonith-2.1.4-10.el5
  # pwd
  /etc/ha.d ==================主目录
  # ls
  apphbd.cf COPYING.LGPL GettingStarted.txt hb_report.html README startstop
  authkeys DirectoryMap.txt ha.cf hb_report.txt Requirements.html
  AUTHORS faqntips.html HardwareGuide.html heartbeat_api.html Requirements.txt
  ChangeLog faqntips.txt HardwareGuide.txt heartbeat_api.txt rsync.html
  COPYING GettingStarted.html haresources logd.cf rsync.txt
  # cp /usr/share/doc/heartbeat-2.1.4/authkeys ha.cf haresources /etc/ha.d/
  # service heartbeat start
  #echo -ne "auth1\n1 sha1" >> authkeys
  #dd if=/dev/urandom bs=512 count=1 | openssl md5 >> authkeys
  1+0 records in
  1+0 records out
  512 bytes (512 B) copied, 0.000372942 seconds, 1.4 MB/s
  我们可以看到里面新增了两行
  #vim /etc/ha.d/authkeys
  auth1
  1 sha1 9e43d13a84f2b9ea486516d709e748b5
  # vim ha.cf =============开启如下行,具体含义如下
  debugfile /var/log/ha-debug
  logfacility local0
  keepalive 2
  deadtime 30
  warntime 10
  initdead 120
  udpport 694
  bcast eth1
  auto_failback on
  node node1.example.com
  node node2.example.com
  # vim haresources ===========声明主节点和虚拟ip地址
  node1.example.com 192.168.77.250 httpd
  #chmod 600 Authkeys
  配置ha.cf
  这个配置文件告诉heartbeat 使用的是什么介质和如何配置它们。ha.cf 包含你将到的所有的选项,内容如下:
  serial /dev/ttyS0
  使用串口heartbeat - 如果你不使用串口heartbeat, 你必须选择其它的介质,比如以太网bcast (ethernet) heartbeat。如果你使用其它串口heartbeat,修改/dev/ttyS0 为其它的串口设备。
  watchdog /dev/watchdog
  可选项:watchdog功能提供 了一种方法能让系统在出现故障无法提供"heartbeat"时,仍然具有最小的功能,能在出现故障1分钟后重启该机器。这个功能可以帮助服务器在确实停 止心跳后能够重新恢复心跳。如果你想使用该特性,你必须在内核中装入"softdog" 内核模块用来生成实际的设备文件。想要达到这个目的, 首先输入 "insmod softdog" 加载模块。然后,输入"grep misc /proc/devices" 注意显示的数字 (should be 10).然后, 输入"cat /proc/misc | grep watchdog" 注意输出显示出的数字(should be 130)。现在你可以生成设备文件使用如下命令:"mknod /dev/watchdog c 10 130" 。
  bcast eth1
  指定使用的广播heartbeat 的网络接口eth1(修改为eth0, eth2, 或你所使用的接口)
  keepalive 2
  设置心跳间隔时间为2两秒。
  warntime 10
  在日志中发出最后心跳"late heartbeat" 前的警告时间设定。
  deadtime 30
  在30秒后明确该节点的死亡。
  initdead 120
  在一些配置中,节点重启后需要花一些时间启动网络。这个时间与"deadtime"不同,要单独对待。 至少是标准死亡时间的两倍。
  hopfudge 1
  可选项: 用于环状拓扑结构,在集群中总共跳跃节点的数量。
  baud 19200
  串口波特率的设定(bps).
  udpport 694
  bcast和ucast通讯使用的端口号694 。这是缺省值,官方IANA 使用标准端口号。
  nice_failback on
  可选项:对那些熟悉Tru64 Unix, 心跳活动就像是"favored member"模式。主节点获取所有资源直到它宕机,同时备份节点启用。一旦主节点重新开始工作, 它将从备份节点重新获取所有资源。这个选项用来防止主节点失效后重新又获得集群资源。
  node linuxha1.linux-ha.org
  强制选项:通过`uname -n`命令显示出的集群中的机器名。
  node linuxha2.linux-ha.org
  强制选项:通过`uname -n`命令显示出的集群中的机器名。
  respawnuseridcmd
  可选项:列出可以被spawned 和监控的命令。例如:To spawn ccm 后台进程,可以增加如下内容:
  respawn hacluster /usr/lib/heartbeat/ccm
  通知heartbeat 重新以可信任userid身份运行(在我们的例子中是hacluster) 同时监视该进程的"健康"状况,如果进程死掉,重启它。例如ipfail, 内容如下:
  respawn hacluster /usr/lib/heartbeat/ipfail
  NOTE: 如果进程以退出代码100死掉, 这个进程将不会respawned。
  pingping1.linux-ha.orgping2.linux-ha.org ....
  可选项:指定ping 的节点。 这些节点不是集群中的节点。它们用来检测网络的连接性,以便运行一些像ipfail的模块。
  2.6.5.2. 配置 haresources
  一旦你配置好了ha.cf文件,下面就需要设置haresources文件,这个文件指定集群所提供的服务以及谁是缺省的主节点。注意,该配置文件在所有节点应该是相同的。
  在我们的例子中,我们的HA集群提供的是负载均衡服务(LVS)和服务监控服务(Ldirectord)。这里集群的IP(虚拟)地址是必须配置的,不要在haresources文件以外的地方配置该IP地址。所以我们应该添加如下一行:
  linuxha1 IPaddr::192.168.7.110/24/192.168.7.255 ipvsadm ldirectord::www ldirectord::mail
  ::前的表示服务脚本名称(IPaddr),你可以在目录/etc/ha.d/resource.d下找到一个脚本名叫 Ipaddr,后面的表示输入的参数。
  Heartbeat 会在下面的路径搜索同名的启动脚本:
  /etc/ha.d/resource.d
  /etc/rc.d/init.d
  这里的服务脚本的使用是符合Init标准语法,所以你可以在这里通过Heartbeat方便地运行、停止/etc/rc.d/init.d下标准的服务后台进程。
  2.6.5.3. 配置 Authkeys
  配置加密认证算法,有三种算法:CRC, md5,sha1。你会问我们应该用哪种呢?
  如果你的heartbeat 运行在一个安全的网络,例如CAT5交叉线,你可以用CRC,从资源开销上来说,这是最节省开销的。如果网络是不可靠的,而且你也不是一个网络安全痴狂者 或者你十分关心CPU资源的最小开销,就用md5,最后如果你关心的是安全而不是CPU资源的开销,那么建议你使用sha1,你将会得到最佳的安全度,很难被***所破解。
  格式如下:auth   []
  例: /etc/ha.d/authkeys
  使用sha1
  auth 1
  1 sha1 key-for-sha1-any-text-you-want
  使用md5
  auth 1
  1 sha1 key-for-md5-any-text-you-want
  使用CRC
  auth 2
  2 crc
  设置调度算法:
  # ipvsadm -C
  # ipvsadm -A -t 192.168.77.250:80 -s wrr
  # ipvsadm -a -t 192.168.77.250:80 -r 192.168.77.221:80 -w 1 -g
  # ipvsadm -a -t 192.168.77.250:80 -r 192.168.77.225:80 -w 3 -g
  # ipvsadm -L -n
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  TCP 192.168.77.250:80 wrr
  -> 192.168.77.225:80 Route 3 0 0
  -> 192.168.77.221:80 Route 1 0 0
  这里需要注意的是:
  1.一定确保每个ldirectoty的hosts文件中都有其他directory的名称解析,(或者建DNS服务一也可,强烈的不建议哈)
  不然ldirectory会找不到其他的ldriectory调度器
  2.Nat模式需要开启ip_forward=1路由功能,而在DR模式中是不需要开启IP_forward功能的,除非是因为有特别要求
  # hostname
  node1.example.com 另外一台为node2.example.com
  # cat /etc/hosts ====================两台directory hosts文件中需声明,并作相应配置
  192.168.0.1 node1.example.com node1
  192.168.77.222 node1.example.com node1
  192.168.0.2 node2.example.com node2
  192.168.77.220 node2.example.com node2
  realserver配置:
  #service httpd stop ============证实web服务是由heartbeat控制的,而非realserver自身了
  # echo 1 > /proc/sys/net/ipv4/cconf/lo/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/cconf/lo/arp_announce
  # echo 1 > /proc/sys/net/ipv4/cconf/all/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/cconf/lall/arp_announce
  # ifconfig lo:0 192.168.77.250 broadcast 192.168.77.250 netmask 255.255.255.255 up
  # route -n
  Kernel IP routing table
  Destination Gateway Genmask Flags Metric Ref Use Iface
  192.168.77.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
  0.0.0.0 192.168.77.222 0.0.0.0 UG 0 0 0 eth0
  # route add -host 192.168.77.250 dev lo:0
  # route -n
  Kernel IP routing table
  Destination Gateway Genmask Flags Metric Ref Use Iface
  192.168.77.250 0.0.0.0 255.255.255.255 UH 0 0 0 lo
  192.168.77.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
  0.0.0.0 192.168.77.222 0.0.0.0 UG 0 0 0 eth0
  测试:
  1.在client测试 http://192.168.77.250 会轮显两台realserver的web内容(建议将两台web的内容设置不一样,以便于区别)
  2.关掉master directory,网页依然可以正常访问,在辅助directory上执行
  #ipvsadm -L -n
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  TCP 192.168.77.250:80 wrr
  -> 192.168.77.225:80 Route 3 0 0
  -> 192.168.77.221:80 Route 1 0 0
  # ifconfig
  eth0 Link encap:Ethernet HWaddr 00:0C:29:FF:42:84
  inet addr:192.168.77.220 Bcast:192.168.77.255 Mask:255.255.255.0
  inet6 addr: fe80::20c:29ff:feff:4284/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  RX packets:140116 errors:0 dropped:0 overruns:0 frame:0
  TX packets:23633 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:18547910 (17.6 MiB) TX bytes:2062186 (1.9 MiB)
  Interrupt:67 Base address:0x2000
  eth0:0 Link encap:Ethernet HWaddr 00:0C:29:FF:42:84
  inet addr:192.168.77.250 Bcast:192.168.77.255 Mask:255.255.255.0
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  Interrupt:67 Base address:0x2000
  eth1 Link encap:Ethernet HWaddr 00:0C:29:FF:42:8E
  inet addr:192.168.7.220 Bcast:192.168.7.255 Mask:255.255.255.0
  UP BROADCAST MULTICAST MTU:1500 Metric:1
  RX packets:70991 errors:0 dropped:0 overruns:0 frame:0
  TX packets:10549 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:10854575 (10.3 MiB) TX bytes:2693378 (2.5 MiB)
  Interrupt:75 Base address:0x2080
  我们会发现虚拟IP地址192.168.77.250:80会自动添加过来




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660049-1-1.html 上篇帖子: heartbeat配置文件之ha.cf 下篇帖子: mysql+heartbeat双主高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表