LVS 基本配置詳解請參考博文:http://www.javashuo.com/article/p-vuqwwdwq-ho.html
案例環境:
實現結果以下:html
[root@localhost /]# vim /etc/sysctl.conf ................... // 省略部分 net.ipv4.ip_forward = 1 [root@localhost /]# sysctl -p net.ipv4.ip_forward = 1
配置負載分配策略:web
[root@localhost /]# modprobe ip_vs # 加載 ip_vs 模塊 [root@localhost /]# cat /proc/net/ip_vs # 查看版本信息,彈出以下所示,說明該模塊已啓動 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn
ipvsadm 是在負載調度器上使用的 LVS 羣集管理工具,經過調用 ip_vs 模塊來添加、刪除服務器節點,以及查看羣集的運行狀態(須要手動安裝)。算法
[root@localhost /]# yum -y install ipvsadm # 安裝 ipvsadm [root@localhost /]# ipvsadm -v # 查看版本信息 ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
[root@localhost /]# ipvsadm -C # 清除原有策略 [root@localhost /]# ipvsadm -A -t 200.0.0.1:80 -s rr [root@localhost /]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.10:80 -m -w 1 [root@localhost /]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.20:80 -m -w 1 [root@localhost /]# ipvsadm-save # 保存策略 -A -t localhost.localdomain:http -s rr -a -t localhost.localdomain:http -r 192.168.1.10:http -m -w 1 -a -t localhost.localdomain:http -r 192.168.1.20:http -m -w 1 [root@localhost /]# systemctl enable ipvsadm.service # 設置爲開機自啓
配置節點服務器:
web1 配置:vim
[root@localhost /]# yum -y install httpd # 安裝 http 服務 [root@localhost /]# echo test1.com > /var/www/html/index.html # 準備測試網頁 [root@localhost /]# systemctl start httpd # 開啓服務 [root@localhost /]# systemctl enable httpd # 開機自啓
web2 配置:服務器
[root@localhost /]# yum -y install httpd # 安裝 http 服務 [root@localhost /]# echo test2.com > /var/www/html/index.html # 準備測試網頁 [root@localhost /]# systemctl start httpd [root@localhost /]# systemctl enable httpd
固然,在實際生產環境時,網頁內容都是同樣的,這裏爲了區分驗證從實驗的成功與否,我寫了兩個內容不一樣的測試文件。
測試一下 LVS 是否在工做:
刷新網頁:
3、NFS 共享存儲服務:
搭建 NFS 共享使兩臺web服務器共同掛載同一個NFS服務器共享的目錄,以此來提供相同的網頁文件。
安裝 nfs-utils、rpcbind 軟件包:網絡
[root@localhost /]# yum -y install nfs-utils rpcbind # 安裝軟件包 [root@localhost /]# systemctl enable nfs # 設置爲開機自啓 [root@localhost /]# systemctl enable rpcbind
這兩軟件包我使用 rpm-qa 在Centos 7 上查看的時候是有的,具體這裏本人也不是很清楚究竟是不是安裝系統時自帶的,因此在作時仍是敲一下這命令吧,以防萬一嘛,若有大佬知道的,還煩請告知小弟。(拜謝)
設置共享目錄:負載均衡
[root@localhost /]# mkdir -p /opt/wwwroot # 建立共享目錄 [root@localhost /]# vim /etc/exports # 修改 NFS 主配置文件 /opt/wwwroot 192.168.2.0/24(rw,sync,no_root_squash) --rw:容許讀寫,ro 爲只讀 --sync:表示同步寫入 --no_root_squash:當客戶機以 root 身份訪問時賦予本地的 root 權限(默認是 root_squash,將做爲 nfsnobody 用戶降權對待) [root@localhost wwwroot]# echo nfs.test.com > index.html # 準備測試文件
[root@localhost /]# systemctl restart rpcbind # 重啓服務使配置生效 [root@localhost /]# systemctl restart nfs [root@localhost /]# showmount -e # 查看本機發布的共享目錄 Export list for localhost.localdomain: /opt/wwwroot 192.168.2.0/24
在兩臺 web 主機上掛載 NFS 共享目錄,並配置爲開機自動掛載dom
[root@localhost /]# mount 192.168.2.1:/opt/wwwroot /var/www/html/ # 在兩臺 web 主機上都執行此操做 [root@localhost /]# df -hT /var/www/html/ # 查看是否掛載成功 Filesystem Type Size Used Avail Use% Mounted on 192.168.2.1:/opt/wwwroot nfs4 50G 4.0G 47G 8% /var/www/html [root@localhost /]# vim /etc/fstab # 設爲開機自動掛載 192.168.2.1:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
測試驗證:
.
咱們看到 NFS 上寫的測試文件已經訪問成功,但不管怎麼刷新都不會變,這就說明 LVS 負載均衡也就成功了。ide
當LVS服務器重啓後,LVS規則將會丟失,這就用到了備份,須要注意的是,備份時的主機名和恢復時的主機名必須一致,而且須要注意網卡優先的問題,不然在恢復後,會發現VIP(羣集的虛擬IP)變成了LVS服務器的另外一個IP地址工具
[root@localhost /]# ipvsadm-save > /etc/sysconfig/ipvsadm.bak # 先備份一分 [root@localhost /]# ipvsadm -ln # 查看 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn [root@localhost /]# ipvsadm-restore < /etc/sysconfig/ipvsadm.bak # 恢復策略 [root@localhost /]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 200.0.0.1:80 rr # 注意這裏是否仍是原來的 VIP -> 192.168.1.10:80 Masq 1 0 0 -> 192.168.1.20:80 Masq 1 0 0