使用piranha搭建Linux Virtual Server (LVS)集群环境

最近做一下LVS集群方式的性能对比测试,在配置IP隧道方式时遇到一些诡异的问题:

1)     停止LVS服务后虚拟IP未被释放(似乎只有重启服务器才能释放,重启网卡、清空路由表、重启交换机等方式均无效);

2)     负载不均衡(有时会依次将压力全部压在其中一个成员身上,有时又是正常的);

之前测试“直接路由”方式时是手动配置方式,配置成功并没有发现问题。而这次使用IP隧道方式这么多问题,肯定是配置问题。

官方有介绍一个配置工具:piranha。在CentOS安装光盘也自带有,于是尝试了一下,非常方便!推荐大家使用。毕竟这东西发布了,即使有错也不会错太远,Bug就另谈。谁能确定我们手动配置就没有错也没有Bug呢?

Piranha 提供了一套解决方案,包括对服务状态的监控、业务服务器的监控和负载服务器本身热备。基本结构示意:

安装非常简单:

yum install ipvsadm modcluster piranha system-config-cluster php php-cli php-common
Piranha 是一个WEB服务(Apache+Php),安装完成后需要先设置登录密码:/usr/sbin/piranha-passwd,用户名是piranha 。

1、启动WEB服务:service piranha-gui start

2、启动LVS守护进程:service pulse start

3、可以访问了:http://127.0.0.1:3636。

详细配置可参考RedHat官网说明,对LVS稍有了解,搜一下很容易就上手了。

这里我想补充一下RealServer的服务配置。www.linuxidc.com因为Piranha本身提供了Virtual Server本身的配置,但没有提供RealServer的配置。而在网上搜到的一些文章只介绍了RealServer配置方式,不足以批量生产使用。

首先,LVS服务器若修改了配置重启时需要执行以下脚本:

killall -9 nanny
service pulse restart
service piranha-gui restart
若客户端使用直接路由方式,服务脚本如下:

#!/bin/bash
# RealServer服务脚本,直接路由方式
WEB_VIP=192.168.10.31

start(){
ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
/sbin/route add -host $WEB_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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK [lvs_dr]"
}

stop(){
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
/sbin/ifconfig lo:0 down
/sbin/route del -host $WEB_VIP
sysctl -p >/dev/null 2>&1
echo "RealServer Stoped [lvs_dr]"
}

restart(){
stop
start
}

case $1 in

start)
     start
      ;;
stop)
     stop
      ;;
restart)
     restart
      ;;
status)
     /sbin/ifconfig
      ;;
*)
   echo "Usage: $0 {start|stop|restart|status}"
   exit 1
esac
若客户端使用IP隧道方式,服务脚本如下:

#!/bin/bash
# 业务服务器LVS服务脚本,IP隧道方式
WEB_VIP=192.168.10.31

start(){
ifconfig tunl0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
/sbin/route add -host $WEB_VIP dev tunl0
echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK [lvs_tun]"
}

stop(){
echo "0" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig tunl0 down
/sbin/route del -host $WEB_VIP
sysctl -p >/dev/null 2>&1
echo "RealServer Stoped [lvs_tun]"
}

restart(){
stop
start
}

case $1 in

start)
     start
      ;;
stop)
     stop
      ;;
restart)
     restart
      ;;
status)
     /sbin/ifconfig
      ;;
*)
   echo "Usage: $0 {start|stop|restart|status}"
   exit 1
esac
由于笔者未用到NAT方式,在此不介绍。欢迎广大网友补充。

时间: 2024-08-02 11:04:50

使用piranha搭建Linux Virtual Server (LVS)集群环境的相关文章

LVS (Linux Virtual Server)集群项目实践

LVS (LinuxVirtual Server)集群项目实践 实验目的:通过实验可以熟练规划和配置集群项目 实验环境:Red Hat Enterprise Linux Server release 6.4 实验前提:请确保实验前看过 LVS 中文站点 实验说明:本实验只是以实现负载均衡为目标,并没有考虑如共享存储等,这方面问题在以后的实验中 会添加. 实验步骤: 一.LVS 系统模型 二.LVS 调度算法 三.负载平衡方法 四.常用术语介绍 五.NAT 方式架设 六.DR方式架设 一.LVS

负载均衡:Linux Virtual Server(lvs)

负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录.**** Cluster集群 集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster 类型: LB:Load Balancing,负载均衡 HA:High Availiablity,高可用,SPOF(single Point O

学习搭建Hadoop+HBase+ZooKeeper分布式集群环境

一.环境配置 由于集群至少需要三台服务器,我就拿上次做的MongoDB Master, Slave, Arbiter环境来做Hadoop集群.服务器还是ibmcloud 免费提供的.其中Arbiter在这里做的也是slave的角色. Hostname IP  Server Type Master 192.168.0.28 Centos6.2 Slave 192.168.0.29 Ubuntu14.04 Arbiter 192.168.0.30 Ubuntu14.04 配置三台机器的Master

KVM部署LVS集群故障案例一则

一.故障现象 KVM部署LVS(Linux Virtual Server)集群后,能够单独以HTTP方式访问RS(Real Server)的实际IP,但无法通过VIP(Virtual IP)访问. 二.故障分析过程   1.简化架构   在原部署环境中,采用的架构是LVS的DR(Direct Return)模式,如下图所示: 为了便于故障排查,我们简化为 也就是在2台宿主机上,各保留一个虚拟机,角色分别是LVS的Director(调度器)和RS. 该架构中的服务器(及虚拟机)的IP和MAC地址如

LVS Load Balancing Linux Virtual Server

简介:Linux虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用.LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.LVS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.高

ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决

说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文检索,功能很牛逼,但是接到了任务不想做也不行, leader让我搭建一下分布式的ES集群环境,用来支持企业信用数据的检索,刚开始宝宝一脸蒙逼,只是之前自己本地搭建过一个测试玩过,开发任务也是忙的不行, 一直也没时间好好的研究一下,惭愧.<Elasticsearch服务器开发>已经备好,只能边学边开发了,希望本篇拙文可以帮到有需要的coder们.----jstarseven 话不多说,开始搭建环境,准备好集群

Spark1.2集群环境搭建(Standalone+HA) 4G内存5个节点也是蛮拼的

准备工作: 1.笔记本4G内存 ,操作系统WIN7 2.工具VMware Workstation 3.虚拟机:CentOS6.4共五台 4.搭建好Hadoop集群( 方便Spark可从HDSF上读取文件,进行实验测试) 实验环境: Hadoop HA集群: Ip hostname role 192.168.249.130 SY-0130 ActiveNameNode 192.168.249.131 SY-0131 StandByNameNode 192.168.249.132 SY-0132 D

centos7搭建zookeeper集群环境

搭建起一个zookeeper的集群环境,选择三台机器作为测试(zookeeper的集群环境节点数最好的是>=3且为奇数) 选用三台虚拟机机器(三台机器上需要配置好jdk环境): Node1:192.168.153.133 Node2:192.168.153.137 Node3:192.168.153.138 首先下载zookeeper的稳定版,地址https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeep

rocketmq那些事儿之集群环境搭建

上一篇入门基础部分对rocketmq进行了一个基础知识的讲解说明,在正式使用前我们需要进行环境的搭建,今天就来说一说rockeketmq分布式集群环境的搭建 前言 之前已经介绍了rocketmq的入门基础,相信各位已经基本了解,今天进行一个分布式集群的搭建,其实可以通过本地源码来进行源码的使用和学习,但是作为开发维护人员还是需要去了解分布式集群的部署流程,方便后面集群的调试和测试 配置参数 注意官方给的配置文件都是默认的,最简单的版本,线上的环境需要根据自己需求来进行配置,在这里说明下其中的部分