lidonghe 发表于 2019-1-4 12:52:17

LVS应用笔记——基础

  一、具体原理就不说了,请参考章博士的网站,讲的很详细。

[*]LVS集群的通用结构 http://zh.linuxvirtualserver.org/node/12

[*]LVS集群系统网络核心原理分析 http://zh.linuxvirtualserver.org/node/98
  二、几个重要的概念
  ·负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。它可以是用IP负载均衡技术的负载调度器,也可以是基于内容请求分发的负载调度器,还可以是两者的结合。
  ·服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
  ·后端存储(backend storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
  调度器采用IP负载均衡技术、基于内容请求分发技术或者两者相结合。在IP负载均衡技术中,需要服务器池拥有相同的内容提供相同的服务。当客户请求到达时,调度器只根据负载情况从服务器池中选出一个服务器,将该请求转发到选出的服务器,并记录这个调度;当这个请求的其他报文到达,也会被转发到前面选出的服务器。在基于内容请求分发技术中,服务器可以提供不同的服务,当客户请求到达时,调度器可根据请求的内容和服务器的情况选择服务器执行请求。因为所有的操作都是在操作系统核心空间中将完成的,它的调度开销很小,所以它具有很高的吞吐率。
  三、命令参考
  ipvsadm 的用法和格式如下:
  ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p] [-M netmask]
  ipvsadm -D -t|u|f virtual-service-address
  ipvsadm -C
  ipvsadm -R
  ipvsadm -S [-n]
  ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
  [-g|i|m] [-w weight]
  ipvsadm -d -t|u|f service-address -r server-address
  ipvsadm -L|l
  ipvsadm -Z [-t|u|f service-address]
  ipvsadm --set tcp tcpfin udp
  ipvsadm --start-daemon state [--mcast-interface interface]
  ipvsadm --stop-daemon
  ipvsadm -h
  命令选项解释:
  有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可
  以。
  -A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。
  -E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
  -D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
  -C --clear 清除内核虚拟服务器表中的所有记录。
  -R --restore 恢复虚拟服务器规则
  -S --save 保存虚拟服务器规则,输出为-R 选项可读的格式
  -a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器
  -e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
  -d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
  -L|-l --list 显示内核虚拟服务器表
  -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)
  --set tcp tcpfin udp 设置连接超时值
  --start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。
  --stop-daemon 停止同步守护进程
  -h --help 显示帮助信息
  其他的选项:
  -t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务 or
  -u --udp-service service-address 说明虚拟服务器提供的是udp 的服务 or
  -f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
  -s --scheduler scheduler 使用的调度算法,有这样几个选项
  rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
  -p --persistent 持久稳固的服务。这个选项的意思是来自同一个客
  户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
  -M --netmask netmask persistent granularity mask
  -r --real-server server-address 真实的服务器
  -g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
  -i --ipip 指定LVS 的工作模式为隧道模式
  -m --masquerading 指定LVS 的工作模式为NAT 模式
  -w --weight weight 真实服务器的权值
  --mcast-interface interface 指定组播的同步接口
  -c --connection 显示LVS 目前的连接 如:ipvsadm -L -c
  --timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
  --daemon 显示同步守护进程状态
  --stats 显示统计信息
  --rate 显示速率信息
  --sort 对虚拟服务器和真实服务器排序输出
  --numeric -n 输出IP 地址和端口的数字形式
  例子,用命令添加
  ipvsadm -C
  ipvsadm -A -t 192.168.60.100:80 -s rr
  ipvsadm -a -t 192.168.60.100:80 -r 192.168.60.135:80 -g
  查看LVS的连接情况:ipvsadm -L -n
  查看LVS的吞吐量情况: ipvsadm -L -n --rate
  查看LVS的统计信息:ipvsadm -L -n --stats
  实时查看LVS连接状态变化: watch ipvsadm -ln
  ipvsadm -ln -t IP地址:端口
  ActiveConn是表示处于TCP的ESTABLISHED状态的连接数目,InActConn表示处于TCP的非ESTABLISHED状态的连接数目,如SYN_RECEIVED, TIME_WAIT, CLOSE_WAIT等等。InActConn数目高说明服务是短连接比较多
  weight 真实服务器的权值
  注意:stop ipvsadm会清除ipvsadm的规则
四、FAQ

[*]Starting pulse: pulse: cannot create heartbeat socket. running as root?

  网络配置问题,如果RIP和VIP都设置正确的话,可以查看一下网关的配置
  # vim /etc/sysconfig/network-scripts/ifcfg-eth0
  # Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
  DEVICE=eth0
  BOOTPROTO=none
  HWADDR=00:0c:29:68:20:b3
  ONBOOT=yes
  DHCP_HOSTNAME=ora01.dh.cn
  TYPE=Ethernet
  IPADDR=192.168.60.134
  NETMASK=255.255.255.0
  GATEWAY=192.168.60.2

[*]pulse dead but subsys locked
  # /etc/init.d/pulse restart
  Shutting down pulse:                                    
  Starting pulse:                                 
  # /etc/init.d/pulse status
  pulse dead but subsys locked
  日志/var/log//messages
  Mar 25 11:24:49 localhost last message repeated 2 times
  Mar 25 11:29:40 localhost pulse: SIOCGIFADDR failed: Cannot assign requested address
  Mar 25 11:29:40 localhost pulse: We are backup node and backup is marked inactive -- exiting pulse
  出现这个问题是由于,RIP设置必须为真实的物理网卡,不能是启用的子接口,比如用eth0:0当作负载均衡器的RIP,在启动的时候就会出问题。

页: [1]
查看完整版本: LVS应用笔记——基础