LB lvs-nat lvs-dr 的理解及實驗

Lvs-nat

負載均衡nat模式工作原理講解

wps_clip_image-28707

Lvs是LB 的實現方式

LB :負載均衡

Lvs-nat

Directory 負載均衡調度器

Real server 真正負載集羣的總稱

請求報文

首先客戶端請求一個http資源,經過路由器到達directory  的vip 經過路由選擇,送到INPUT鏈上去,INPUT鏈

查看他的請求資源是個本機,但是本機是個集羣,本機並沒有web服務提供,根據配置規則,就修改請求資源的目

標地址爲真正的real server rip 送給dip,dip查看是送到real server xx的就送給xx啦

響應報文

Real server  xx查看請求的資源,馬上就開始構建響應報文,構建完響應報文後,通過dip送到directory,dip通過修

改源端口,dip直接從forword鏈轉發到vip,vip在轉發給客戶端

工作示意圖如上圖

Vmware1   directory  nfs 共享mysql   eth0:192.168.1.118/24     eth1:172.16.1.143/16

Vmware2   lamp  web   host1   eth0:192.168.1.11/24   關閉mysql  安裝wordpress

Vmware3   lamp  web   host2   eth1:192.168.1.12/24   關閉mysql  安裝Wordpress

系統均爲centos6.5

配置好ip地址和建立好網頁,ping 一下看主機是否在線

1、節點real  server的配置

Ifconfig eth0  192.168.1.11/24 up  使用虛擬通道3

Route  add  default  gw  192.168.1.11

Yum  install  httpd  mysql-server  php  php-mysql  php-gd -y

Vim  /var/www/html  提供網頁文件

Service  httpd  restart

節點二一樣配置

2、directory的配置

首先添加一張網卡,配置能讓linux正常識別到

Ifconfig eth0 192.168.1.118/24 up   橋接

Ifconfig eth1 172.16.1.143/16 up  使用虛擬通道3

Yum  install  httpd  mysql-server  php  php-mysql  php-gd -y

此時先在directory 測試一下 ping 各節點

Curl  http:// 192.168.1.11 測試下個節點的網頁是否正常

3、上面的準備環境做好啦,就可以做真正的集羣服務啦

先要安裝軟件   配置好yum 源   yum   install   ipvsadm  -y

不懂軟件命令使用可以  man  ipvsadm

ipvsadm -A|E -t|u|f service-address [-s scheduler]

               [-p [timeout]] [-M netmask]

       ipvsadm -D -t|u|f service-address

       ipvsadm -C

ipvsadm -a|e -t|u|f service-address -r server-address

               [-g|i|m] [-w weight] [-x upper] [-y lower]

-A 添加集羣

-E 修改集羣

-C 清空集羣配置

-D 刪除集羣

-a 添加real server 配置

-e 修改real server 配置

-d 刪除real server 配置

-m 是開啓nat模式

-g 是開啓dr模式

-w 算法的權重

-L 列出信息

-n 查看詳細信息

echo "1" > /proc/sys/net/ipv4/ip_forward  打開路由間轉發功能

配置服務

Ipvsadm -A -t 172.16.1.143:80 -s rr

Ipvsadm -a -t 172.16.1.143:80 -r 192.168.1.11 -m -w 1

Ipvsadm -a -t 172.16.1.143:80 -r 192.168.1.12 -m -w 2

wps_clip_image-4637

echo "1" > /proc/sys/net/ipv4/ip_forward  開啓路由轉發機制

配置就成功啦  可以先  curl http://172.16.1.118 查看是否輪詢

我們還可以改變集羣算法,根據業務不同進行集羣切換

wps_clip_image-4656

Ipvsadm -E -t 172.16.1.118:80 -s lc 再測試結果

各種算法的比較

靜態算法

動態算法

4、對實驗的升級

用nfs 共享mysql,給兩臺real  server  web 安裝wordpress提供論壇服務

用源碼編譯安裝搭建 lamp平臺 我們可以先搭建一臺,然後快速克隆三臺出來

Ip地址和上面一樣

Directory 提供mysql nfs 的共享

Real server 提供web服務,但是mysql是關閉的

三臺虛擬主機系統均是centos6.5

不會lamp源碼編譯安裝的話請看http://1983939925.blog.51cto.com/8400375/1540799

這裏的關鍵點環境的搭建lamp和mysql的授權問題

(1)用nfs建共享

vim /etc/exports

/www/html  172.16.0.0/16(no_root_squash,rw)

wps_clip_image-17891

service nfs restart

(2)lamp的配置

搭建安裝lamp

vim /etc/httpd24/http.conf

指定pid

PidFile "/var/run/httpd.pid"

支持.php的網頁文件

DirectoryIndex index.php index.html

開啓虛擬主機設置網頁

Include /etc/httpd24/extra/httpd-vhosts.conf

支持網頁的格式設置

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

(3)虛擬主機的配置

vim //etc/httpd24/extra/httpd-vhosts.conf

註釋掉他的示例虛擬主機

新建虛擬主機

<VirtualHost *:80>

   DocumentRoot "/www/html"

   <Directory "/www/html">

    Require all granted

   </Directory>

   ServerName www.dingchao.com

</VirtualHost>

wps_clip_image-7473

(4)mysql授權遠程主機訪問

重要的是授權本機或者遠程主機訪問mysql

主要的是配置文件mysql的註冊時,wp-config.PHP  mysql的ip地址要填提供mysq服務本機的地址

對於授權的問題是,我們要授權給共享web服務來訪問的ip地址,如果實驗驗證不了,我們可以現在web

客戶端,遠程連接一下,測試一下授權是否成功

mysql,看有沒有權限訪問,出錯問題還有就是NFS的權限,所有具體的問題要自己結合實際情況解決問題

(5)directory 集羣基於域名解析

在windows本機的hosts文件中添加可以解析linux的ip地址,這樣做的意義是我們要基於域名來解析安裝wordpress,

和訪問

C:\Windows\System32\drivers\etc\hosts

172.16.1.143 www.dingchao.com

基於主要是因爲此軟件 基於ip註冊訪問的話,有很強的緩存,實驗驗證的話會出現問題

安裝Wordpress就不說啦

mysql -u root -h 127.0.0.1 -p

Creat database wp;

grant all on wp.* to 'tom'@'共享web ip' identified by '1234';

(6)directory 集羣配置和上面rpm配置的一樣

(7)實驗驗證在瀏覽器中發表一篇文章real server1,我這裏是基於域名安裝的wordpress,然後在後臺關閉real server1,

再在瀏覽其中訪問word server 可以看到你在real server1 中發表的文章,及說明你實驗成功

Lvs-dr

模式工作示意圖

wKiom1QN7B_TNjr-AAFpyI2bDrA934.jpg

1、注意要點

Real  server 和 directory 必須要在同一網絡中

Real  server 必須配置vip和directory上的一樣,工作中主要是在INPUT鏈上添加了dip的mac地址和

real  server 的mac地址

Real  server  配置的vip必須保證,別人的arp請求vip解析不予響應,自己也不通告有vip地址,只是當

有來自directory的分配時,給予響應

基本緩解搭配和上面一樣,不過這裏的directory只要一塊網卡,我們要把上面的directory的eth1  down掉

2、具體配置

Directory 的配置

Ifconfig eth0 192.168.100.15/24 up

Ifconfig eth0:0 192.168.100.20/24 up

Route add default gw 192.168.100.1

Ipvsadm -A -t 192.168.100.20:80 -s rr

Ipvsadm -a -t 192.168.100.20:80 -r 192.168.1.11 -g -w 1

Ipvsadm -a -t 192.168.100.20:80 -r 192.168.1.12 -g -w 2

Real server的配置

Ifconfig eth0 192.168.100.11/24 up

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

ifconfig lo:0 192.168.100.20  netmask 255.255.255.255 broadcast 192.168.100.20 up   自己只能跟自己通話

Route add default gw 192.168.100.1

route add -host 192.168.100.20 dev lo:0

另一節點的配置也一樣

實驗驗證也是一樣

wps_clip_image-29065

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章