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

來源:互聯網
上載者:User

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

Lvs-nat

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

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

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

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

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

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)

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>

(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

模式工作

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

另一節點的配置也一樣

實驗驗證也是一樣


LVS NAT模式為啥要更改real-server

據我所瞭解,RS只需要設定好網關,RS能拼得通Director就可以了,不需要做其他的修改。我不知道你所說的要修改是哪些。你是只開通80連接埠嗎?
 
LVS(NAT) 如果開啟Linux的防火牆,就不可以轉寄,關掉防火可正常使用,解防火使用Linux預設配置

設定selinux為disabled
[root@~linux]# setenforce 0
Disabled
是否有防火牆策略
[root@~ linux]# iptables -L
[root@~ linux]# iptables -t nat -L
LVS(NAT)下防火牆是需要關閉的。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.