91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keepalive+LVS

發布時間:2020-07-22 12:31:10 來源:網絡 閱讀:539 作者:yinxingyouyou 欄目:建站服務器

面試必考

keepalived的功能,腳本也能實現

keepalive,主要是有VRRP

基于IP(第3層網絡層),port(第4層傳輸層),應用層(第7層),保證服務正常運行

master會定時給bakcup發廣播包,不發了backup就認為master掛了,重新選舉,這個只能檢查本機,重啟本機,要配合LVS才能均衡,

直接yum install -y keepalived ipvsadm

或者源碼安裝

yum install kernel kernel-devel popt-devel openssl-devel gcc gcc-c++ -y &&

wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz &&

tar -zxf keepalived-1.2.1.tar.gz && cd keepalived-1.2.1;


./configure --with-kernel-dir=/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/

mkdir /etc/keepalived

\cp /usr/local/sbin/keepalived /usr/sbin/keepalived
\cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived
\cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/keepalived
\cp -r /usr/local/etc/keepalived /etc/keepalived


cd /etc/keepalived

改conf文件如下,配置文件分三部分

第一部分全局配置,主要是改郵箱和路由ID,兩個機器要一樣

第二部分是配置虛擬IP,

第三部分寫檢查本機哪些服務

! Configuration File for keepalived  #配置全局變量,全局主要是改郵件,發給誰、從哪里發

global_defs {  

   notification_email {  

      wgkgood@139.com  #配置接收報警郵件

   }  

   notification_email_from wgkgood@139.com  #配置誰發郵件

   smtp_server 127.0.0.1  

   smtp_connect_timeout 30  

   router_id LVS_DEVEL  #路由id

}  

# VIP1  VRRP協議 Config這一段的配置就是生成虛擬路由器

vrrp_instance VI_1 {  

    state BACKUP    #master和backup,比優先級更優先

    interface eth0  #發廣播包是用哪個網卡發

    lvs_sync_daemon_inteface eth0  

    virtual_router_id 151  #兩臺的路由id是一樣的

    priority 100  #優先級

    advert_int 5  

    nopreempt  #不搶占,就選優先級高也不搶占,這條加或不加

    authentication {  

        auth_type PASS  

        auth_pass 2222  

    }  

    virtual_ipaddress {  ##虛擬ip地址,特別重要,可以回車配多個

        192.168.1.204

    }  

       notify_master #當是matser執行這個腳本

       notify_backup 

}  

##這里寫檢查本機什么服務,只能檢查本機

virtual_server 192.168.1.204 3306 {  

    delay_loop 6     

    lb_algo wrr     

    lb_kind DR    

    persistence_timeout 60     

    protocol TCP          

    real_server 192.168.1.104 3306 {  

        weight 100         

        notify_down /data/sh/mysql.sh  #當down了就執行這個腳本

       notify_up也可以


        TCP_CHECK {  

        connect_timeout 10  #連接超時時間

        nb_get_retry 3  #重連次數

        delay_before_retry 3  #重連間隔時間

        connect_port 80  #健康檢查的端口的端口

        }  

    }  

}


然后重啟/etc.init.d/keepalived restart

tail -fn 100 /var/log/message

如果沒有IPVS這個模塊,modprobe ip_vs加載這個模塊

通過ip addr list 可以看到虛擬IP配在了eth0上

        TCP_CHECK {  

        connect_timeout 10  #連接超時時間

        nb_get_retry 3  #重連次數

        delay_before_retry 3  #重連間隔時間

        connect_port 80  #健康檢查的端口的端口

        }  

1、上面是基于端口。基于2、應用:

注意:使用了腳本監控Nginx或者MYSQL,不需要虛擬服務器設置塊,也就是端口檢查塊。

vrrp_script chk_nginx {

    script "/data/script/nginx.sh"          #監控服務腳本;

    interval 2                    #檢測時間間隔(執行腳步間隔)

    weight 2

}


#實例1 

vrrp_instance VI_1 {  

    state MASTER    #master和backup,比優先級更優先

    interface eth0  #發廣播包是用哪個網卡發

    lvs_sync_daemon_inteface eth0  

    virtual_router_id 151  #兩臺的路由id是一樣的

    priority 100  #優先級

    advert_int 5  

    nopreempt  #不搶占,就選優先級高也不搶占,這條加或不加

    authentication {  

        auth_type PASS  

        auth_pass 2222  

    }  

#實例2

vrrp_instance VI_2 {  

    state BACKUP    #master和backup,比優先級更優先

    interface eth0  #發廣播包是用哪個網卡發

    lvs_sync_daemon_inteface eth0  

    virtual_router_id 152  #兩臺的路由id是一樣的

    priority 100  #優先級

    advert_int 5  

    nopreempt  #不搶占,就選優先級高也不搶占,這條加或不加

    authentication {  

        auth_type PASS  

        auth_pass 2222  

    }  

track_script {                          #以腳本為監控chk_nginx

        chk_nginx

    }

    virtual_ipaddress {             #設置vip

        192.168.111.188

    }

}



#其中/data/script/nginx.sh里的內容:

#!/bin/bash

NUM=`ps -C nginx --no-header |wc -l`

if [ $NUM -eq 0 ];then

/etc/init.d/keepalived stop

sleep 30

/usr/local/nginx/sbin/nginx

/etc/init.d/keepalived start

fi

###

3、基于URL

把TCP_CHECK那部分改成

              HTTP_GET{

              url{                  #檢查url,可以指定多個

              path /

              digest ATM       #檢查后的摘要信息

              status_code 200       #檢查的返回狀態碼,

                 }


從上

把state改成backup,priority改成90,檢查的服務器改成本機


然后就可以用LAP連虛擬服務器的mysql了


keepalived的核心:

當端口停了,執行腳本,down.sh

然后VIP才會切到從上

腳本內容:

/etc/init,d/keepalived stop

sleep 5

/etc/init,d/keepalived start

監控的服務 restart

從上也要有這個腳本

這個腳本要給o+x權限

互為主主

兩個實例兩個虛擬服務器,各一個VIP,互為主備,路由id不能一樣

Heartbeat

兩臺機器必須要用網線連起來

LVS

基于IP實現負載均衡是目前負載調度器中效率最高的

有NAT,TUN,DR模式

有算法:RR(round-robin)、LC(least_connection)、W(weight)RR、WLC模式等(RR為輪詢模式,LC為最少連接模式)

NAT方式:VIP所在主機可以為公網IP,進出都要做個地址轉換,效率比較低。用戶請求LVS到達director(主管),director將請求的報文的目標地址和端口改成后端的realserver地址和端口,請求到達realserver,realserver將數據返給director,director再把數據返給用戶(兩次請求都要經過director),訪問量大的話director會成為瓶頸。后端不能超過20臺。  

DR原理(將VIP配在后端realserver上):IP為內網,用戶請求LVS到達director,director將請求目標的MAC地址改成realserver的MAC地址,目標IP還是VIP,源IP還是用戶IP,然后director將報文發送給realserver,realserver發現目標IP和MAC都是自己。如果用戶跟realserver不在一個網段,則通過網關返回給用戶,如果在同一網段,將請求直接返給用戶。 效率最高,互聯網企業。這個要求LVS和后端服務器在一個網絡里,不然沒法實現VIP配在后端realserver上。

TUN原理:跟DR類似,也是改變封裝MAC地址,多了一層隧道加密,比DR效率略低,比NAT高。


DR模式,后端帶幾百臺nginx

cd /usr/src/

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

版本不同需要的這個軟件版本可能也不同

yum install kernel kernel-devel gcc gcc-c++ -y

ln -s /usr/src/kernels/2.6* /usr/src/linux

tar xzvf ipvsadm-1.24.tar.gz &&cd ipvsadm-1.24 && make && make install

ipvsadm看安裝成功沒

參數說明:

-A 增加一臺虛擬服務器地址。-D刪除

-t  虛擬服務器提供的是tcp服務。

-s  使用的調度算法。

-a  在虛擬服務器中增加一臺后端真實服務器。

-r  指定真實服務器地址。

-m 設置當前轉發方式為NAT模式;-g為直接路由模式;-i  模式為隧道模式。

-w 后端真實服務器的權重。

LVS安裝完畢之后,需要進行配置,配置的步驟有兩步,第一步為定義端口服務,第二步為添加realserver后端服務。

ipvsadm -A -t 192.168.1.200:80 -s rr  #添加VIP

 

ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.103 -g -w 2


在后端realserver上,在回環地址上配上VIP

VIP=192.168.1.201

ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

/sbin/route add -host $VIP dev lo:0

這樣綁重啟了就失效了

ipvsadm-save >/tmp/lvs.txt保存LVS配置

ipvsadm-restore </tmp/lvs.txt回復LVS配置

route -n

看網關

然后抑制ARP,不抑制的話所有賠了VIP的都可以響應了

客戶端抑制ARP腳本,企業里客戶端可能不止一個VIP,就把lo:0換成1 2 3 4

vim auto_realserver.sh

#!/bin/sh

#LVS Client Server

VIP=192.168.2.200

case  $1  in                                                                                                                                                                                                                                                    

start)                                                                                                                                                                                                                                            

    ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

    /sbin/route add -host $VIP 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 >/dev/null 2>&1

    echo "RealServer Start OK"

    exit 0

;;                                                                                                                                                                                                                                         

stop)

    ifconfig lo:0 down

    route del $VIP >/dev/null 2>&1

    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

    echo "RealServer Stoped OK"

    exit 1

;;

*)

    echo "Usage: $0 {start|stop}"

;;

esac

###

壓測工具http-tools

ab -c 5000 -n 10000 http://192.168.1.200/

watch ipvsadm -L -n 可以實時看壓測

keepalived+LVS或者腳本檢查+LVS

服務端配置keepalived即可,兩個LVS服務器。realserver客戶端執行腳本
安裝keepalived

寫入配置文件

! Configuration File for keepalived

 

global_defs {

   notification_email {

      wgkgood@163.com

   }

   notification_email_from wgkgood@163.com

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

# VIP1

vrrp_instance VI_1 {

    state MASTER   

    interface eth0

    lvs_sync_daemon_inteface eth0

    virtual_router_id 51

    priority 100

    advert_int 5

    nopreempt

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.1.200   

    }

}

virtual_server 192.168.1.200 80 {

    delay_loop 6    

    lb_algo wrr    

    lb_kind DR   #這里配轉發方式

#    persistence_timeout 60    #這里配置會話保持時間

    protocol TCP         

 

    real_server 192.168.1.102 80 {

        weight 100        

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

    real_server 192.168.1.103 80 {

        weight 100

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        

        }

    }

}

################

realserver端

tcpdump -nn port 80  nn是顯示網絡地址

tcpdump -nn port 22 and host 192.168.0.116看本機有哪些連22端口的

LVS排錯

ping網站域名,看能否解析到IP

登錄LVS服務器,ipvsadm -Ln查看信息,tail -fn /var/log/messages看報錯

看zabbix監控服務器有沒有報警

看keepalived.conf配置文件有沒有錯誤

看客戶端的auto——realserver.sh腳本是否啟動

看realserver有沒有掛(nginx)


如果后端nginx能接收到LVS的請求,但是不返回,說明nginx端VIP沒有起來

LVS、haproxy與nginx均衡區別

LVS是4層網絡層,haproxy是又有7層又有4層,nginx是7層應用層

LVS優點

  1. LVS抗負載能力強、是工作在網絡4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟件里的性能最強的,也保證了均衡器I/O的性能不會受到大流量的影響

  2. LVS是專門的負載均衡軟件,對任何應用都可以做負載均衡

  3. 工作穩定,因為其本身抗負載能力很強,自身有完整的雙機熱備方案,目前用的比較多的是lvs+keepalived,比較大型的用的多的是lvs+heartbeat

nginx的優點:

1:Nginx的高并發,同時能承載上萬個并發連接;

2:nginx有充足的第三方功能模塊的支持,主要通過upstream模塊進行負載均衡;

3:nginx對網絡的依賴較小,理論上只要Ping得通,網頁訪問正常,nginx就能連得通;

4:工作在網絡的7層之上,可以針對http應用做一些分流的策略,它的正則規則比haproxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一,nginx單憑這點可利用的場合就遠多于lvs了。

nginx的缺點:

1:將Nginx當做反向代理時,負載均衡功能不是很好,對后端服務器的健康檢查功能較弱;

2:nginx僅能支持http、https和email協議,這樣就在適用范圍上面小些,這個是它的缺點;

3:nginx只支持通過端口來檢測,不支持通過url來檢測。



keepalived+mysql

msyql主down機了,可以手動換成從的IP,也可以自動切換,用keepalived,heartbeat


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冷水江市| 罗甸县| 鄄城县| 玛多县| 东港市| 南宫市| 柳河县| 亳州市| 黄骅市| 萨迦县| 太康县| 榆社县| 彰化市| 夏津县| 囊谦县| 通榆县| 吴旗县| 扎鲁特旗| 麦盖提县| 海宁市| 新安县| 宜州市| 永昌县| 久治县| 思茅市| 桑植县| 卢氏县| 大余县| 芮城县| 华亭县| 屏山县| 石城县| 黄大仙区| 美姑县| 丽水市| 竹溪县| 板桥市| 黄石市| 江城| 高邮市| 普定县|