lvs 笔记
2016-02-26 14:15
344 查看
我的环境:VMware workstation + 3台 Ubuntu 12.04.5 LTS 版本的。
pssh进行并行批量操作
调度服务器:2个网卡一个桥接(192.168.31.206 ),一个host-only(10.10.100.52 )
真实服务器:10.10.100.51/53 ,(仿内网模式,都是host-only)
修改ip_forward
说明:-m 指定LVS 的工作模式为NAT 模式 ,rr表示采用轮询调度算法,这里还可以采用其他调度算法如wrr(加权轮询调度算法),-w在使用加权轮询调度算法时,还可以在添加规则时改变权值,一般默认权值为1
在2台真实的服务器配置网关,是把真实服务器处理的结果交给调度服务器去响应给用户
安装完成查看80端口
2个真实的服务器http服务启动了
访问 http://10.10.100.51/ 为zoo1 http://10.10.100.53/ 为zoo2
访问调度服务器 http://192.168.31.206/ 返回的内容不是zoo1就是zoo2.(多刷新几次才有效,Ctrl+F5)
真实服务器的路由改成
eth0:1 为vip 192.168.31.200
-g是使用DR模式
pssh进行并行批量操作
LVS/NAT
我配置的LVS/NAT配置的拓扑图如下调度服务器:2个网卡一个桥接(192.168.31.206 ),一个host-only(10.10.100.52 )
真实服务器:10.10.100.51/53 ,(仿内网模式,都是host-only)
安装LVS
sudo apt-get install ipvsadm
调度服务器配置
开启路由转发功能
vim /etc/sysctl.conf
修改ip_forward
net.ipv4.ip_forward=1
//让参数生效 sysctl -p
添加IP记录和规则
ipvsadm -A -t 192.168.31.206:80 -s rr //这个IP地址就是用户访问的ip或者VIP地址 ipvsadm -a -t 192.168.31.206:80 -r 10.10.100.51:80 -m -w 1 ipvsadm -a -t 192.168.31.206:80 -r 10.10.100.53:80 -m
说明:-m 指定LVS 的工作模式为NAT 模式 ,rr表示采用轮询调度算法,这里还可以采用其他调度算法如wrr(加权轮询调度算法),-w在使用加权轮询调度算法时,还可以在添加规则时改变权值,一般默认权值为1
真实服务器配置
#真实服务器IP hu@ubuntu:~$ cat lvs.txt root@10.10.100.51 root@10.10.100.53 hu@ubuntu:~$
网关
hu@ubuntu:~$ pssh -h lvs.txt -i 'route add default gw 10.10.100.52' [1] 20:36:48 [SUCCESS] root@10.10.100.51 [2] 20:36:48 [SUCCESS] root@10.10.100.53
在2台真实的服务器配置网关,是把真实服务器处理的结果交给调度服务器去响应给用户
安装nginx
//内网没有源的可以测试ssh端口22或者其他端口 pssh -h lvs.txt -i 'apt-get install nginx'
安装完成查看80端口
hu@ubuntu:~$ pssh -h lvs.txt -i 'lsof -i:80' [1] 20:19:35 [SUCCESS] root@10.10.100.51 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1127 root 6u IPv4 9227 0t0 TCP *:http (LISTEN) nginx 1127 root 7u IPv6 9228 0t0 TCP *:http (LISTEN) nginx 1128 www-data 6u IPv4 9227 0t0 TCP *:http (LISTEN) nginx 1128 www-data 7u IPv6 9228 0t0 TCP *:http (LISTEN) nginx 1129 www-data 6u IPv4 9227 0t0 TCP *:http (LISTEN) nginx 1129 www-data 7u IPv6 9228 0t0 TCP *:http (LISTEN) nginx 1130 www-data 6u IPv4 9227 0t0 TCP *:http (LISTEN) nginx 1130 www-data 7u IPv6 9228 0t0 TCP *:http (LISTEN) nginx 1131 www-data 6u IPv4 9227 0t0 TCP *:http (LISTEN) nginx 1131 www-data 7u IPv6 9228 0t0 TCP *:http (LISTEN) [2] 20:19:35 [SUCCESS] root@10.10.100.53 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1030 root 6u IPv4 9062 0t0 TCP *:http (LISTEN) nginx 1030 root 7u IPv6 9063 0t0 TCP *:http (LISTEN) nginx 1032 www-data 6u IPv4 9062 0t0 TCP *:http (LISTEN) nginx 1032 www-data 7u IPv6 9063 0t0 TCP *:http (LISTEN) nginx 1033 www-data 6u IPv4 9062 0t0 TCP *:http (LISTEN) nginx 1033 www-data 7u IPv6 9063 0t0 TCP *:http (LISTEN) nginx 1034 www-data 6u IPv4 9062 0t0 TCP *:http (LISTEN) nginx 1034 www-data 7u IPv6 9063 0t0 TCP *:http (LISTEN) nginx 1035 www-data 6u IPv4 9062 0t0 TCP *:http (LISTEN) nginx 1035 www-data 7u IPv6 9063 0t0 TCP *:http (LISTEN)
2个真实的服务器http服务启动了
测试
为了知道到底是访问到哪台了,分别修改下/usr/share/nginx/html/index.html(查看/etc/nginx/sites-available/default 的root )hu@ubuntu:~$ pssh -h lvs.txt -i 'hostname > /usr/share/nginx/html/index.html' [1] 20:42:25 [SUCCESS] root@10.10.100.51 [2] 20:42:25 [SUCCESS] root@10.10.100.53
访问 http://10.10.100.51/ 为zoo1 http://10.10.100.53/ 为zoo2
访问调度服务器 http://192.168.31.206/ 返回的内容不是zoo1就是zoo2.(多刷新几次才有效,Ctrl+F5)
VIP配置
如果需要keepalived真实服务器的路由改成
route add default gw $vip
LVS/DR
eth0:1 为vip 192.168.31.200
调度服务器配置
ifconfig eth0:1 192.168.31.200 broadcast 192.168.31.200 netmask 255.255.255.255 up route add -host 192.168.31.200 dev eth0:1 ipvsadm -C ipvsadm -A -t 192.168.31.200:80 -s rr -p 600 ipvsadm -a -t 192.168.31.200:http -r 192.168.31.186:http -g ipvsadm -a -t 192.168.31.200:http -r 192.168.31.187:http -g
-g是使用DR模式
真实服务器配置
ifconfig lo:0 192.168.31.200 broadcast 192.168.31.200 netmask 255.255.255.255 up route add -host 192.168.31.200 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
测试
同上相关文章推荐
- ubuntu iptables 共享上网
- iptables进行端口转发
- 关于wincvs1.3中文版对比版本中文乱码的解决方案
- 关于Mybatis的文章
- UVA 10214(p339)----Trees in a Wood
- 一个封装类教你学会SQLite数据库
- Java虚拟机类载入顺序
- 在Windows .NET平台下使用Memcached
- 微信企业号开发之菜单创建和触发
- cocos 入门三部曲
- Android 通知栏提示
- php更多加载...
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作 - Edison Chou
- docker的基础概念
- drupal mysql
- 大数据-互联网新的制高点
- C#札记
- Android状态保存与恢复
- Kali 2.0 采用ssh连接登陆
- 解决juqery ajax post方式传送数据乱码问题