Cluster基础(二):ipvsadm命令用法、部署LVS-NAT集群、部署LVS-DR集群
一、ipvsadm命令用法
目标:
准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能:
- 使用命令添加基于TCP一些的集群服务
- 在集群中添加若干台后端真实服务器
- 实现同一客户端访问,调度器分配固定服务器
- 会使用ipvsadm实现规则的增、删、改
- 保存ipvsadm规则
方案:
安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料。常用ipvsadm命令语法格式如下表所示。

步骤:
步骤一:使用命令增、删、改LVS集群规则
1)创建LVS虚拟集群服务器
[root@svr5 ~]# ipvsadm -A -t 192.168.0.254 -s wrr -p 30
2)为集群添加若干real server
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m -w 1
    [root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.2 -m -w 2
    [root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.3 -m -w 3
    [root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.4 -m -w 4
3)修改集群服务器设置
[root@svr5 ~]# ipvsadm -E -t 192.168.0.254 -s sh -p 30
4)修改read server
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m
5)查看LVS状态
[root@svr5 ~]# ipvsadm –Ln
6)保存所有规则
[root@svr5 ~]# service ipvsadm save
7)清空所有规则
[root@svr5 ~]# ipvsadm –C
二、部署LVS-NAT集群
目标:
使用LVS实现NAT模式的集群调度服务器,为用户提供Web服务:
- 集群对外公网IP地址为202.114.106.20
- 调度器内网IP地址为192.168.0.254
- 真实Web服务器地址分别为192.168.0.1、192.168.0.2、192.168.0.3
- 使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致
方案:
使用4台虚拟机,1台作为Director调度器、3台作为Real Server、物理机作为客户端,拓扑结构如下图所示。

步骤:
步骤一:配置网络环境
1)设置Web服务器网络参数
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web1 ~]# systemctl restart NetworkManager
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web2 ~]# systemctl restart NetworkManager
     [root@web3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.3
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web3 ~]# systemctl restart NetworkManager
2)自定义Web页面
[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
    [root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
    [root@web3 ~]# echo “192.168.0.3” > /var/www/html/index.html
3)启动Web服务器软件
[root@web1 ~]# service httpd start
    [root@web2 ~]# service httpd start
    [root@web3 ~]# service httpd start
4)设置LVS调度器网络参数
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=202.114.106.20
    DNS1=202.106.0.20
    [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.254
    NETMASK=255.255.255.0
    DNS1=202.106.0.20
    [root@lvs ~]# systemctl restart NetworkManager
    [root@lvs ~]# sed -i '/ip_forward/s/0/1/'  sysctl.conf  //开启路由转发
    [root@lvs ~]# sysctl -p
步骤二:调度器安装软件并启动服务
1)安装软件
[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm
2)启动服务
[root@lvs Packages]# service ipvsadm start
    [root@lvs Packages]# chkconfig ipvsadm on
步骤三:部署LVS-NAT模式调度器
1)创建集群服务器
[root@lvs ~]# ipvsadm -A -t 202.114.106.20:80 -s wrr
2)添加真实服务器
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.1 -w 1
    [root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.2 -w 2
    [root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.3 -w 3
3)查看规则列表,并保存规则
[root@lvs ~]# ipvsadm –Ln
    [root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
步骤四:客户端测试
客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。
三、部署LVS-DR集群
目标:
使用LVS实现DR模式的集群调度服务器,为用户提供Web服务:
- 路由器对外公网IP地址为202.114.106.20
- 路由器内网IP地址为192.168.0.254
- 路由是需要设置SNAT及DNAT功能
- LVS调度器真实IP地址为192.168.0.10
- LVS调度器VIP地址设置为192.168.0.253
- 真实Web服务器地址分别为192.168.0.1、192.168.0.2
- 使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致
方案:
使用4台虚拟机,1台作为Linux路由器、1台作为Director调度器、2台作为Real Server、物理机作为客户端,拓扑结构如下图所示。

步骤:
步骤一:配置网络环境
1)设置Web服务器网络参数
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.253
    NETMASK=255.255.255.255
    [root@web1 ~]# vim /etc/sysctl.conf
    .. ..
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_announce = 2
    [root@web1 ~]# sysctl -p
    [root@web1 ~]# systemctl restart NetworkManager
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.253
    NETMASK=255.255.255.255
    [root@web2 ~]# vim /etc/sysctl.conf
    .. ..
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_announce = 2
    [root@web2 ~]# sysctl -p
    [root@web2 ~]# systemctl restart NetworkManager
2)自定义Web页面
[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
    [root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
3)启动Web服务器软件
[root@web1 ~]# systemctl start httpd; systemctl enable httpd
    [root@web2 ~]# systemctl start httpd; systemctl enable httpd
4)设置LVS调度器网络参数
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.10
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
    DEVICE=eth0:0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.253
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@lvs ~]# systemctl restart NetworkManager
5)设置Linux路由器网络参数
[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=202.114.106.20
    DNS1=202.106.0.20
    [root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.254
    NETMASK=255.255.255.0
    DNS1=202.106.0.20
    [root@router ~]# systemctl restart NetworkManager
6)设置Linux路由器的SNAT、DNAT功能
[root@router ~]# sed -i '/ip_forward/s/0/1/'  sysctl.conf  //开启路由转发
    [root@router ~]# sysctl -p
    [root@router ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp –j SNAT --to-source 202.114.106.20
    [root@router ~]# iptables -t nat -A PREROUTING -d 202.114.106.20 -p tcp --dport 80 –j DNAT --to-destination 192.168.0.253:80
    [root@router ~]# service iptables save
步骤二:调度器安装软件并启动服务
1)安装软件
[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm
2)启动服务
[root@lvs Packages]# systemctl start ipvsadm
    [root@lvs Packages]# systemctl enable ipvsadm
步骤三:部署LVS-DR模式调度器
1)创建集群服务器
[root@lvs ~]# ipvsadm -A -t 192.168.0.253:80 -s wrr
2)添加真实服务器
[root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.1 -g -w 1
    [root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.2 -g -w 2
3)查看规则列表,并保存规则
[root@lvs ~]# ipvsadm –Ln
    [root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
步骤四:客户端测试
客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。
Cluster基础(二):ipvsadm命令用法、部署LVS-NAT集群、部署LVS-DR集群的更多相关文章
- LVS集群的ipvsadm命令用法
		准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能: - 使用命令添加基于TCP一些的集群服务 - 在集群中添加若干台后端真实服务器 - 实现同一客户端访问, ... 
- ipvsadm命令用法
		ipvsadm命令选项 -A 添加虚拟服务器 -E 修改虚拟服务器 -D ... 
- Linux基础(二)之命令
		01-基础命令 1. 创建一个目录 mkdir /data 创建多级目录 mkdir -p /oldboy/data 2. 查看目录里面的内容 ls /data 3. 查看目录里面的详细信息 ls - ... 
- 二十六. 集群及LVS简介 LVS-NAT集群 LVS-DR集群
		方案:安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料. 常用ipvsadm命令语法格式如表-1及表-2所示. 1.ipvsadm命令用法(proxy) 1.1 创 ... 
- 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建
		7月4日任务 18.6 负载均衡集群介绍18.7 LVS介绍18.8 LVS调度算法18.9/18.10 LVS NAT模式搭建 扩展lvs 三种模式详解 http://www.it165.net/a ... 
- Vmware虚拟机配置LVS/NAT模式遇到的坑。
		这两天在研究LVS的负载均衡,先从最简单的LVS/NAT模式开始入手. 最后配置完之后能够相互之间Ping通,并且能够直接访问real服务器提供的web服务,而且防火墙也已经关闭了. 但是通过访问LV ... 
- LVS集群ipvsadm命令和调度算法(6)
		一.ipvsadm命令参考 为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍一下: 术语解释: 1.virtual-service-address:是指虚拟服务器的ip地址2.r ... 
- Linux Cluster 基础之LVS调度算法与集群类型
		Linux Cluster 基础之LVS调度算法与集群类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LB Cluster 1>.什么是LB LB 集群是 load ... 
- lvs基本概念、调度方法、ipvsadm命令及nat模型示例
		LVS类型: NAT:-->(DNAT) DR TUN FULLNAT LVS的常见名词解释 CIP<-->VIP--DIP<-->RIP Direct Routing: ... 
随机推荐
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_14-ArrayList集合的常用方法和循环
			常用的方法记下来 刚创建好,什么都不放的 add添加方法肯定是成功的. 加了这么多的值都没有用返回值,输出的结果可以看到都是添加成功的 获取索引值 ALT+回车键,推荐使用本地变量去接收 这样左边就会 ... 
- UI自动化之js\jquery的应用
			js\jquery的应用,有很多难以定位到的,可以通过js或者jquery来处理 目录 1.js 2.jquery 1.js 1.1js有5种定位,最后execute_script(js)来执行js ... 
- css练习-容器内多元素水平居中-flexbox布局应用
			想要实现这样一个父元素中的子元素都是居中的 只需在父元素上加样式 {display: flex;flex-direction: column;align-items:center;} 设置为flexb ... 
- c# thread4——lock,死锁,以及monitor关键字
			多线程的存在是提高系统效率,挖掘cpu性能的一种手段,那么控制它,能够协同多个线程不发生bug是关键. 首先我们来看一段不安全的多线程代码. public abstract class Calcula ... 
- JS-在本页面禁止页面返回
			这个问题是最近遇到的 解决方案我百度的并测试有效 // 如果你希望用户不用有返回功能 可缩写如下 或使用location.replace('url')跳转链接 history.pushState(nu ... 
- 【ABAP系列】SAP LSMW(摘自官网)
			公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP LSMW(摘自官网) 前 ... 
- Linux系统中tomcat的安装及优化
			Linux系统中Tomcat 8 安装 Tomcat 8 安装 官网:http://tomcat.apache.org/ Tomcat 8 官网下载:http://tomcat.apache.org/ ... 
- [Git] 001 初识 Git 与 GitHub 之新建仓库
			在 GitHub 的 UI 界面使用 Git 新建一个仓库 1. 点击右上角的 +,选择 New repository 2. 网站会自动跳转至新页面,在下框中填入仓库名 仓库名也有讲究,挖个坑,日后填 ... 
- [Python3] 013 集合:你不能两次进入同一个集合
			目录 0. 集合的独白 1. 集合的创建 2. 集合的特性 (1) 概述 (2) 少废话,上例子 3. 集合的遍历 4. 集合内涵 5. 集合的内置方法 6. 可供集合使用的一些方法/函数 (1) 又 ... 
- Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 (转)
			阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道 CAS.ReentrantLock.UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍.Jav ... 
