国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

Keepalived的安裝配置

時間:2024-10-15 07:24:54 Linux認(rèn)證 我要投稿
  • 相關(guān)推薦

Keepalived的安裝配置

  Keepalived是Linux下一個輕量級的高可用解決方案,它與HeartBeat、RoseHA實(shí)現(xiàn)的功能類似,都可以實(shí)現(xiàn)服務(wù)或者網(wǎng)絡(luò)的高可用,但是又有差別。下面小編準(zhǔn)備了關(guān)于Keepalived安裝和配置的文章,提供給大家參考!

  一、Keepalived的安裝過程

  Keepalived的安裝非常簡單,下面通過源碼編譯的方式介紹下Keepalived的安裝過程。首先打開Keepalived的官方網(wǎng)址http://www.keepalived.org,從中可以下載到各種版本的Keepalived,這里下載的是keepalived-1.2.12.tar.gz。以操作系統(tǒng)環(huán)境Centos6.3為例,Keepalived安裝步驟如下:

  [root@keepalived-master app]#tar zxvf keepalived-1.2.12.tar.gz

  [root@keepalived-master app]#cd keepalived-1.2.12

  [root@keepalived-master keepalived-1.2.12]#./configure --sysconf=/etc \

  > --with-kernel-dir=/usr/src/kernels/2.6.32-431.5.1.el6.x86_64

  [root@keepalived-master keepalived-1.2.12]#make

  [root@keepalived-master keepalived-1.2.12]#make install

  [root@keepalived-master keepalived-1.2.12]#ln -s /usr/local/sbin/keepalived /sbin/

  [root@keepalived-master keepalived-1.2.12]# chkconfig --add keepalived

  [root@keepalived-master keepalived-1.2.12]# chkconfig --level 35 keepalived on

  在編譯選項(xiàng)中,“--sysconf”指定了Keepalived配置文件的安裝路徑,即路徑為/etc/Keepalived/Keepalived.conf;“--with-kernel-dir”是個很重要的參數(shù),但這個參數(shù)并不是要把Keepalived編譯進(jìn)內(nèi)核,而是指定使用內(nèi)核源碼中的頭文件,即include目錄。只有在使用LVS時,才需要用到“--with-kernel-dir”參數(shù),其他時候是不需要的。

  在Keepalived輸出的加載模塊信息,其中:

  ? Use IPVS Framework表示使用IPVS框架,也就是負(fù)載均衡模塊,后面的“Yes”表示啟用IPVS功能。一般在搭建高可用負(fù)載均衡集群時會啟用IPVS功能,如果只是使用Keepalived的高可用功能,則不需要啟用IPVS模塊,可以在編譯Keepalived時通過“--disable-lvs”關(guān)閉IPVS功能。

  ? IPVS sync daemon support表示啟用IPVS的同步功能,此模塊一般和IPVS模塊一起使用,如果需要關(guān)閉,可在編譯Keepalived時通過“--disable-lvs-syncd”參數(shù)實(shí)現(xiàn)。

  ? IPVS use libnl表示使用新版的libnl。libnl是NETLINK的一個實(shí)現(xiàn),如果要使用新版的libnl,需要在系統(tǒng)中安裝libnl和libnl-devel軟件包。

  ? Use VRRP Framework表示使用VRRP框架,這是實(shí)現(xiàn)Keepalived高可用功能必需的模塊。

  ? Use VRRP VMAC表示使用基礎(chǔ)VMAC接口的xmit VRRP包,這是Keepalived在1.2.10版本及以后新增的一個功能。

  至此,Keepalived的安裝介紹完畢。下面開始進(jìn)入Keepalived配置的講解。

  二、 Keepalived的全局配置

  在上節(jié)安裝Keepalived的過程中,指定了Keepalived配置文件的路徑為/etc/Keepalived/Keepalived.conf,Keepalived的所有配置均在這個配置文件中完成。由于Keepalived.conf文件中可配置的選項(xiàng)比較多,這里根據(jù)配置文件所實(shí)現(xiàn)的功能,將Keepalived配置分為三類,分別是:全局配置(Global Configuration)、VRRPD配置和LVS配置。下面將主要介紹下Keepalived配置文件中一些常用配置選項(xiàng)的含義和用法。

  Keepalived的配置文件都是以塊(block)的形式組織的,每個塊的內(nèi)容都包含在{}中,以“#”和“!”開頭的行都是注釋。全局配置就是對整個Keepalived都生效的配置,基本內(nèi)容如下:

  ! Configuration File for keepalived

  global_defs {

  notification_email {

  dba.gao@gmail.com

  ixdba@163.com

  }

  notification_email_from Keepalived@localhost

  smtp_server 192.168.200.1

  smtp_connect_timeout 30

  router_id LVS_DEVEL

  }

  全局配置以“global_defs”作為標(biāo)識,在“global_defs”區(qū)域內(nèi)的都是全局配置選項(xiàng),其中:

  ? notification_email用于設(shè)置報警郵件地址,可以設(shè)置多個,每行一個。注意,如果要開啟郵件報警,需要開啟本機(jī)的Sendmail服務(wù)。

  ? notification_email_from用于設(shè)置郵件的發(fā)送地址。

  ? smtp_server用于設(shè)置郵件的smtp server地址。

  ? smtp_connect_timeout用于設(shè)置連接smtp server的超時時間。

  ? router_id表示運(yùn)行Keepalived服務(wù)器的一個標(biāo)識,是發(fā)郵件時顯示在郵件主題中的信息。

  三、 Keepalived的VRRPD配置

  VRRPD配置是Keepalived所有配置的核心,主要用來實(shí)現(xiàn)Keepalived的高可用功能。從結(jié)構(gòu)上來看,VRRPD配置又可分為VRRP同步組配置和VRRP實(shí)例配置。

  這里首先介紹同步組實(shí)現(xiàn)的主要功能。同步組是相對于多個VRRP實(shí)例而言的,在多個VRRP實(shí)例的環(huán)境中,每個VRRP實(shí)例所對應(yīng)的網(wǎng)絡(luò)環(huán)境會有所不同,假設(shè)一個實(shí)例處于網(wǎng)段A,另一個實(shí)例處于網(wǎng)段B,而如果VRRPD只配置了A網(wǎng)段的檢測,那么當(dāng)B網(wǎng)段主機(jī)出現(xiàn)故障時,VRRPD會認(rèn)為自身仍處于正常狀態(tài),進(jìn)而不會進(jìn)行主備節(jié)點(diǎn)的切換,這樣問題就出現(xiàn)了。同步組就是用來解決這個問題的,將所有VRRP實(shí)例都加入到同步組中,這樣任何一個實(shí)例出現(xiàn)問題,都會導(dǎo)致Keepalived進(jìn)行主備切換。

  下面是兩個同步組的配置樣例:

  vrrp_sync_group G1 {

  group {

  VI_1

  VI_2

  VI_5

  }

  notify_backup "/usr/local/bin/vrrp.back arg1 arg2"

  notify_master "/usr/local/bin/vrrp.mast arg1 arg2"

  notify_fault "/usr/local/bin/vrrp.fault arg1 arg2"

  }

  vrrp_sync_group G2 {

  group {

  VI_3

  VI_4

  }

  }

  其中,G1同步組包含VI_1、VI_2、VI_5三個VRRP實(shí)例,G2同步組包含VI_3、VI_4兩個VRRP實(shí)例。這五個實(shí)例將在vrrp_instance段進(jìn)行定義。另外,在vrrp_sync_group段中還出現(xiàn)了notify_master、notify_backup、notify_fault和notify_stop四個選項(xiàng),這是Keepalived配置中的一個通知機(jī)制,也是Keepalived包含的四種狀態(tài)。下面介紹每個選項(xiàng)的含義。

  ? notify_master:指定當(dāng)Keepalived進(jìn)入Master狀態(tài)時要執(zhí)行的腳本,這個腳本可以是一個狀態(tài)報警腳本,也可以是一個服務(wù)管理腳本。Keepalived允許腳本傳入?yún)?shù),因此靈活性很強(qiáng)。

  ? notify_backup:指定當(dāng)Keepalived進(jìn)入Backup狀態(tài)時要執(zhí)行的腳本,同理,這個腳本可以是一個狀態(tài)報警腳本,也可以是一個服務(wù)管理腳本。

  ? notify_fault:指定當(dāng)Keepalived進(jìn)入Fault狀態(tài)時要執(zhí)行的腳本,腳本功能與前兩個類似。

  ? notify_stop:指定當(dāng)Keepalived程序終止時需要執(zhí)行的腳本。

  下面正式進(jìn)入VRRP實(shí)例的配置,也就是配置Keepalived的高可用功能。VRRP實(shí)例段主要用來配置節(jié)點(diǎn)角色(主或從)、實(shí)例綁定的網(wǎng)絡(luò)接口、節(jié)點(diǎn)間驗(yàn)證機(jī)制、集群服務(wù)IP等。下面是實(shí)例VI_1的一個配置樣例。

  vrrp_instance VI_1 {

  state MASTER

  interface eth0

  virtual_router_id 51

  priority 100

  advert_int 1

  mcast_src_ip

  garp_master_delay 10

  track_interface {

  eth0

  eth1

  }

  authentication {

  auth_type PASS

  auth_pass qwaszx

  }

  virtual_ipaddress {

  #/ brd dev scope label

  192.168.200.16

  192.168.200.17 dev eth1

  192.168.200.18 dev eth2

  }

  virtual_routes {

  #src [to] / via|gw dev scope

  src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1

  192.168.110.0/24 via 192.168.200.254 dev eth1

  192.168.111.0/24 dev eth2

  192.168.112.0/24 via 192.168.100.254

  192.168.113.0/24 via 192.168.100.252 or 192.168.100.253

  }

  nopreempt

  preemtp_delay 300

  }

  以上VRRP配置以“vrrp_instance”作為標(biāo)識,在這個實(shí)例中包含了若干配置選項(xiàng),分別介紹如下:

  ? vrrp_instance是VRRP實(shí)例開始的標(biāo)識,后跟VRRP實(shí)例名稱。

  ? state用于指定Keepalived的角色,MASTER表示此主機(jī)是主服務(wù)器,BACKUP表示此主機(jī)是備用服務(wù)器。

  ? interface用于指定HA監(jiān)測網(wǎng)絡(luò)的接口。

  ? virtual_router_id是虛擬路由標(biāo)識,這個標(biāo)識是一個數(shù)字,同一個vrrp實(shí)例使用唯一的標(biāo)識,即在同一個vrrp_instance下,MASTER和BACKUP必須是一致的。

  ? priority用于定義節(jié)點(diǎn)優(yōu)先級,數(shù)字越大表示節(jié)點(diǎn)的優(yōu)先級就越高。在一個vrrp_instance下,MASTER的優(yōu)先級必須大于BACKUP的優(yōu)先級。

  ? advert_int用于設(shè)定MASTER與BACKUP主機(jī)之間同步檢查的時間間隔,單位是秒。

  ? mcast_src_ip用于設(shè)置發(fā)送多播包的地址,如果不設(shè)置,將使用綁定的網(wǎng)卡所對應(yīng)的IP地址。

  ? garp_master_delay用于設(shè)定在切換到Master狀態(tài)后延時進(jìn)行Gratuitous arp請求的時間。

  ? track_interface用于設(shè)置一些額外的網(wǎng)絡(luò)監(jiān)控接口,其中任何一個網(wǎng)絡(luò)接口出現(xiàn)故障,Keepalived都會進(jìn)入FAULT狀態(tài)。

  ? authentication用于設(shè)定節(jié)點(diǎn)間通信驗(yàn)證類型和密碼,驗(yàn)證類型主要有PASS和AH兩種,在一個vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通信。

  ? virtual_ipaddress用于設(shè)置虛擬IP地址(VIP),又叫做漂移IP地址。可以設(shè)置多個虛擬IP地址,每行一個。之所以稱為漂移IP地址,是因?yàn)镵eepalived切換到Master狀態(tài)時,這個IP地址會自動添加到系統(tǒng)中,而切換到BACKUP狀態(tài)時,這些IP又會自動從系統(tǒng)中刪除。Keepalived通過“ip address add”命令的形式將VIP添加進(jìn)系統(tǒng)中。要查看系統(tǒng)中添加的VIP地址,可以通過“ip add”命令實(shí)現(xiàn)。“virtual_ipaddress”段中添加的IP形式可以多種多樣,例如可以寫成 “192.168.16.189/24 dev eth1” 這樣的形式,而Keepalived會使用IP命令“ip addr add 192.168.16.189/24 dev eth1”將IP信息添加到系統(tǒng)中。因此,這里的配置規(guī)則和IP命令的使用規(guī)則是一致的。

  ? virtual_routes和virtual_ipaddress段一樣,用來設(shè)置在切換時添加或刪除相關(guān)路由信息。使用方法和例子可以參考上面的示例。通過“ip route”命令可以查看路由信息是否添加成功,此外,也可以通過上面介紹的notify_master選項(xiàng)來代替virtual_routes實(shí)現(xiàn)相同的功能。

  ? nopreempt設(shè)置的是高可用集群中的不搶占功能。在一個HA Cluster中,如果主節(jié)點(diǎn)死機(jī)了,備用節(jié)點(diǎn)會進(jìn)行接管,主節(jié)點(diǎn)再次正常啟動后一般會自動接管服務(wù)。這種來回切換的操作,對于實(shí)時性和穩(wěn)定性要求不高的業(yè)務(wù)系統(tǒng)來說,還是可以接受的,而對于穩(wěn)定性和實(shí)時性要求很高的業(yè)務(wù)系統(tǒng)來說,不建議來回切換,畢竟服務(wù)的切換存在一定的風(fēng)險和不穩(wěn)定性,在這種情況下,就需要設(shè)置nopreempt這個選項(xiàng)了。設(shè)置nopreempt可以實(shí)現(xiàn)主節(jié)點(diǎn)故障恢復(fù)后不再切回到主節(jié)點(diǎn),讓服務(wù)一直在備用節(jié)點(diǎn)工作,直到備用節(jié)點(diǎn)出現(xiàn)故障才會進(jìn)行切換。在使用不搶占時,只能在“state”狀態(tài)為“BACKUP”的節(jié)點(diǎn)上設(shè)置,而且這個節(jié)點(diǎn)的優(yōu)先級必須高于其他節(jié)點(diǎn)。

  ? preemtp_delay用于設(shè)置搶占的延時時間,單位是秒。有時候系統(tǒng)啟動或重啟之后網(wǎng)絡(luò)需要經(jīng)過一段時間才能正常工作,在這種情況下進(jìn)行發(fā)生主備切換是沒必要的,此選項(xiàng)就是用來設(shè)置這種情況發(fā)生的時間間隔。在此時間內(nèi)發(fā)生的故障將不會進(jìn)行切換,而如果超過“preemtp_delay”指定的時間,并且網(wǎng)絡(luò)狀態(tài)異常,那么才開始進(jìn)行主備切換。

  四、 Keepalived的LVS配置

  由于Keepalived屬于LVS的擴(kuò)展項(xiàng)目,因此, Keepalived可以與LVS無縫整合,輕松搭建一套高性能的負(fù)載均衡集群系統(tǒng)。下面介紹下Keepalived配置文件中關(guān)于LVS配置段的配置方法。

  LVS段的配置以“virtual_server”作為開始標(biāo)識,此段內(nèi)容有兩部分組成,分別是real_server段和健康檢測段。下面是virtual_server段常用選項(xiàng)的一個配置示例:

  virtual_server 192.168.12.200 80 {

  delay_loop 6

  lb_algo rr

  lb_kind DR

  persistence_timeout 50

  persistence_granularity

  protocol TCP

  ha_suspend

  virtualhost

  sorry_server

  下面介紹每個選項(xiàng)的含義。

  ? virtual_server:設(shè)置虛擬服務(wù)器的開始,后面跟虛擬IP地址和服務(wù)端口,IP與端口之間用空格隔開。

  ? delay_loop:設(shè)置健康檢查的時間間隔,單位是秒。

  ? lb_algo:設(shè)置負(fù)載調(diào)度算法,可用的調(diào)度算法有rr、wrr、lc、wlc、lblc、sh、dh等,常用的算法有rr和wlc。

  ? lb_kind:設(shè)置LVS實(shí)現(xiàn)負(fù)載均衡的機(jī)制,有NAT、TUN和DR三個模式可選。

  ? persistence_timeout:會話保持時間,單位是秒。這個選項(xiàng)對動態(tài)網(wǎng)頁是非常有用的,為集群系統(tǒng)中的session共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的請求會一直分發(fā)到某個服務(wù)節(jié)點(diǎn),直到超過這個會話的保持時間。需要注意的是,這個會話保持時間是最大無響應(yīng)超時時間,也就是說,用戶在操作動態(tài)頁面時,如果在50秒內(nèi)沒有執(zhí)行任何操作,那么接下來的操作會被分發(fā)到另外的節(jié)點(diǎn),但是如果用戶一直在操作動態(tài)頁面,則不受50秒的時間限制。

  ? persistence_granularity:此選項(xiàng)是配合persistence_timeout的,后面跟的值是子網(wǎng)掩碼,表示持久連接的粒度。默認(rèn)是255.255.255.255,也就是一個單獨(dú)的客戶端IP。如果將掩碼修改為255.255.255.0,那么客戶端IP所在的整個網(wǎng)段的請求都會分配到同一個real server上。

  ? protocol:指定轉(zhuǎn)發(fā)協(xié)議類型,有TCP和UDP兩種可選。

  ? ha_suspend:節(jié)點(diǎn)狀態(tài)從Master到Backup切換時,暫不啟用real server節(jié)點(diǎn)的健康檢查。

  ? virtualhost:在通過HTTP_GET/ SSL_GET做健康檢測時,指定的Web服務(wù)器的虛擬主機(jī)地址。

  ? sorry_server:相當(dāng)于一個備用節(jié)點(diǎn),在所有real server失效后,這個備用節(jié)點(diǎn)會啟用。

  下面是real_server段的一個配置示例:

  real_server 192.168.12.132 80 {

  weight 3

  inhibit_on_failure

  notify_up |

  notify_down |

  }

  下面介紹每個選項(xiàng)的含義。

  ? real_server:是real_server段開始的標(biāo)識,用來指定real server節(jié)點(diǎn),后面跟的是real server的真實(shí)IP地址和端口,IP與端口之間用空格隔開。

  ? weight:用來配置real server節(jié)點(diǎn)的權(quán)值。權(quán)值大小用數(shù)字表示,數(shù)字越大,權(quán)值越高。設(shè)置權(quán)值的大小可以為不同性能的服務(wù)器分配不同的負(fù)載,為性能高的服務(wù)器設(shè)置較高的權(quán)值,而為性能較低的服務(wù)器設(shè)置相對較低的權(quán)值,這樣才能合理地利用和分配了系統(tǒng)資源。

  ? inhibit_on_failure:表示在檢測到real server節(jié)點(diǎn)失效后,把它的“weight”值設(shè)置為0,而不是從IPVS中刪除。

  ? notify_up:此選項(xiàng)與上面介紹過的notify_maser有相同的功能,后跟一個腳本,表示在檢測到real server節(jié)點(diǎn)服務(wù)處于UP狀態(tài)后執(zhí)行的腳本。

  ? notify_down:表示在檢測到real server節(jié)點(diǎn)服務(wù)處于DOWN狀態(tài)后執(zhí)行的腳本。

  健康檢測段允許多種檢查方式,常見的有HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK、MISC_CHECK。首先看TCP_CHECK檢測方式示例:

  TCP_CHECK {

  connect_port 80

  connect_timeout 3

  nb_get_retry 3

  delay_before_retry 3

  }

  下面介紹每個選項(xiàng)的含義介。

  ? connect_port:健康檢查的端口,如果無指定,默認(rèn)是real_server指定的端口。

  ? connect_timeout:表示無響應(yīng)超時時間,單位是秒,這里是3秒超時。

  ? nb_get_retry:表示重試次數(shù),這里是3次。

  ? delay_before_retry:表示重試間隔,這里是間隔3秒。

  下面是HTTP_GET和SSL_GET檢測方式的示例:

  HTTP_GET |SSL_GET

  {

  url {

  path /

  digest e6c271eb5f017f280cf97ec2f51b02d3

  status_code 200

  }

  connect_port 80

  bindto 192.168.12.80

  connect_timeout 3

  nb_get_retry 3

  delay_before_retry 2

  }

  下面介紹每個選項(xiàng)的含義。

  ? url:用來指定HTTP/SSL檢查的URL信息,可以指定多個URL。

  ? path:后跟詳細(xì)的URL路徑。

  ? digest:SSL檢查后的摘要信息,這些摘要信息可以通過genhash命令工具獲取。例如:genhash -s 192.168.12.80 -p 80 -u /。

  ? status_code:指定HTTP檢查返回正常狀態(tài)碼的類型,一般是200。

  ? bindto:表示通過此地址來發(fā)送請求對服務(wù)器進(jìn)行健康檢查。

  下面是MISC_CHECK檢測方式的示例:

  MISC_CHECK

  {

  misc_path /usr/local/bin/script.sh

  misc_timeout 5

  ! misc_dynamic

  }

  MISC健康檢查方式可以通過執(zhí)行一個外部程序來判斷real server節(jié)點(diǎn)的服務(wù)狀態(tài),使用非常靈活。以下是常用的幾個選項(xiàng)的含義。

  ? misc_path:用來指定一個外部程序或者一個腳本路徑。

  ? misc_timeout:設(shè)定執(zhí)行腳本的超時時間。

  ? misc_dynamic:表示是否啟用動態(tài)調(diào)整real server節(jié)點(diǎn)權(quán)重,“!misc_dynamic”表示不啟用,相反則表示啟用。在啟用這功能后,Keepalived的healthchecker進(jìn)程將通過退出狀態(tài)碼來動態(tài)調(diào)整real server節(jié)點(diǎn)的“weight”值,如果返回狀態(tài)碼為0,表示健康檢查正常,real server節(jié)點(diǎn)權(quán)重保持不變;如果返回狀態(tài)碼為1,表示健康檢查失敗,那么就將real server節(jié)點(diǎn)權(quán)重設(shè)置為0;如果返回狀態(tài)碼為2~255之間任意數(shù)值,表示健康檢查正常,但real server節(jié)點(diǎn)的權(quán)重將被設(shè)置為返回狀態(tài)碼減2,例如返回狀態(tài)碼為10,real server節(jié)點(diǎn)權(quán)重將被設(shè)置為8(10-2)。

  到這里為止,Keepalived配置文件中常用的選項(xiàng)已經(jīng)介紹完畢,在默認(rèn)情況下,Keepalived在啟動時會查找/etc/Keepalived/Keepalived.conf配置文件,如果配置文件放在其他路徑下,通過“Keepalived -f”參數(shù)指定配置文件的路徑即可。

  在配置Keepalived.conf時,需要特別注意配置文件的語法格式,因?yàn)镵eepalived在啟動時并不檢測配置文件的正確性,即使沒有配置文件,Keepalived也照樣能夠啟動,所以一定要保證配置文件正確。

【Keepalived的安裝配置】相關(guān)文章:

Keepalived的基礎(chǔ)知識06-25

嵌入式系統(tǒng)安裝配置07-05

金蝶KIS商貿(mào)版安裝配置指南05-27

基于ubuntu下nginx+php+mysql安裝配置09-30

Windows 7下如何安裝和配置IIS 7和ASP方法08-24

linux配置dns服務(wù)器配置命令09-22

正確配置路由09-27

PHP socket的配置08-04

電腦配置知識10-12

IPsecVPN配置教程06-13