1. LVS + Keepalived之三大模式
  2. ======================================================================================
  3. NAT模式:
  4. ======================================================================================
  5. 一、仅lvs服务器端安装
  6. yum install ipvsadm openssl-devel popt popt-devel libnl-devel
  7. cd /opt/src/
  8. tar xzvf keepalived-1.2.7.tar.gz
  9. cd keepalived-1.2.7
  10. ./configure
  11. make && make install
  12. cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
  13. cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
  14. mkdir /etc/keepalived
  15. cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
  16. cp /usr/local/sbin/keepalived /usr/sbin/
  17.  
  18. 修改/etc/keepalived/keepalived.conf文件
  19. [root@WEB ~]# cat /etc/keepalived/keepalived.conf
  20. ! Configuration File for keepalived
  21.  
  22. global_defs {
  23. notification_email {
  24.  
  25. 123@123.com
  26. }
  27. notification_email_from 123@123.com
  28. smtp_server mail.123.com
  29. smtp_connect_timeout 30
  30. router_id LVS_DEVEL
  31. }
  32.  
  33. vrrp_instance VI_1 {
  34. state MASTER
  35. interface eth0
  36. virtual_router_id 52
  37. priority 100
  38. advert_int 1
  39. authentication {
  40. auth_type PASS
  41. auth_pass 1111
  42. }
  43. virtual_ipaddress {
  44. 88.88.88.88
  45. }
  46. }
  47. vrrp_instance LAN_GATEWAY {
  48. state MASTER
  49. interface eth1
  50. virtual_router_id 52
  51. priority 100
  52. advert_int 1
  53. authentication {
  54. auth_type PASS
  55. auth_pass 1111
  56. }
  57. virtual_ipaddress {
  58. 192.168.1.88
  59. }
  60. }
  61. virtual_server 88.88.88.88 80 {
  62. delay_loop 6
  63. lb_algo lc
  64. #lb_kind DR
  65. #lb_kind TUN
  66. lb_kind NAT
  67. persistence_timeout 60
  68. protocol TCP
  69.  
  70. real_server 192.168.1.18 80 {
  71. weight 3
  72. TCP_CHECK {
  73. connect_timeout 30
  74. nb_get_retry 3
  75. delay_before_retry 2
  76. connect_port 80
  77. }
  78. }
  79. real_server 192.168.1.68 80 {
  80. weight 3
  81. TCP_CHECK {
  82. connect_timeout 30
  83. nb_get_retry 3
  84. delay_before_retry 2
  85. connect_port 80
  86. }
  87. }
  88. }
  89. [root@WEB ~]#
  90. [root@WEB ~]# service ipvsadm start
  91. [root@WEB ~]# service keepalived start
  92.  
  93. 注意:
  94. echo "1" > /proc/sys/net/ipv4/ip_forward
  95.  
  96. 二、实际服务器端的操作
  97. 将网关设置为lanvip的地址192.168.1.88
  98.  
  99. 三、lvs查看
  100.  
  101. ipvsadm -ln
  102. ipvsadm -lnc
  103. ipvsadm -l -n --stats
  104.  
  105. 调度算法:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
  106. ======================================================================================
  107. TUN模式:
  108. ======================================================================================
  109. 一、仅lvs服务器端安装
  110. yum install ipvsadm openssl-devel popt popt-devel libnl-devel
  111. cd /opt/src/
  112. tar xzvf keepalived-1.2.7.tar.gz
  113. cd keepalived-1.2.7
  114. ./configure
  115. make && make install
  116. cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
  117. cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
  118. mkdir /etc/keepalived
  119. cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
  120. cp /usr/local/sbin/keepalived /usr/sbin/
  121.  
  122. 修改/etc/keepalived/keepalived.conf文件
  123. [root@WEB ~]# cat /etc/keepalived/keepalived.conf
  124. ! Configuration File for keepalived
  125.  
  126. global_defs {
  127. notification_email {
  128. 123@123.com
  129. }
  130. notification_email_from 123@123.com
  131. smtp_server mail.123.com
  132. smtp_connect_timeout 30
  133. router_id LVS_DEVEL
  134. }
  135.  
  136. vrrp_instance VI_1 {
  137. state MASTER
  138. interface eth0
  139. virtual_router_id 52
  140. priority 100
  141. advert_int 1
  142. authentication {
  143. auth_type PASS
  144. auth_pass 1111
  145. }
  146. virtual_ipaddress {
  147. 192.168.1.88
  148. }
  149. }
  150. virtual_server 192.168.1.88 80 {
  151. delay_loop 6
  152. lb_algo lc
  153. lb_kind TUN
  154. persistence_timeout 60
  155. protocol TCP
  156.  
  157. real_server 192.168.2.18 80 {
  158. weight 3
  159. TCP_CHECK {
  160. connect_timeout 30
  161. nb_get_retry 3
  162. delay_before_retry 2
  163. connect_port 80
  164. }
  165. }
  166. real_server 192.168.3.68 80 {
  167. weight 3
  168. TCP_CHECK {
  169. connect_timeout 30
  170. nb_get_retry 3
  171. delay_before_retry 2
  172. connect_port 80
  173. }
  174. }
  175. }
  176. [root@WEB ~]#
  177. [root@WEB ~]# service ipvsadm start
  178. [root@WEB ~]# service keepalived start
  179.  
  180. 注意:
  181. 打开转发或关闭,dr/tun模式无影响
  182. echo "1" > /proc/sys/net/ipv4/ip_forward
  183.  
  184. 二、实际服务器端的操作
  185. [root@]# cat /usr/local/vip_tun.sh
  186. #!/bin/bash
  187. #srcipt to start LVS TUN realserver
  188.  
  189. VIP=192.168.1.88
  190. case "$1" in
  191.  
  192. start)
  193. #start LVS-TUN real server on this machine
  194. echo 1 >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
  195. echo 2 >/proc/sys/net/ipv4/conf/tunl0/arp_announce
  196. echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
  197. echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
  198. echo 0 >/proc/sys/net/ipv4/conf/tunl0/rp_filter
  199. echo 0 >/proc/sys/net/ipv4/conf/all/rp_filter
  200. sysctl -p >/dev/null 2>&1
  201. /sbin/modprobe ipip
  202. /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
  203. /sbin/route add -host $VIP dev tunl0
  204. /sbin/ifconfig eth0 mtu 1440
  205.  
  206. ;;
  207. stop)
  208. #stop lvs-TUN real server loopback device
  209. echo 0 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
  210. echo 0 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
  211. echo 1 > /proc/sys/net/ipv4/conf/tunl0/rp_filter
  212. echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
  213. echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
  214. echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
  215. /sbin/ifconfig tunl0 down
  216. /sbin/modprobe -r ipip
  217. /sbin/ifconfig eth0 mtu 1500
  218.  
  219. ;;
  220. status)
  221. islothere='/sbin/ifconfig tunl0 |grep $VIP'
  222. isrothere='netstat -rn |grep "tunl0"|grep $VIP'
  223. if [ ! "$islothere" -o ! "$isrothere" ];then
  224. echo "LVS-TUN real server stopped"
  225. else echo "LVS-TUN Running"
  226. fi
  227. ;;
  228. *)
  229. echo "$0: Usage: $0 {start|stop|status}"
  230. exit 1
  231. ;;
  232. esac
  233. [root@localhost ~]# /usr/local/vip.sh start|stop|status
  234.  
  235. 三、lvs查看
  236.  
  237. ipvsadm -ln
  238. ipvsadm -lnc
  239. ipvsadm -l -n --stats
  240.  
  241. 调度算法:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
  242. ======================================================================================
  243. DR模式:
  244. ======================================================================================
  245. 一、仅lvs服务器端安装
  246. yum install ipvsadm openssl-devel popt popt-devel libnl-devel
  247. cd /opt/src/
  248. tar xzvf keepalived-1.2.7.tar.gz
  249. cd keepalived-1.2.7
  250. ./configure
  251. make && make install
  252. cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
  253. cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
  254. mkdir /etc/keepalived
  255. cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
  256. cp /usr/local/sbin/keepalived /usr/sbin/
  257.  
  258. 修改/etc/keepalived/keepalived.conf文件
  259. [root@WEB ~]# cat /etc/keepalived/keepalived.conf
  260. ! Configuration File for keepalived
  261.  
  262. global_defs {
  263. notification_email {
  264.  
  265. 123@123.com
  266. }
  267. notification_email_from 123@123.com
  268. smtp_server mail.123.com
  269. smtp_connect_timeout 30
  270. router_id LVS_DEVEL
  271. }
  272.  
  273. vrrp_instance VI_1 {
  274. state MASTER
  275. interface eth0
  276. virtual_router_id 52
  277. priority 100
  278. advert_int 1
  279. authentication {
  280. auth_type PASS
  281. auth_pass 1111
  282. }
  283. virtual_ipaddress {
  284. 192.168.1.88
  285. }
  286. }
  287. virtual_server 192.168.1.88 80 {
  288. delay_loop 6
  289. lb_algo lc
  290. lb_kind DR
  291. persistence_timeout 60
  292. protocol TCP
  293.  
  294. real_server 192.168.1.18 80 {
  295. weight 3
  296. TCP_CHECK {
  297. connect_timeout 30
  298. nb_get_retry 3
  299. delay_before_retry 2
  300. connect_port 80
  301. }
  302. }
  303. real_server 192.168.1.68 80 {
  304. weight 3
  305. TCP_CHECK {
  306. connect_timeout 30
  307. nb_get_retry 3
  308. delay_before_retry 2
  309. connect_port 80
  310. }
  311. }
  312. }
  313. [root@WEB ~]#
  314. [root@WEB ~]# service ipvsadm start
  315. [root@WEB ~]# service keepalived start
  316.  
  317. 注意:
  318. 打开转发或关闭,dr/tun模式无影响
  319. echo "1" > /proc/sys/net/ipv4/ip_forward
  320.  
  321. 二、实际服务器端的操作
  322. [root@localhost ~]# cat /usr/local/vip.sh
  323. #!/bin/bash
  324. # Script to start LVS DR real server.
  325. # description: LVS DR real server
  326. . /etc/rc.d/init.d/functions
  327. VIP=192.168.1.88
  328. #host=`/bin/hostname`
  329. case "$1" in
  330. start)
  331. # Start LVS-DR real server on this machine.
  332. /sbin/ifconfig lo down
  333. /sbin/ifconfig lo up
  334. echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  335. echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  336. echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  337. echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  338. /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  339. /sbin/route add $VIP dev lo:0
  340. ;;
  341. stop)
  342. # Stop LVS-DR real server loopback device(s).
  343. /sbin/ifconfig lo:0 down
  344. echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  345. echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
  346. echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
  347. echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
  348. ;;
  349. status)
  350. # Status of LVS-DR real server.
  351. islothere=`/sbin/ifconfig lo:0 | grep $VIP`
  352. isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
  353. if [ ! "$islothere" -o ! "isrothere" ];then
  354. # Either the route or the lo:0 device
  355. # not found.
  356. echo "LVS-DR real server Stopped."
  357. else
  358. echo "LVS-DR real server Running."
  359. fi
  360. ;;
  361. *)
  362. # Invalid entry.
  363. echo "$0: Usage: $0 {start|status|stop}"
  364. exit 1
  365. ;;
  366. esac
  367. [root@localhost ~]# /usr/local/vip.sh start|stop|status
  368.  
  369. 三、lvs查看
  370.  
  371. ipvsadm -ln
  372. ipvsadm -lnc
  373. ipvsadm -l -n --stats
  374.  
  375. 调度算法:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
  376.  
  377. 注意:
  378. 1.TUN模式使用的IP都要是公网IP.
  379. 2.VIPport要和后端realserverport保持一致,但是不会影响VIP本机的port被其他服务使用.
  380.  
  381. 转载自:http://www.gaizaoren.com/archives/998
  382.   

 

附加:
LVS可以使用iptables同时做多个服务的负载均衡并实现持久化连接,使用iptables对包打上标签之后再进行匹配处理。配置如下:

[转载]LVS+Keepalived之三大模式的更多相关文章

  1. LVS + KEEPAlived 配置 DIR模式

    1 .1 Lvs LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目 ...

  2. 借助LVS+Keepalived通过DR模式实现负载均衡

    1.测试环境4台server,全部初始化一下,该关的关了 # vim /etc/hosts 192.168.1.101 lvs-master DIP 192.168.1.102 lvs-slave D ...

  3. LVS+keepalived 的DR模式的两种做法

    LVS DR模式搭建 准备工作 三台机器: dr:192.168.13.15 rs1:192.168.13.16 rs2: 192.168.13.17 vip:192.168.13.100 修改DR上 ...

  4. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)

    一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...

  5. LVS+Keepalived 高可用环境部署记录(主主和主从模式)

    之前的文章介绍了LVS负载均衡-基础知识梳理, 下面记录下LVS+Keepalived高可用环境部署梳理(主主和主从模式)的操作流程: 一.LVS+Keepalived主从热备的高可用环境部署 1)环 ...

  6. DR模式下的高可用的LVS(LVS+keepalived)

    一.keepalived 在DR模式下,使用Keepalived实现LVS的高可用.Keepalived的作用是检测服务器的状态,如果有一台web服务器 宕机,或工作出现故障,Keepalived将检 ...

  7. CentOS高可用集群LVS+Keepalived(DR模式)

    操作系统:CentOS6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是 ...

  8. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  9. 借助LVS+Keepalived实现负载均衡(转)

    原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...

随机推荐

  1. Mysql Order By 字符串排序,mysql 字符串order by

    Mysql Order By 字符串排序,mysql 字符串order by ============================== ©Copyright 蕃薯耀 2017年9月30日 http ...

  2. [知了堂学习笔记]_记一次BootStrap的使用

    效果图如下: 一.简介: 什么是Bootstrap?  Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架. 什么是响应式布局? 引用一句Bootstrap的标题语 " ...

  3. linux ubuntu 远程ssh登录

    当我们有一个Linux系统的时候,可能用到远程ssh登录,当你是没有界面的系统的时候也会用到,远程操作起来比较方便. 首先我们的电脑默认是不安装ssh的,就是无法通过ssh远程连接,所以要安装shh. ...

  4. 2017-07-12(touch df du)

    touch 作用:修改文件时间或者创建新文件 文件三个主要的变动时间 mtime 当文件的内容发生改变的时候,就会更新这个时间 ctime 当文件的权限与属性发生改变的时候,就会更新这个时间 atim ...

  5. Django 中 makemigrations、migrate时 No changes detected

    Django创建的项目中,需要更改.增加.删除表中的某些属性,性急直接把之前数据库表删除了,之后再执行: python manage.py makemigrations python manage.p ...

  6. Linux指令--ln

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...

  7. 带有 thead、tbody 以及 tfoot 元素的 HTML 表格

    设置样式: <head><style type="text/css">thead {color:green}tbody {color:blue;height ...

  8. Java NIO 之 Buffer

    Java NIO 之 Buffer Java NIO (Non Blocking IO 或者 New IO)是一种非阻塞IO的实现.NIO通过Channel.Buffer.Selector几个组件的协 ...

  9. Linux系统中常用操作命令

    常用指令 ls        显示文件或目录     -l          列出文件详细信息l(list)     -a         列出当前目录下所有文件及目录,包括隐藏的a(all)mkdi ...

  10. win10下端口被占用解决办法

    调试socket通信的时候,如果程序未正常结束,重新启动会报端口被占用的错误. 一 查找被占用的端口 解决办法如下:按win+R输入cmd打开控制台,输入 netstat -ano|findstr 8 ...