亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

集群介紹+用keepalived配置高可用集群(總結)

發布時間:2020-07-22 02:56:12 來源:網絡 閱讀:1156 作者:我不是瘦子 欄目:建站服務器

1、集群介紹

根據功能劃分為兩大類:高可用和負載均衡

高可用集群通常為兩臺服務器,一臺工作,另外一臺作為冗余,當提供服務的機器宕機,冗余將接替繼續提供服務
高可用集群,英文原文為High Availability Cluster,簡稱HACluster,簡單的說,集群(cluster)就是一組計算機,它們作為一個整體向用戶提供一組網絡資源。這些單個的計算機系統 就是集群的節點(node)
HA(High Available), 高可用性群集是通過系統的可靠性(reliability)和可維護性(maintainability)來度量的。工程上,通常用平均無故障時間(MTTF)來度量系統的可靠性,用平均維修時間(MTTR)來度量系統的可維護性。于是可用性被定義為:HA=MTTF/(MTTF+MTTR)*100%
==具體HA衡量標準:
99% 一年宕機時間不超過4天
99.9% 一年宕機時間不超過10小時
99.99% 一年宕機時間不超過1小時
99.999% 一年宕機時間不超過6分鐘==
實現高可用的開源軟件有:heartbeat、keepalived

負載均衡集群,需要有一臺服務器作為分發器,它負責把用戶的請求分發給后端的服務器處理,在這個集群里,除了分發器外,就是給用戶提供服務的服務器了,這些服務器數量至少為2
實現負載均衡的開源軟件有LVS、keepalived、haproxy、nginx,商業的有F5、Netscaler

2keepalived介紹

在這里我們使用keepalived來實現高可用集群,因為heartbeat在centos6上有一些問題,影響實驗效果
keepalived通過VRRP(Virtual Router Redundancy Protocl)來實現高可用。
Keepalived要有三個模塊,分別是core、check和vrrp。中core模塊為keepalived的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析,check模塊負責健康檢查,vrrp模塊是來實現VRRP協議的。

3、用keepalived配置高可用集群(總結)

環境:有A[root@chy01 ~],B[root@chy ~]#
兩個服務器,A為主服務器,B為備服務器。首先兩臺服務器都需要安裝keepalived。具體配置如下:
配置主:

[root@chy01 ~]# yum install -y keepalived
(A機器安裝keepalived)
[root@chy ~]# yum install -y keepalived
(B機器安裝keepalived)
[root@chy01 ~]# ps aux |grep nginx
root       2485  0.0  0.0  45484  1280 ?        Ss   05:15   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody     2492  0.0  0.2  47972  4172 ?        S    05:15   0:00 nginx: worker process
nobody     2493  0.0  0.2  47972  3916 ?        S    05:15   0:00 nginx: worker process
root       3041  0.0  0.0 112664   976 pts/0    R+   05:28   0:00 grep --color=auto nginx
(A機器上安裝過nginx,需要用nginx來做為負載均衡器)
[root@chy ~]# yum install -y nginx 
(B機器上用yum安裝的nginx,因為之前沒有安裝過)
[root@chy01 ~]# >!$
>/etc/keepalived/keepalived.conf
(清空master的keepalived的配置文件)
[root@chy01 ~]# vim /etc/keepalived/keepalived.conf 
global_defs {
   notification_email {
     chy@chy.com
   }
   notification_email_from root@chy.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass chylinux>com
    }
    virtual_ipaddress {
        192.168.212.1
    }
    track_script {
        chk_nginx
    }
}
如上是主的配置文件:如下是詳解
1,全局定義(global definition)配置范例
global_defs {
   notification_email {
     chy@chy.com
   }
   notification_email_from root@chy.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}global_defs全局配置標識,表面這個區域{}是全局配置,表示keepalived在發生諸如切換操作時需要發送email通知,以及email發送給哪些郵件地址,郵件地址可以多個,每行一個
notification_email_from 
表示發送通知郵件時郵件源地址是誰
smtp_server 127.0.0.1
表示發送email時使用的smtp服務器地址,這里可以用本地的sendmail來實現
mtp_connect_timeout 30
連接smtp連接超時時間
router_id node1
機器標識
vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}
vrrp_instance VI_1 {
    state MASTER state 指定instance(Initial)的初始狀態,就是說在配置好后,這臺服務器的初始狀態就是這里指定的,但這里指定的不算,還是得要通過競選通過優 先級來確定,里如果這里設置為master,但如若他的優先級不及另外一臺,那么這臺在發送通告時,會發送自己的優先級,另外一臺發現優先級不如自己的 高,那么他會就回搶占為master
    interface ens33 實例綁定的網卡,因為在配置虛擬IP的時候必須是在已有的網卡上添加的
    virtual_router_id 51這里設置VRID,這里非常重要,相同的VRID為一個組,他將決定多播的MAC地
    priority 100這里設置VRID,這里非常重要,相同的VRID為一個組,他將決定多播的MAC地址
    advert_int 1檢查間隔,默認為1秒
    authentication {這里設置認證
        auth_type PASS認證方式,可以是PASS或AH兩種認證方式
        auth_pass chylinux>com
    }
    virtual_ipaddress {
        192.168.212.1
    }這里設置的就是VIP,也就是虛擬IP地址,他隨著state的變化而增加刪除,當state為master的時候就添加,當state為backup的時候刪除,這里主要是有優先級來決定的,和state設置的值沒有多大關系,這里可以設置多個IP地址
    track_script {
        chk_nginx
    }
}
[root@chy01 ~]# vim /usr/local/sbin/check_ng.sh
(編輯腳本)
#!/bin/bash
d=` date --date today +%Y%m%d_%H:%M:%S`
#計算nginx進程數量
n=`ps -C nginx --no-heading|wc -l`
#如果進程為0,則啟動nginx,并且再次檢測nginx進程數量,
#如果還為0,說明nginx無法啟動,此時需要關閉keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi
[root@chy01 ~]# chmod 755 /usr/local/sbin/check_ng.sh 
(增加腳本的權限)
[root@chy01 ~]# systemctl start keepalived
[root@chy01 ~]# ps aux |grep keep
root       3225  0.0  0.0 111708  1308 ?        Ss   06:13   0:00 /usr/sbin/keepalived -D
root       3226  0.0  0.1 111708  2560 ?        S    06:13   0:00 /usr/sbin/keepalived -D
root       3227  0.0  0.1 111708  1624 ?        S    06:13   0:00 /usr/sbin/keepalived -D
root       3254  0.0  0.0 112664   972 pts/0    S+   06:13   0:00 grep --color=auto keep
[root@chy01 ~]# ps aux |grep nginx
root       2485  0.0  0.0  45484  1280 ?        Ss   05:15   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody     2492  0.0  0.2  47972  4172 ?        S    05:15   0:00 nginx: worker process
nobody     2493  0.0  0.2  47972  3916 ?        S    05:15   0:00 nginx: worker process
root       3274  0.0  0.0 112668   972 pts/0    S+   06:13   0:00 grep --color=auto nginx
(啟動keepalive服務并且查看是否啟動)
[root@chy01 ~]# less /var/log/messages
(keepalive的log日志)
[root@chy01 ~]# ip add 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:13:b3:3b brd ff:ff:ff:ff:ff:ff
    inet 192.168.212.11/24 brd 192.168.212.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.100.1/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::243b:ddac:7a2b:a5b/64 scope link 
       valid_lft forever preferred_lft forever
(查看虛擬ip地址 ,需要用ipadd 查看)
(之后需要在主服務器,與備服務器上面都查看防火墻是否關閉,兩邊都需要關閉才可以)

配置從服務器

[root@chy ~]# >/etc/keepalived/keepalived.conf 
(清空備的配置文件)

global_defs {
   notification_email {
     aming@aminglinux.com
   notification_email_from root@aminglinux.com
   smtp_server 127.0.0.1
   notification_email {
     aming@aminglinux.com
   smtp_server 127.0.0.1
}  
     aming@aminglinux.com
   }
   notification_email_from root@aminglinux.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass chylinux>com
    }
    virtual_ipaddress {
        192.168.212.1
    }
    track_script {
        chk_nginx
    }
}
(如上是備的配置文件)
[root@chy ~]# vim /usr/local/sbin/check_ng.sh
(編輯備的腳本文件)
!/bin/bash
時間變量,用于記錄日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx進程數量
n=`ps -C nginx --no-heading|wc -l`
#如果進程為0,則啟動nginx,并且再次檢測nginx進程數量,
#如果還為0,說明nginx無法啟動,此時需要關閉keepalived
if [ $n -eq "0" ]; then
        systemctl start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi
[root@chy ~]# chmod 755 /usr/local/sbin/check_ng.sh 
[root@chy ~]# source /usr/local/sbin/check_ng.sh 
(使腳本生效)
[root@chy ~]# systemctl start keepalived
[root@chy ~]# ps aux |grep keepalived
root       4484  0.0  0.0 111728  1308 ?        Ss   06:58   0:00 /usr/sbin/keepalived -D
root       4485  0.0  0.1 111728  2560 ?        S    06:58   0:00 /usr/sbin/keepalived -D
root       4486  0.0  0.1 111728  1644 ?        S    06:58   0:00 /usr/sbin/keepalived -D
root       4503  0.0  0.0 112664   980 pts/0    R+   06:58   0:00 grep --color=auto keepalived
(啟動keepalived并且查看是否啟動)
[root@chy ~]# cat /usr/share/nginx/html/index.html 
(yum安裝的nginx的默認主機的位置)

測試高可用

[root@chy01 ~]# /etc/init.d/nginx stop
Stopping nginx (via systemctl):                            [  確定  ]
(測試1關閉nginx)
[root@chy01 ~]# ps aux |grep nginx
root      10942  0.0  0.0  45484  1276 ?        Ss   07:13   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody    10944  0.0  0.2  47972  3912 ?        S    07:13   0:00 nginx: worker process
nobody    10945  0.0  0.2  47972  3912 ?        S    07:13   0:00 nginx: worker process
root      10961  0.0  0.0 112664   976 pts/0    S+   07:13   0:00 grep --color=auto nginx
(之后查看會自動啟動這個是因為寫的腳本check)
測試2:在master上增加iptabls規則 
[root@chy01 ~]# iptables -I OUTPUT -p vrrp -j DROP
[root@chy01 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 58 packets, 3974 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 36 packets, 3394 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   30  1200 DROP       112  --  *      *       0.0.0.0/0            0.0.0.0/0           
(查看已經iptables的規則)
測試2并不能測試出keepvalied的是否可以速度切換)
測試3:當停止主的keepvalied服務時,到從的服務器上可以迅速的看到切換的速度。
[root@chy ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:70:77:62 brd ff:ff:ff:ff:ff:ff
    inet 192.168.212.10/24 brd 192.168.212.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.212.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::338e:589c:fa07:65e5/64 scope link 
       valid_lft forever preferred_lft forever
向AI問一下細節

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

AI

安宁市| 花垣县| 安溪县| 禄丰县| 涟源市| 闻喜县| 虹口区| 偏关县| 山阳县| 都昌县| 娱乐| 双鸭山市| 桑日县| 承德县| 广水市| 姚安县| 类乌齐县| 灵寿县| 涟水县| 沐川县| 辛集市| 曲沃县| 东阳市| 乐清市| 崇文区| 台南县| 宁南县| 梧州市| 海宁市| 白沙| 郸城县| 辉县市| 出国| 章丘市| 新源县| 郑州市| 锡林郭勒盟| 嵊州市| 兴仁县| 峨边| 淳安县|