Keepalived是一個免費開源的,用C編寫的相似於layer3, 4 & 7交換機制軟件,具有咱們平時說的第3層、第4層和第7層交換機的功能。主要提供loadbalancing(負載均衡)和 high-availability(高可用)功能,負載均衡實現須要依賴Linux的虛擬服務內核模塊(ipvs),而高可用是經過VRRP協議實現多臺機器之間的故障轉移服務。html
上圖是Keepalived的功能體系結構,大體分兩層:用戶空間(user space)和內核空間(kernel space)。
內核空間:主要包括IPVS(IP虛擬服務器,用於實現網絡服務的負載均衡)和NETLINK(提供高級路由及其餘相關的網絡功能)兩個部份。
用戶空間:nginx
Keepalived的全部功能是配置keepalived.conf文件來實現的。bash
從官網下載keepalived,本文以版本1.2.24爲例。服務器
[root@keepalived-nginx1 ~]# wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz [root@keepalived-nginx1 ~]# tar -xzvf keepalived-1.2.24.tar.gz [root@keepalived-nginx1 ~]# cd keepalived-1.2.24
[root@keepalived-nginx1 keepalived-1.2.24]# ./configure --prefix=/usr/local/keepalived [root@keepalived-nginx1 keepalived-1.2.24]# make && make install
安裝完成後,進入安裝目錄的etc目錄下,將keepalived相應的配置文件拷貝到系統相應的目錄當中。keepalived啓動時會從/etc/keepalived目錄下查找keepalived.conf配置文件,若是沒有找到則使用默認的配置。/etc/keepalived目錄安裝時默認是沒有安裝的,須要手動建立。配置文件目錄結構以下所示:網絡
[root@keepalived-nginx1 ~]# tree -l /usr/local/keepalived/etc/ /usr/local/keepalived/etc/ ├── keepalived │ ├── keepalived.conf │ └── samples │ ├── client.pem │ ├── dh1024.pem │ ├── keepalived.conf.fwmark │ ├── keepalived.conf.HTTP_GET.port │ ├── keepalived.conf.inhibit │ ├── keepalived.conf.IPv6 │ ├── keepalived.conf.misc_check │ ├── keepalived.conf.misc_check_arg │ ├── keepalived.conf.quorum │ ├── keepalived.conf.sample │ ├── keepalived.conf.SMTP_CHECK │ ├── keepalived.conf.SSL_GET │ ├── keepalived.conf.status_code │ ├── keepalived.conf.track_interface │ ├── keepalived.conf.virtualhost │ ├── keepalived.conf.virtual_server_group │ ├── keepalived.conf.vrrp │ ├── keepalived.conf.vrrp.localcheck │ ├── keepalived.conf.vrrp.lvs_syncd │ ├── keepalived.conf.vrrp.routes │ ├── keepalived.conf.vrrp.rules │ ├── keepalived.conf.vrrp.scripts │ ├── keepalived.conf.vrrp.static_ipaddress │ ├── keepalived.conf.vrrp.sync │ ├── root.pem │ └── sample.misccheck.smbcheck.sh ├── rc.d │ └── init.d │ └── keepalived └── sysconfig └── keepalived
分別對應系統目錄(忽略samples目錄):app
/etc/keepalived/keepalived.conf /etc/rc.d/init.d/keepalived /etc/sysconfig/keepalived
將配置文件拷貝到系統對應的目錄下:負載均衡
[root@keepalived-nginx1 ~]# mkdir /etc/keepalived [root@keepalived-nginx1 ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf [root@keepalived-nginx1 ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived [root@keepalived-nginx1 ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
[root@keepalived-nginx1 ~]# cd /etc/init.d/ [root@keepalived-nginx1 init.d]# chmod +x keepalived [root@keepalived-nginx1 init.d]# service keepalived start Starting keepalived: /bin/bash: keepalived: command not found [FAILED] [root@keepalived-nginx1 init.d]# ln -s /usr/local/keepalived/sbin/keepalived /usr/bin/ [root@keepalived-nginx1 init.d]# service keepalived start Starting keepalived: [ OK ]
http://www.mamicode.com/info-detail-1181951.htmlspa
http://blog.csdn.net/xyang81/article/details/52554398.net