日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

發(fā)布時間:2025/3/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

18.6 負載均衡集群介紹

實現(xiàn)負載均衡集群的軟件有:LVS、Keepalived、Nginx、haproxy等。其中LVS屬于四層(網(wǎng)絡OSI模型);Nginx屬于七層;haproxy既可以認為是四層,也可以當做是七層使用。
LVS、haproxy這種四層負載均衡可以分發(fā)除80端口以外的通信,如MySQL-3306;而Nginx僅僅支持http,https,mail。
相對來說,LVS這種四層的更加穩(wěn)定,能承受更多的請求,而Nginx這種七層的更加靈活,能實現(xiàn)更多的個性化需求。

18.7 LVS介紹

LVS是基于tcp/ip做的路由和轉(zhuǎn)發(fā),穩(wěn)定性和效率很高,LVS最新版本是基于Linux內(nèi)核2.6。LVS常見的模式有三種:NAT、DR、IP Tunnel。LVS架構(gòu)中有一個核心角色叫分發(fā)器(Load Balance),用于分發(fā)客戶的各種請求,另外還有諸多服務器(real server,簡稱rs),用于處理用戶各種請求。

NAT模式

  • 這種模式借助iptables的nat表來實現(xiàn)
  • 用戶的請求到分發(fā)器后,通過預設的iptables規(guī)則,把請求的數(shù)據(jù)包轉(zhuǎn)發(fā)到后端的rs上去
  • rs需要設定網(wǎng)關(guān)為分發(fā)器的內(nèi)網(wǎng)ip
  • 用戶請求的數(shù)據(jù)包和返回給用戶的數(shù)據(jù)包全部經(jīng)過分發(fā)器,所以分發(fā)器成為瓶頸
  • 在nat模式中,只需要分發(fā)器有公網(wǎng)ip即可,所以比較節(jié)省公網(wǎng)ip資源

在該模式中,load balancer是限制該架構(gòu)處理用戶請求的一個瓶頸,所以該模式比較適合小模式的集群(服務器rs在10臺以內(nèi));該模式的優(yōu)勢是節(jié)省公網(wǎng)資源。

IP Tunnel模式

  • 這種模式,需要有一個公共的IP配置在分發(fā)器和所有rs上,我們把它叫做vip
  • 客戶端請求的目標IP為vip,分發(fā)器接收到請求數(shù)據(jù)包后,會對數(shù)據(jù)包做一個加工,會把目標IP改為rs的IP,這樣數(shù)據(jù)包就到了rs上
  • rs接收數(shù)據(jù)包后,會還原原始數(shù)據(jù)包,這樣目標IP為vip,因為所有rs上配置了這個vip,所以它會認為是它自己

DR模式

  • 這種模式,也需要有一個公共的IP配置在分發(fā)器和所有rs上,也就是vip
  • 和IP Tunnel不同的是,它會把數(shù)據(jù)包的MAC地址修改為rs的MAC地址
  • rs接收數(shù)據(jù)包后,會還原原始數(shù)據(jù)包,這樣目標IP為vip,因為所有rs上配置了這個vip,所以它會認為是它自己

MAC(Media Access Control或者Medium Access Control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網(wǎng)絡設備的位置。在OSI模型中,第三層網(wǎng)絡層負責 IP地址,第二層數(shù)據(jù)鏈路層則負責 MAC地址。因此一個主機會有一個MAC地址,而每個網(wǎng)絡位置會有一個專屬于它的IP地址。MAC地址是網(wǎng)卡決定的,是固定的。

ARP(Address Resolution Protocol)地址解析協(xié)議,是根據(jù)IP地址獲取物理地址的一個TCP/IP協(xié)議。
OSI模型把網(wǎng)絡工作分為七層,IP地址在OSI模型的第三層,MAC地址在第二層,彼此不直接打交道。在通過以太網(wǎng)發(fā)送IP數(shù)據(jù)包時,需要先封裝第三層(32位IP地址)、第二層(48位MAC地址)的報頭,但由于發(fā)送時只知道目標IP地址,不知道其MAC地址,又不能跨第二、三層,所以需要使用地址解析協(xié)議。使用地址解析協(xié)議,可根據(jù)網(wǎng)絡層IP數(shù)據(jù)包包頭中的IP地址信息解析出目標硬件地址(MAC地址)信息,以保證通信的順利進行。

18.8 LVS的調(diào)度算法

  • 輪詢 Round-Robin ? ?rr
  • 加權(quán)輪詢 Weight Round-Robin ? ?wrr
  • 最小連接 Least-Connection ? ? ?lc
  • 加權(quán)最小連接 Weight Least-Connection ? ?wlc
  • 基于局部性的最小連接 Locality-Based Least Connections ? ?lblc
  • 帶復制的基于局部性最小連接 Locality-Based Least Connections with Replication ? ?lblcr
  • 目標地址散列調(diào)度 Destination Hashing ? ?dh
  • 源地址散列調(diào)度 Source Hashing ? ?sh

常用的是前面四種算法。

18.9-18.20 LVS NAT模式搭建

準備工作

網(wǎng)絡準備

?三臺機器

? 分發(fā)器,也叫調(diào)度器(簡寫為dir)

? 內(nèi)網(wǎng):230.135,外網(wǎng):118.147(vmware僅主機模式)

? rs1

? 內(nèi)網(wǎng):230.130,設置網(wǎng)關(guān)為230.135

? rs2

?內(nèi)網(wǎng):2350.145,設置網(wǎng)關(guān)為230.135

防火墻

?三臺機器上都執(zhí)行執(zhí)行

? systemctl stop firewalld; systemc disable firewalld

? systemctl start ?iptables-services; iptables -F; service iptables save

關(guān)閉SELinux:setenforce 0

保險起見最好改下配置文件改成disabled

[root@test ~]# vim /etc/selinux/config

以下操作在real1(130)和real2(145)中進行:

[root@cham1 ~]# yum install -y iptables-services [root@cham1 ~]# iptables -F [root@cham1 ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 確定 ][root@test ~]# yum install -y iptables-services [root@test ~]# iptables -F [root@test ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 確定 ]

說明:?進行該設置的原因是NAT模式是基于防火墻nat表的一種模式,所以會使用iptables規(guī)則。

是為了讓它條用一個空規(guī)則,等會配置一條新的規(guī)則。

開始搭建

配置director (135):

腳本解釋 #! /bin/bash # director 服務器上開啟路由轉(zhuǎn)發(fā)功能 echo 1 > /proc/sys/net/ipv4/ip_forward # 關(guān)閉icmp的重定向 echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects # 注意區(qū)分網(wǎng)卡名字,adai的兩個網(wǎng)卡分別為ens33和ens37 echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects # director 設置nat防火墻 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j MASQUERADE # director設置ipvsadm規(guī)則 IPVSADM='/usr/sbin/ipvsadm' $IPVSADM -C #-C=clear,清除規(guī)則 $IPVSADM -A -t 192.168.75.128:80 -s rr #-A:=add,添加規(guī)則;-t:=tcp;-s 指定算法; #在此可以添加-p:指定超時時間(解決session問題:保證同一請求被分發(fā)到同一rs上) #因為添加-p選項后會影響測試效果,所以在此不加該參數(shù)(注:時間不能設置為0) $IPVSADM -a -t 192.168.75.128:80 -r 192.168.8.134:80 -m -w 1 $IPVSADM -a -t 192.168.75.128:80 -r 192.168.8.135:80 -m -w 1 #-a:=add,增加nat架構(gòu)中的rs;-r:指定rs的IP;-m:指定LVS模式為NAT(masquerade) #-w:=weight,指定權(quán)重

開始搭建

安裝ipvsadm工具: [root@cham002 ~]# yum install -y ipvsadm配置ipvsadm腳本: [root@cham002 ~]# vim /usr/local/sbin/lvs_nat.sh#! /bin/bash # director 服務器上開啟路由轉(zhuǎn)發(fā)功能 echo 1 > /proc/sys/net/ipv4/ip_forward # 關(guān)閉icmp的重定向 echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects # 注意區(qū)分網(wǎng)卡名字,的兩個網(wǎng)卡分別為ens33和ens37 echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects # director 設置nat防火墻 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.230.0/24 -j MASQUERADE # director設置ipvsadm IPVSADM='/usr/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.118.147:80 -s lc -p 3 $IPVSADM -a -t 192.168.118.147:80 -r 192.168.230.130:80 -m -w 1 $IPVSADM -a -t 192.168.118.147:80 -r 192.168.230.145:80 -m -w 1執(zhí)行該腳本: [root@cham002 ~]# sh /usr/local/sbin/lvs_nat.sh #注:執(zhí)行該腳本時無錯誤輸出說明沒問題。查看ipvsadm規(guī)則 [root@cham002 ~]# 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.118.147:80 lc persistent 3-> 192.168.230.130:80 Masq 1 0 0 -> 192.168.230.145:80 Masq 1 0 0

配置rs:

在兩臺rs上安裝Nginx,并分別設置其主頁用來區(qū)分兩臺機器。?

130 [root@cham1 ~]# yum install -y nginx [root@cham1 ~]# yum install -y epel-release(如果沒有nginx安裝包需要安裝擴展源) 編輯rs1主頁: [root@cham1 ~]# vi /usr/share/nginx/html/index.html [root@cham1 ~]# curl localhost cham 130145這臺做keepalivad的時候已經(jīng)安裝了 編輯rs2主頁: [root@test ~]# vim /usr/share/nginx/html/index.html [root@test ~]# curl localhost cham 145 backup backup.

測試

訪問公網(wǎng)IP:192.168.118.147。瀏覽器可能有緩存問題。

[root@cham002 ~]# curl 192.168.118.147 cham 145 backup backup. [root@cham002 ~]# curl 192.168.118.147 cham 130[root@cham002 ~]# curl 192.168.118.147 cham 145 backup backup. [root@cham002 ~]# curl 192.168.118.147 cham 130[root@cham002 ~]# curl 192.168.118.147 cham 145 backup backup. [root@cham002 ~]# curl 192.168.118.147 cham 130[root@cham002 ~]# curl 192.168.118.147 cham 145 backup backup. [root@cham002 ~]# curl 192.168.118.147 cham 130[root@cham002 ~]# curl 192.168.118.147 cham 145 backup backup. [root@cham002 ~]# curl 192.168.118.147 cham 130[root@cham002 ~]# curl 192.168.118.147 cham 145 backup backup. [root@cham002 ~]# curl 192.168.118.147 cham 130

?

轉(zhuǎn)載于:https://my.oschina.net/u/3708120/blog/1615426

總結(jié)

以上是生活随笔為你收集整理的18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。