LVS負載均衡集羣

LVS(linux vritual service,虛擬服務器)也叫作調度器。它能夠作至少三種的集羣方式:負載均衡集羣LB(load balance cluster),高可用集羣HA(high Availability cluster),高性能運算集羣HPC(high Performance Computer Cluster)。html

LVS負載均衡分爲三層:調度器、服務器池、nfs存儲設備。在調度器上有兩個網卡,一個是外網的網卡,一個是內網的網卡。外網卡通常叫作vip(virtual IP虛擬IP)跟外網鏈接的。內網卡叫dip(destination IP)服務器池的網卡叫rip(real ip真實IP) 。linux

LVS一共有三種實現方式:NAT轉換(Network Address translation)、IP隧道(IP Tunnel)、直接路由(direct Routing),在這裏面。NAT轉換的方式更加安全。不足是併發量不大。還容易卡,易損壞機器。由於用戶訪問是經過調度器的外網進行訪問,而後由內網卡進行算法指定轉發。最後獲得的結果再由調度器進行迴應。web

算法:算法

  算法一共由四種:在這裏咱們就介紹四種;其餘的具體請上百度查看。vim

 rr 輪詢算法 就是服務器池裏面的服務器,每個都輪一次。centos

 wrr 加權算法: 這個是按照不平等的硬件設備來算的。每臺設備性能不同,算法就不同,好比:性能好的可讓他處理兩次。性能差的能夠處理一次,這樣也不會卡。瀏覽器

 Lc 最小鏈接數:根據真實服務器已創建的鏈接數進行分配,將收到的訪問請求優先分配給鏈接數最少的節點。安全

Wlc 加權最小鏈接數:在服務器節點性能差別較大的狀況下。能夠以真實服務器自動調整權重。服務器

NAT負載均衡集羣搭建網絡

  1. 準備好最少三臺服務器,一臺做爲調度器,兩臺做爲web服務器,組成一個地址池。
  2. 調度器雙網卡:(dip vmnet 4)192.168.253.6 (vip vmnet 8)152.52.25.1
  3. Web服務器兩臺,在內網(rip vmnet 4) 一臺192.168.253.7 網關:192.168.253.6

                 在內網(rip vmne4) 一臺 192.168.253.8 網關:192.168.253.6

網卡配置,給第二塊網卡添加IP地址,先ip addr查看第二塊網卡的名稱,而後再將ens33複製一份爲第二塊網卡的配置文件。記得要改網卡名稱,刪除uuid號。

調度器:

      modprobe ip_vs

   注:加載ipvs模塊

      cat /proc/net/ip_vs

   注:查看ip_vs版本信息

      Yum -y install ipvsadm

   注:安裝ipvsadm

      ipvsadm –A –t 152.52.25.1:80 –s rr

注:-A添加虛擬服務器 –t 指定vip地址以及端口 –s 指定算法

  ipvsadm –a –t 152.52.25.1:80 –r 192.158.253.7:80 –m –w 1

  ipvsadm –a –t 152.52.25.1:80 –r 192.168.253.8:80 –m –w 1

注:-a指定真實服務器 –r指定rip地址及端口 –m指定算法爲輪詢(若是這裏是 –g指定DR模式和-i TUN模式),-w 用來設置權重的,1表示每一個web服務器輪一次。

  關閉防火牆、selinux:

  Systemctl stop firewalld

  Iptables –F

   Set enforce 0

  開啓nat路由轉發功能:

Sed –i ‘$anet.ipv4.ip_forward = 1’ /etc/sysctl.conf

注:若是這個文件裏由這個,建議進去本身修改

Ipvsadm-save 保存。也能夠保存在一個文件裏。

Ipvsadm-save > /etc/sysconfig/ipvsadm

可使用命令查看:ipvsadm –ln 後面加一個c能夠查看訪問的狀況。

NFS共享文件系統:

    NFS是一種基於TCP/IP傳輸的網絡文件系統,經過使用NFS協議,客戶機能夠像訪問本地目錄同樣訪問遠程服務器中的共享資源,對於大多數負載均衡服務器來書,使用NFS協議來共享數據存儲是比較常見的作法。

使用NFS發佈共享資源:

NFS服務的實現依賴於RPC(Remote Process Call,遠程過程調用)機制,以完成遠程到本地的映射過程,在centos 7系統中,須要安裝nfs-utils、rpcbind軟件包來提供NFS共享服務,前者用於NFS共享發佈和訪問,後者用於rpc支持。Rpcbind能夠在client上用,它就是爲client準備的。nfs只能在服務器上用,可是也須要在client端安裝軟件包。

注:只能先啓動rpcbind,再啓動nfs。

    NFS的安全性很是弱,全部它不能在公網中使用。

1.安裝rpcbind、nfs-utils。而後設置開機自啓。

   Yum –y install nfs-utils rpcbind

   Systemctl enable rpcbind

   Systemctl enable nfs

2.建立一個用於共享文件的目錄

  mkdir –p /opt/wwwroot

  1. 在/etc/exports裏面更改內容。exports是nfs的配置文件,文件默認爲空;設置共享資源時所設置的文件格式爲「共享目錄位置 客戶機ip地址(權限選項)」

注:客戶機的IP地址也能夠是單個,也能夠是一個網段(如192.168.253.0/24),也能夠是單獨的兩個地址(如「192.168.253.1(權限選項)192.168.253.2(權限選項)」)

 

   內容:/opt/wwwroot  192.168.253.0/24(rw,sync,no_root_squash)

 

權限內容:rw 可讀可寫、sync表示同步寫入、no_root_squash 表示當客戶機以root身份訪問時,賦予本地root的權限。這裏默認時root_squash,將做爲nfsnobody用戶降權對待。

  1. 啓動NFS服務程序:

      Systemctl start rpcbind

      Systemctl start nfs

      Netstat –anpt |grep rpcbind

  1. 查看本機發布的nfs共享目錄:

     Showmount –e

  內容爲:Export list for localhost.localdomain:

          /opt/wwwroot 192.168.253.0/24

  1. 在客戶機上也安裝NFS做爲訪問使用;在客戶機上只須要啓動rpcbind服務就能夠了,指定完之後,用「showmount –e服務器地址」 查看服務器都共享了哪些目錄。最後用mount 192.168.253.9:/opt/wwwroot  /var/www/html (上面的地址是服務器地址)。

     Yum –y install rpcbind nfs-utils

     Systemctl enable rpcbind

     Systemctl start rpcbind                                     

             兩臺web服務器上配置

 Web1地址爲:192.158.253.7 網關爲192.168.253.6

 Web2地址爲:192.168.253.8 網關爲192.168.253.6

 用yum安裝httpd服務,而後在首頁寫一點內容用於測試。

記得關防火牆、selinux

 

測試機:

  模擬外網:152.52.25.2

不須要網關,而後用網頁進行訪問。輸入的地址是vip的地址。訪問的內容是兩臺web服務器的內容,並且是來回輪着顯示內容。它這個默認的網頁保持時間爲60秒,在60秒以內,切換的都仍是這個地址。

 

 

 

                       NFS共享存儲服務

  NFS共享存儲服務就像是一個容器同樣。裏面用來存儲東西。而後服務器在經過掛載這個容器,實現服務內容的一致性。好比:咱們在裏面存放了html的文件。這個文件是須要給別人訪問的,因此咱們能夠給web服務器掛載,而後經過訪問web服務器就能看到它的內容。

  基於NET負載均衡集羣搭載NFS共享存儲服務。使全部的web服務器的內容都保存一致

開一臺centos做爲NFS共享存儲服務。

  咱們實現NFS共享存儲服務,須要依賴RPC(Remote Procaess Call,遠端過程調用)機制,已完成遠程到本地的映射過程。在centos裏面,咱們須要安裝兩個插件,nsf-utils、rpcbind;

前面的用於NFS共享發佈和訪問 ,後者用於RPC支持。

  注意:NFS只能用在內網,由於它沒有一個安全的機制,放在外網垂手可得就被別人給破了。

Yum –y install nfs-utils rpcbind

Systemctl enable nfs-utils

Systemctl enable rpcbind

Mkdir –p /opt/wwwroot

Vim /etc/exports

在裏面編輯:

/opt/wwwroot 192.168.253.0/24(rw,sync,no_root_squash)

注:/opt/wwwroot 是須要發佈訪問的目錄  IP地址是容許訪問的地址,括號裏面的rw表示可讀可寫,sync表示同步寫入,no_root_squash表示當用戶用本身的root用戶訪問時,在這裏也一樣是已NFS的root權限(默認是root_squash,將做爲nfsnobody用戶降權對待)

當須要將同一個目錄共享給不一樣的客戶機,且分配不一樣的權限時,只要以空格分隔指定多個「客戶機(權限選項)」便可。例如,如下操做將/var/ftp/public 目錄共享給兩個客戶機。並分別給只讀和讀寫權限。

 vim /etc/exports

 /var/ftp/public 192.168.253.10(ro) 192.168.253.11(rw)

======++++++++++++++++++++++++++++++++================

Systemctl start rpcbind

Systemctl start nfs

注意:開啓的順序不能亂,必須先開啓rpcbind,才能開啓nfs,否則會出錯。

Netstat –anpt |grep rpcbind

查看本機發布的nfs共享目錄:

  Showmount –e

客戶機配置:

  yum –y install rpcbind nfs-tuils

 systemctl enable rpcbind

systemctl start rpcbind

開啓rpcbind,由於須要它支持RPC,至於nfs就不須要了,由於他是nfs共享存儲服務器,這是客戶機配置,可是必需要有它能夠,因此咱們只安裝行。

showmount –e nfs地址(192.168.253.9)

經過上面的這條命令,咱們能夠查看到nfs的一些共享信息,若是看不到,就是出錯了,請看看網絡是否是在同一個網段以內。

接下來就是最後一步了,掛載:

Mount 192.168.253.9(nfs地址)/opt/wwwroot /var/www/html

將它掛載到web服務器的網頁存放目錄裏面,

最後就是往裏面添加網頁信息了,在web服務器上添加也能夠,在nfs服務器上添加均可以,由於剛纔給的是讀寫權限,因此,均可以寫入,也能夠讀。

 

 

 

 

 

 

 

                 基於DR作負載均衡集羣

 

環境:

LVS調度器——DR模式
調度服務器一臺:Linux—CentOS7.4
IP地址:192.168.238.6
Web服務器兩臺:Linux—CentOS7.4
IP地址:192.168.253.7(SERVER AA)
IP地址:192.168.253.8(SERVER BB)
客戶端一臺:以win7爲例,用於測試驗證
IP地址:192.168.238.222

192.168.238.6虛擬機
systemctl stop firewalld //關閉防火牆
setenforce 0 //關閉監控
modprobe ip_vs
yum install ipvsadm -y
ipvsadm -v

將ifcfg-ens33的網卡cp一份,若是ens32就cp ens32.

cp ifcfg-ens33 ifcfg-ens33:0

在ens33:0中,咱們設置的是vip的地址,192.168.238.5

                                掩碼:255.255.255.0

192.168.238.7虛擬機

systemctl stop firewalld//關閉防火牆

setenforce 0 //關閉監控

yum –y install httpd

 

將ifcfg-lo的網卡cp一份。

[root@localhost ~]#cp ifcfg-lo ifcfg-lo:0

ifcfg-lo:0裏面編寫vip地址

 

[root@localhost ~]#vim /etc/rc.local

........

/sbin/route add –host 192.168.238.5 dev lo:0

[root@localhost ~]# route add –host 192.168.238.5 dev lo:0

[root@localhost ~]#vim /etc/sysctl.conf

...........忽略

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ifnore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

[root@localhost ~]#sysctl –p

[root@localhost ~]#echo 「<h1>www.test1.com</h1>」 > \ /var/www/html/index.html

[root@localhost ~]#systemctl enable httpd

[root@localhost ~]#systemctl start httpd

其餘的web服務器都這樣配。

測試機訪問:

 在win 7上用瀏覽器進行訪問。

相關文章
相關標籤/搜索