集群及LVS

集群:
一组通过高速网络互联的计算机组,并以单一系统的模式加以管理
价格很多服务器集中起来,提供同一种服务,在客户端看起来就像只有一个服务器
可以在付出较低成本的情况下获得在性能,可靠性,灵活性方面的相对较高的收益
任务调度室集群系统中的核心技术

集群目的:
提高性能:如计算密集型应用,如:天气预报,核试验模拟
降低成本:相对于百万美元级的超级计算机,价格便宜
提高可扩展性:只要增加集群节点即可
增强可靠性:多个节点完成相同功能,避免单点失败

集群分类:
高性能计算集群HPC:通过以集群开发的并行应用程序,解决复杂的科学问题
负载均衡(LB)集群:客户端负载在计算机集群中尽可能平均分摊
高可用(HA)集群:避免单点故障,当一个系统发生故障时,可以快速迁移

实例:准备LAMP分离结构
环境:准备两台web服务器和一台数据库服务器
mysql:192.168.4.1
web1:192.168.4.2
web2:192.168.4.3

mysql端
[root@mysql1 ~]# yum -y install mysql-server
[root@mysql1 ~]# /etc/init.d/mysqld start ;chkconfig mysqld on
mysql> grant all on *.* to 'admin'@'192.168.4.2' identified by '123456';
mysql> grant all on *.* to 'admin'@'192.168.4.3' identified by '123456';

web端
[root@web1 ~]# yum -y install httpd php php-mysql
[root@web1 ~]# /etc/init.d/httpd start ;chkconfig httpd on
[root@web2 ~]# yum -y install httpd php php-mysql
[root@web2 ~]# /etc/init.d/httpd start ;chkconfig httpd on
在web1安装Discuz
[root@web1 ~]# unzip Discuz_X3.2_SC_UTF8.zip
[root@web1 ~]# mv upload/ /var/www/html/bbs
[root@web1 ~]# chown -R apache config/ data/ uc_*
[root@web1 ~]# firefox http://192.168.4.2/bbs
数据库服务器: 192.168.4.1(mysql服务器ip)
数据库名:hydra(自带的函数会自动创建次库)
数据库用户名:admin(在mysql服务器授权的用户)
数据库密码:123456
在mysql端查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hydra |
| mysql |
| test |
+--------------------+

在web端测试注册一个叫hydra的用户并发帖,
帖子主题为hydra 内容为 Anonymous!!!!!!

在mysq服务器查看用户数据,查看发帖内容
mysql> select uid,username,password,email from pre_common_member;
+-----+----------+----------------------------------+----------------+
| uid | username | password | email |
+-----+----------+----------------------------------+----------------+
| 1 | admin | eab19088f6ff65eb97530281c7d49f3e | root@localhost |
| 2 | hydra | f0b02c4f4fe8adf540bf7ed8a7522d03 | 12@qq.com |
+-----+----------+----------------------------------+----------------+
mysql> select author,subject,message from pre_forum_post;
+--------+---------+-----------------------+
| author | subject | message |
+--------+---------+-----------------------+
| hydra | hydra | Anonymous!!!!!! |
+--------+---------+-----------------------+

在第二台web2服务器
将第一台的web1服务器的bbs项目打包拷贝到第二台web1服务器即可
[root@web1 html]# tar -czf bbs.tar.gz bbs/
[root@web1 html]# scp bbs.tar.gz 192.168.4.3:/var/www/html/
[root@web2 html]# tar -xf bbs.tar.gz
[root@web2 html]# firefox http://192.168.4.3/bbs(在第二台web服务器测试访问,并注册用户测试)
在mysql服务器查看
mysql> select author,subject,message from pre_forum_post;
+-----------+----------+-----------------------+
| author | subject | message |
+-----------+----------+-----------------------+
| hydra | hydra | Anonymous!!!!!! |
| | | |
| Anonymous | ha ha ha | ha ha ha ha ha |
+-----------+----------+-----------------------+

——————————————————————————————————————————————————————————————————

LVS

LVS项目
linux虚拟服务器(lvs)由章文嵩博士创建
lvs可以实现高可用的,可伸缩的web,mail,cache和media等网络服务
最终目标是利用linux操作系统和lvs集群软件实现一个高可用,高性能,低成本的服务器应用集群

负载均衡集群LB
硬件:F5
软件:lvs,haproxy

lvs集群组成
前端:负载均衡层,由一台或多台负载调度器构成
中间:服务器群组层,由一组实际运行应用服务器组成
底端:数据共享存储层,提供共享存储空间的存储区域

lvs术语
Director Server:调度服务器,将负载分发到Real Server的服务器
Real Server:真实服务器,真正提供应用的服务器
VIP:虚拟ip地址,公布给用户访问的虚拟ip地址
RIP:真实ip地址,集群节点上使用的ip地址
DIP:调度器连接节点服务器的ip地址

负载均衡调度算法
lvs目前实现了10种调度算法
常用的调度算法有4种
轮询
加权轮询
最少连接
加权最少连接

实例:配置LVS NAT模式
环境:准备一台lvs服务器,修改两台web服务器的网关,指向dir
打开调度器的路由转发功能
eth0:192.168.4.4
eth2:201.1.1.4

web端
[root@web1 ~]# vim /etc/sysconfig/network
GATEWAY=192.168.4.4
[root@web2 ~]# vim /etc/sysconfig/network
GATEWAY=192.168.4.4
调度器端
[root@lvs1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward(临时生效)
[root@lvs1 ~]# vim /etc/sysctl.conf(永久生效)
net.ipv4.ip_forward = 1
[root@lvs1 ~]# sysctl -p(生效)
安装lvs
[root@lvs1 ~]# vim /etc/yum.repos.d/rhel6.repo (需要添加yum源)
[rhel]
name=Linux NSD
baseurl=file:///root/myiso/LoadBalancer(需要加上这个路径,yum默认找server这个库)
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@lvs1 ~]# yum -y install ipvsadm(安装lvs)

ipvsadm用法
ipvsadm -Ln:查看调度规则
创建虚拟服务器
-A:添加虚拟服务器
-t:设置群集地址(VIP,Virtual IP)
-s:指定负载调度算法
添加,删除服务器节点
-a:添加真实服务器
-d:删除真实服务器
-r:指定真实服务器(Real Server)的地址
-m:使用NAT模式,-g,-i分别对应DR,TUN模式
-w:为节点服务器设置权重,默认为1

[root@lvs1 ~]# ipvsadm -A -t 201.1.1.4:80 -s wrr(wrr加强轮询算法)
[root@lvs1 ~]# ipvsadm -a -t 201.1.1.4:80 -r 192.168.4.2 -m -w 2
[root@lvs1 ~]# ipvsadm -a -t 201.1.1.4:80 -r 192.168.4.3 -m
[root@lvs1 ~]# firefox http://201.1.1.4/bbs(测试访问)
[root@lvs1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 201.1.1.4:80 wrr
-> 192.168.4.2:80 Masq 2 0 0
-> 192.168.4.3:80 Masq 1 0 0
[root@lvs1 jiaobeng]# vim web_start.sh(写出脚本,扫描服务器,如果有服务器出问题则把次服务器干掉,没问题则添加上,死循环 每5秒执行一次)
#!/bin/bash
VIP=201.1.1.4:80
RIP1=192.168.4.2
RIP2=192.168.4.3
while [ 1 ]
for ip in $RIP1 $RIP2
do
web_stat=$(nmap -n -sT $ip -p 80 2> /dev/unll | grep open)
ip_in_lvs=$(ipvsadm -Ln | grep $ip)
if [ -z "$web_stat" -a -n "$ip_in_lvs" ];then
ipvsadm -d -t $VIP -r $ip
elif [ -n "$web_stat" -a -z "$ip_in_lvs" ];then
ipvsadm -a -t $VIP -r $ip -m
fi
done
done
[root@lvs1 jiaobeng]# chmod +x web_start.sh (加执行权)
[root@lvs1 ~]# service ipvsadm save(存盘,不保存重启服务后配置就没有了)

实例:配置LVS DR模式
环境:先把NAT环境下的LVS连接外网的ip移除,清空lvs nat配置
在lvs上为物理网卡配置vip,
在两台real server上为lo配置vip
lvs端
[root@lvs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2(把IPADDR=201.1.1.4删除即可)
[root@lvs1 ~]# /etc/init.d/ipvsadm restart(清空规则)
[root@lvs1 ~]# ipvsadm -D -t 201.1.1.4:80(存盘后要这样清空)
[root@lvs1 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0(拷贝网卡)
[root@lvs1 network-scripts]# vim ifcfg-eth0:0
DEVICE=eth0:0(只修改这两行,其他不变)
IPADDR=192.168.4.100
[root@lvs1 ~]# /etc/init.d/network restart
[root@lvs1 ~]# ifconfig
eth0:0 Link encap:Ethernet HWaddr 54:52:01:01:04:01
inet addr:192.168.4.100 Bcast:192.168.4.255 Mask:255.255.255.0
real server端(两台都做相同的操作)
[root@web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@web1 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.100
NETMASK=255.255.255.255
NETWORK=192.168.4.100
BROADCAST=192.168.4.100
ONBOOT=yes
[root@web1 network-scripts]# /etc/init.d/network restart
配置real server端内核参数(两台都做相同的操作)
[root@web1 ~]# sysctl -a | grep arp_i
[root@web1 ~]# echo 'nat.ipv4.conf.all.arp_ignore = 1' >> /etc/sysctl.conf
[root@web1 ~]# echo 'nat.ipv4.conf.lo.arp_ignore = 1' >> /etc/sysctl.conf
[root@web1 ~]# sysctl -a | grep arp_a
[root@web1 ~]# echo 'net.ipv4.conf.all.arp_announce = 2' >> /etc/sysctl.conf
[root@web1 ~]# echo 'net.ipv4.conf.lo.arp_announce = 2' >> /etc/sysctl.conf
[root@web1 ~]# sysctl -p(生效)
lvs端配置
[root@lvs1 ~]# ipvsadm -A -t 192.168.4.100:80 -s lc
[root@lvs1 ~]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.2
[root@lvs1 ~]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.3 -g -w 2(-g 路由模式 w 2权重为2)
[root@lvs1 ~]# ipvsadm -Ln(查看规则)
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.100:80 lc
-> 192.168.4.2:80 Route 1 0 0
-> 192.168.4.3:80 Route 2 0 0
[root@web2 ~]# firefox http://192.168.4.100/bbs(测试访问)

————————————————————————————————————————————————————————————————————————————————————————

linux 集群及lvs的更多相关文章

  1. 基于VMware的虚拟Linux集群搭建-lvs+keepalived

    基于VMware的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvsserver的的双机热备和真实server之间的负载均衡.这方面的blog挺多,可是每一个 ...

  2. Linux集群服务 LVS

    linux虚拟服务器(LVS)项目在linux操作系统上提供了最常见的负载均衡软件. 集群定义: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性 ...

  3. Linux集群及LVS简介

    一.什么是集群 通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的 ...

  4. Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS

    一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ...

  5. Linux 笔记 - 第十八章 Linux 集群之(二)LVS 负载均衡集群

    一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.上一篇已经讲解了 HA 高可用集群,此节讲解负载均衡集群. 负载均衡集群(Load Balance Cluseter,简称 ...

  6. Linux集群

    集群的起源: 集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发.由于主要用于科学工程计算,所以这些系统并不为大家所熟知.直到Linux集群的出现,集群的概念 ...

  7. linux集群架构

    Linux集群架构   根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heart ...

  8. Linux集群架构(二)

    Linux集群架构(二) 目录 八.LVS DR模式搭建 九.keepalived + LVS 十.扩展 八.LVS DR模式搭建 1.实验环境: 四台机器: client: 10.0.1.50 Di ...

  9. Linux集群架构(一)

    第二十八课 Linux集群架构(一) 目录 一. 集群介绍 二. keepalived介绍 三. 用keepalived配置高可用集群 四. 负载均衡集群介绍 五. LVS介绍 六. LVS调度算法 ...

随机推荐

  1. 解决ubuntu系统root用户下Chrome无法启动问题

    由于ubuntu16.04系统自带的是Firefox浏览器,需要安装Chrome浏览器,但是在root用户下安装后发现,Chrome无法正常启动.安装及问题解决具体如下: 1. ubuntu上Chro ...

  2. 【转】Linux方向职业分析

    引言: 据了解,Linux普通网络管理人员的月薪大约5000元左右,负责编程的Linux软件工程师月薪大约在8000元到12000元之间,Linux嵌入式软件开发人员的月薪大约在12000元以上. 影 ...

  3. 探索ArrayList自动改变size真相

    探索ArrayList自动改变size真相 ArrayList的列表对象实质上是存储在一个引用型数组里的,有人认为该数组有“自动增长机制”可以自动改变size大小.正式地说,该数组是无法改变 大小的, ...

  4. Eclipse导入项目文件夹

    Eclipse项目导入出现感叹号解决方法 出现这样的情况怎么办 右击项目名-Bulid path -configure Bulid path 选择Libraries-Remove(移去错的)-Add ...

  5. ajax请求获取实时数据

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  6. Java中获取本地某一个目录下的所有文件和文件夹

    在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,而在这之前,我们需要做的就是获取到这个目录下的文件. String filepath = "D:\file";// ...

  7. python中的进程池

    1.进程池的概念 python中,进程池内部会维护一个进程序列.当需要时,程序会去进程池中获取一个进程. 如果进程池序列中没有可供使用的进程,那么程序就会等待,直到进程池中有可用进程为止. 2.进程池 ...

  8. Linux下php+imagemagick支持webp格式的图片

    摘要 ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割.缩放.水印.格式转换等.ImageMagick就是一个理想的工具包. 安装基础依赖 先检查 ...

  9. SPOJ DIVCNT2 [我也不知道是什么分类了反正是数论]

    SPOJ DIVCNT2 - Counting Divisors (square) 题意:求 \[ \sum_{i=1}^n\sigma_0(i^2) \] 好棒啊! 带着平方没法做,考虑用其他函数表 ...

  10. BZOJ 2839: 集合计数 [容斥原理 组合]

    2839: 集合计数 题意:n个元素的集合,选出若干子集使得交集大小为k,求方案数 先选出k个\(\binom{n}{k}\),剩下选出一些集合交集为空集 考虑容斥 \[ 交集为\emptyset = ...