高可用性和负载均衡集群的区别:
  高可用性集群与负载均衡集群的工作原理不同,适用于不同类型的服务.通常,负载均衡集群适用于提供静态数据的服务,如HTTP服务;而高可用性集群既适用于提供静态数据的服务,如HTTP服务,又适用于提供 动态数据的服务,如数据库等.高可用性集群之能适用于提供动态数据的服务,是节点共享同一存储介质,如RAIDBox.也就是说,在高可用性集群 内,每种服务的用户数据只有一份,存储在共用存储设备上,在任一时刻只有一个节点能读写这份数据.
  以Turbolinux TurboHA为例,集群中有两个节点A和B,设这个集群只提供Oracle服务,用户数据存放于共用存储设备的分区/dev/sdb3上.在正常状态 下,节点A提供Oracle数据库服务,分区/dev/sdb3被节点A加载在/mnt/oracle上.当系统出现某种故障并被TurboHA软件检测 到时,TurboHA会将Oracle服务停止,并把分区/dev/sdb3卸载.之后,节点B上的TurboHA软件将在节点B上加载该分区,并启动 Oracle服务.对于Oracle服务有一个虚拟的IP地址,当Oracle服务从节点A切换到节点B上时,虚拟的IP地址也会随之绑定到节点B上,因此用户仍可访问此服务.
  由以上分析可以看出, 负载均衡集群适用于提供相对静态的数据的服务,比如HTTP服务.因 为通常负载均衡集群的各节点间通常没有共用的存储介质,用户数据被复制成多份,存放于每一个提供该项服务的节点上.
  高性能计算集群 HP (High perfomancing)
  高可用性集群对一种服务而言不具有负载均衡功能,它可以提高整个系统的可靠性,但不能增加负载的能力.当然,高可用性集群可以运行多种服务,并适当分配在不同节点上,比如节点A提供Oracle服务,同时节点B提供Sybase服务,这也可以看成是某种意义上的负载均衡,不过这是对多种服务的分配而言. 简单的说,高性能计算(High-Performance Computing)是计算机科的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件

Weight:权重:权越重,性能越好
WRR加权轮调:权越重,性能越好
hash:为了保证唯一性,DH用于缓存环境

一、Cluster集群的分类:
   LB:分担负载均衡集群:LVS,容量足够大,3000->500
   HA:高可用集群:HEARTBEAT,corosync:不中断的服务器
   HP:高性能集群:HADOOP:处理性能要足够强

二、共享存储:
DAS:DIRECT ATTACHED STORAGE 直接附加存储;直接连接着主机总线上的,块级别的
NAS:NFS,SAMBA 网络附加存储:NETWORK ATTCHED STORAGE 文件级别的传输,读写可以加锁,文件服务器,是文件传输
SAN:STORAGE AREA NETWORK: 存储区域网络;在用户眼里是个设备。数据块级别,不能实现共享写的存储,不在同一地址,利用隧道发送
 
三、LVS类型:
  NAT:相当于DNAT,地址转换
    地址的转换过程:S:CIP D:VIP------->Director------>S:CIP D:RIP------>Real Server------>S:RIP  D:CIP----->Director----->S:VIP  D:CIP
    RS跟Director 必须在同一子网中,RIP是私有地址,仅用于本地通信;
    Director工作在Clients和RS中间,负责处理进出的全报文;RS网关要指向DIP;
    可以实现端口映射;RS可以是任何操作系统;Director可能成为瓶颈,在较大规模应用中;
  DR:直接路由
      S:CIP D:VIP----->Director--->S:CIP D:RIP -----> Real Server---> S:VIP D:CIP
      Real Server 上必须配置VIP切需要隐藏起来,只有在响应客户端请求时才使用VIP作为源地址,除此之外并不使用此VIP。
      RS跟Director必须在同一物理网络上;RIP可以是公有地址;DIP跟RIP最好在同一网络中
      Director仅处理请求报文;RS的网关不能指向DIP;不能使用端口映射,请求那个端口就用那个端口,相当于添加路由响应的地址就源地址
      大多数OS都可以用于RS;DR模型的Director能够处理比NAT模型多得多的请求
    实际生产环境中最常用的一种方式,优点:
      RIP 为公网地址,管理员可以远程连接Real Server来查看工作状态;
      一旦Director 宕机,可以通过修改DNS记录将A记录指向RIP 继续向外提供服务;
   TUN:隧道
        RS跟Director不必在同一物理网络中;RIP一定不能是私有地址;Director仅处理请求报文;
        响应报文不能经过Director;不能使用端口映射;仅允许支持隧道协议的OS用于RS;
四、调度方法:
  静态:仅根据算法本身调度,不关心RS上当前连接的状态
    RR轮调:调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载.
    WRR加权轮调:调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求.这样可以保证处理能力强的服务器处理更多的访问流量.调度器可以自动问询真实服务器的负载情况,并动态地调整其权值
    DH目标地址hash: 来自于同一个IP地址的请求都被重定向到同一台Real Server上(保证目标地址不变)
    SH(source hash)源地址hash: 源地址散列:Director必须确保响应的数据包必须通过请求数据包所经过的路由器或者防火墙(保证原地址不变)
  动态:要将RS连接状态记入调度考量标准的;
    LC:最少连接:Least Connections:OVERHEAD=active*256+inactive越小越优先;调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上.
    WLC:加权最少连接:OVERHEAD=(active*256+inactive)/weight越小越优先,并且是默认的;在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载.调度器可以自动问询真实服务器的负载情况,并动态地调整其权值.
    SED:OVERHEAD=(active+1)*256/weight;对wlc的改进,在wlc算法的基础上给权重值加一,主要用来针对某个服务器活动链接数值为0情况
    NQ:永不排队Never Queue:第一个连接不做计算每个服务都发个,不管你的权重有多大,只有你没有工作就优先给你
    LBLC:基于本地最少连接;Locality-Baset Least Connection
    LBLCR:带复制功能的基于本地最少连接:Locality-Baset Least Connection Replication
    正常的跟服务器连接wlc;要是hash连接就用LBLC
五、 IPVS命令的用法:
   IPVS命令用法:
  ipvsadm 的用法和格式如下:ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]] [-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 [options] 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 的服务[vip:port] or [real-server-ip:port] -u ——udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port] -f ——fwmark-service fwmark 说明是经过iptables 标记过的服务类型.    
-s ——scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc. -p ——persistent [timeout] 持久稳固的服务.这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理.timeout 的默认值为300 秒.    
-M ——netmask netmask persistent granularity mask
  -r ——real-server server-address 真实的服务器[Real-Server:port]
  -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 地址和端口的数字形式

arp_announce and apr_ignore,工作在站点上
arp_announce通告地址的级别:012,
   0使用自己配置的所有地址向外通告;
   1避免使用跟目标网络不在同一网络中,不进行通告;
   2只使用仅相近本地址给目标网络通告
apr_ignore 请求的级别:
  0:只要自己有,别人的请求就给响应
  1:只有同一的网络中并且在同一的网卡上才给于响应

LVS中有持久连接
PCC:将来自同一用户的所有的服务都被分到一个RS上。
PPC:将对某个特殊的服务分到一个RS上。
PFWM:将两种服务分到一个RS上,就是把多个PPC结合起来但是没有PCC的级别