1. 程式人生 > >LVS基於DR模型實現簡單負載均衡叢集和持久連線

LVS基於DR模型實現簡單負載均衡叢集和持久連線

本文實現在RS1上安裝DISCUZ論壇,通過資料同步將RS1上資料目錄下的內容推送到RS2,兩臺伺服器提供同一個論壇服務,並實現資料同步,同時RS1與RS2都可同時提供http和https服務,Director上設定規則實現持久連線
基於LVS-DR模型部署discuz,實驗環境設計
Direcor:

  • DIP: eth0:10.33.1.129
  • VIP: eth0:0:10.33.1.120

RealServer:

  • RS1:10.33.1.157
  • RS2:10.33.1.139

MySQL Server:10.33.1.117
RealServer與MySQL三臺伺服器的OS為Rhel6,環境都已經搭建好並可以正常提供服務,HTTP,PHP,MySQL均為編譯安裝,詳細配置過程可參見LAMP中相關博文,這裡不再贅述。
這裡寫圖片描述


在 RS2:10.33.1.157部署DISCUZ論壇前,在MySQL伺服器上先建立資料庫使用者,並授予相應許可權
這裡寫圖片描述
安裝論壇進行建立資料庫時,資料庫伺服器名設定為資料庫伺服器IP,資料庫名,使用者名稱和密碼與剛才在資料庫伺服器上建立資料庫名,使用者名稱和密碼要保持一致,DISCUZ安裝完成後即可進行實現資料同步相關的設定
這裡寫圖片描述
Inotify&Sersync
Inotify 是一種強大的、細粒度的、非同步的檔案系統事件監控機制,它滿足各種各樣的檔案監控需要,不僅限於安全和效能。linux核心從2.6.13起,加入了Inotify支援,通過Inotify可以監控檔案系統中新增、刪除,修改、移動等各種細微事件,利用這個核心介面,第三方軟體就可以監控檔案系統下檔案的各種變化情況,而inotify-tools就是這樣的一個第三方軟體。
Sersync使用 Inotify 監控作業系統對磁碟的操作事件,通過接收到的事件生成帶特定引數的rsync命令列並執行,從而達到實時增量同步的目的。

Rsync+Inotify-tools與Rsync+sersync兩種架構的區別
1、Rsync+Inotify-tools

  • Inotify-tools只能記錄下被監聽的目錄發生了變化(包括增加、刪除、修改),並沒有記錄發生了變化的具體檔案或者目錄;
  • rsync並不知道具體發生了變化的檔案或者目錄,每次要對整個目錄遍歷查詢,對比檔案進行同步,當資料量很大時,效率很低。

2、Rsync+sersync

  • sersync是使用c++編寫,基於boost1.43.0,inotify api,rsynccommand開發,類似於Inotify-tools的工具,主要用於伺服器同步,web映象等功能。其對linux系統檔案系統產生的臨時檔案和重複的檔案操作能夠進行過濾,可以記錄下被監聽目錄中發生變化的(包括增加、刪除、修改)具體某一個檔案或某一個目錄的名字;所以在結合rsync同步的時候,節省了執行時耗和網路資源。因此更快,更適合線上使用。
  • rsync在同步的時候,只同步發生變化的這個檔案或者這個目錄(每次發生變化的資料相對整個同步目錄資料來說是很小的,因此,效率很高。

3、小結:當同步的目錄資料量不大時,建議使用Rsync+Inotify-tools;當資料量很大(幾百G甚至1T以上)、檔案很多時,建議使用Rsync+sersync。

選用Rsync+sersync架構,實現將sersync推送端/usr/local/apache/htdocs/下的資料實時同步到rsync接收端/usr/local/apache/htdocs/目錄下,設定rsync伺服器為sersync的映象伺服器
當前版本的sersync依賴於rsync進行同步。如下圖所示,在主伺服器上執行sersync服務,將監控路徑中的檔案推送到目標伺服器,用於接收檔案的伺服器(目標伺服器)則執行rsync守護程序,主伺服器上檔案的變化會被sersync實時同步到多個目標伺服器。在Rhel6系統下預設已經安裝了rsync,只需進行配置,並開啟rsync守候程序即可。
這裡寫圖片描述
在使用sersync之前,必須安裝配置好目標伺服器RS2 (接收端)的rsync
1.關閉selinux和防火牆:
這裡寫圖片描述
2.查詢rsync客戶端是否安裝,如果沒有可以使用yum安裝或者原始碼編譯
這裡寫圖片描述
這裡寫圖片描述
安裝xinetd

[root@RS2 ~]# yum install xinetd

3.編輯配置檔案 /etc/xinetd.d/rsync設定disable=no 啟動rsync服務
注:服務的提供總是需要程序的執行,rsync沒有stand alone daemon,而是由xinetd這個super daemon來管理的(沒有客戶端請求時,rsync處於未啟動狀態,等到有來自客戶端的請求時,xinetd才會喚醒rsync這個服務,當客戶端請求結束,被喚醒的rsync也會關閉並釋放資源)詳細介紹請查閱daemon與serveice相關內容
這裡寫圖片描述
這裡寫圖片描述
手動新增配置檔案
uid&gid#伺服器端傳輸檔案時,要指定使用者和使用者組來執行,預設是nobody。 如果用nobody 使用者和使用者組,可能遇到許可權問題,為了方便,用了root 。可以在定義同步目錄的模組中指定使用者來解決許可權的問題。
use chroot = yes #用chroot,在傳輸檔案之前,伺服器守護程式在將chroot 到檔案系統中的目錄中,可以保護系統。但是是需要root許可權。另外會排除符號連結檔案的同步,只會把符號連結名同步下來,並不會同步符號連結的內容。修改為no,增加對目錄檔案軟連線的備份
hosts allow #允許進行資料同步的客戶端IP地址,可以設定多個,用英文狀態下逗號隔開
這裡寫圖片描述
模組定義:定義伺服器哪個目錄要被同步。每個模組都要以[name]形式。這個名字就是在rsync 客戶端看到的名字,其實有點象Samba伺服器提供的共享名。而伺服器真正同步的資料是通過path 指定的。可以根據自己的需要來指定多個模組。每個模組要指定認證使用者,密碼檔案、但排除並不是必須的
[DISCUZ] # rsync模組名,後面配置sersync會用到
path = /usr/local/apache/htdocs/ # 該同步目錄只要uid所指定的使用者有寫許可權即可
secrets file = /etc/rsync.pass # 密碼認證檔案,必須為600許可權,否則rsync傳輸會報錯
auth users = root #認證使用者是必須在伺服器上存在的使用者
list #不顯示rsync服務端資源列表
4.建立認證密碼檔案
這裡寫圖片描述
在RS1(推送端)上安裝Sersync工具,實時觸發rsync進行同步
1.檢視核心是否支援inotify:Linux支援inotify最小核心為2.6.13
這裡寫圖片描述
2.檢視系統預設引數值可根據實際情況做相應修改:
這裡寫圖片描述
引數說明:
max_queued_events:最大佇列長度,如果值太小,會出現”* Event Queue Overflow *“錯誤,導致監控檔案不準確
max_user_watches:要同步的檔案包含目錄個數,可以先統計在設定,必須保證max_user_watches值大於統計結果

[root@RS1 ~]# find /usr/local/apache/htdocs/ -type d |wc -l
324

max_user_instances:每個使用者建立inotify例項最大值
以上引數可根據實際情況使用sysctl -w命令調整對應值的大小或者在/etc/sysctl.conf中新增相應內容

[[email protected] ~]# sysctl -w fs.inotify.max_queued_events="99999999"
fs.inotify.max_queued_events = 99999999
[[email protected] ~]# sysctl -w fs.inotify.max_user_watches="99999999"
fs.inotify.max_user_watches = 99999999
[[email protected] ~]# sysctl -w fs.inotify.max_user_instances="65535"
fs.inotify.max_user_instances = 65535

3.安裝配置sersync
這裡寫圖片描述
4.Vim confxml.xml 修改相應內容:
這裡寫圖片描述
引數說明:
watch=”/usr/local/apache/htdocs/” 主伺服器同步目錄:
Remote ip=”10.33.1.139” name=”DISCUZ” 分別是:目標伺服器IP和目標伺服器rsync同步目錄模組名稱
users=”root” passwordfile=”/etc/rsync.pass” 目標伺服器rsync同步使用者的使用者名稱和密碼在主伺服器的存放檔案。
start=”true” schedule=”600” 設定TRUE ,每隔600分周公執行一次全盤同步。
5.建立連線rsync的密碼檔案
這裡寫圖片描述
6.設定sersync監控開機自動執行:
這裡寫圖片描述
7.在RS1上啟動sersync同步資料目錄下的檔案
如果需要將待同步資料目錄下檔案或目錄全部同步到遠端,要以-r引數執行sersync,將本地與遠端整體同步一次。
如果設定了過濾器,即在.xml檔案中,filter為true,-r引數將會無效,則暫時不能使用-r引數進行整體同步。
使用-o引數指定配置檔案。
這裡寫圖片描述
在RS2上檢視資料檔案成功同步
這裡寫圖片描述
8.新增指令碼監控sersync是否正常執行:
這裡寫圖片描述
9.設定自動任務
這裡寫圖片描述
配置RS1,RS2為https,http同時支援的web服務,RS1,RS2使用同一個證書(相關https配置的詳細過程見LAMP中內容)
這裡寫圖片描述
這裡要說明的是兩臺RS1與RS2配置虛擬主機支援使用fcgi,相應的在ssl.conf配置檔案中也要新增
ProxyRequests Off和ProxyPassMatch兩項設定,否則瀏覽器無法解析PHP頁面
RS1與RS2hpptd服務配置相同
[[email protected] ~]# vim /etc/httpd/extra/httpd-vhosts.conf
這裡寫圖片描述
[[email protected] ~]# vim /etc/httpd/extra/httpd-ssl.conf
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
一切準備就緒,使用持久連線機制將對80和443的訪問始終定向為同一個RealServer
在Director即10.33.1.129編輯指令碼並執行
27,28行通過對80埠和443埠做一個防火牆標記來實現讓這兩個不同的埠當做同一個叢集服務
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
在RS1,RS2上編輯指令碼並執行
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
物理機訪問10.33.1.120,在基於ssl訪問10.33.1.120,在Director檢視連線狀態
這裡寫圖片描述

相關推薦

LVS基於DR模型實現簡單負載均衡叢集持久連線

本文實現在RS1上安裝DISCUZ論壇,通過資料同步將RS1上資料目錄下的內容推送到RS2,兩臺伺服器提供同一個論壇服務,並實現資料同步,同時RS1與RS2都可同時提供http和https服務,Director上設定規則實現持久連線 基於LVS-DR模型部署d

SDN第五次上機作業--基於組表的簡單負載均衡

pen 優先級 cti 拓撲 tin 基於組 ade 步驟 clas 0.作業鏈接 http://www.cnblogs.com/easteast/p/8125383.html 1.實驗目的 1、搭建如下拓撲並連接控制器 2、下發相關流表和組表實現負載均衡 3、抓包分析驗證

LVSDR模式中的負載均衡及高可用

** 一 LVS的三種IP負載均衡技術比較 ** 我們先分析實現虛擬網路服務的主要技術,指出IP負載均衡技術是在負載排程器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網路地址轉換(Network Address Transl

lvs+keepalived實現高效能負載均衡叢集

一、為什麼要使用負載均衡技術? 1、系統高可用性 2、 系統可擴充套件性 3、 負載均衡能力 LVS+keepalived能很好的實現以上的要求,LVS提供負載均衡,keepalived提供健康檢查,故障轉移,提高系統的可用性!採用這樣的架構以後很容易對現有系統進行擴充套件,

SaltStack自動部署nginx、apache、實現haproxy負載均衡叢集

一、Saltstack 自動化運維工具 什麼是saltstack • Saltstack是基於python開發的一套C/S架構配置管理工具 • 使用SSL證書籤方的方式進行認證管理 • 底層使用ZeroMQ訊息佇列pub/sub方式通訊 – 號稱世界上最快的訊息

saltstack多節點推送實現haproxy負載均衡叢集

一.saltstack一鍵部署負載均衡叢集 實驗環境:    172.25.45.1   haproxy 172.25.45.2   http 172.25.45.3   nginx 1.安裝服務 這裡為了方便直接在master server1端安裝現在serv

LVS+Keepalived搭建MyCAT高可用負載均衡叢集

LVS+Keepalived 介紹 LVS LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR),十種

3-5-基於LVS實現4層負載均衡配置DR模型實戰

ast 冗余 .html linux 詳細 橋接 綁定 info 環回接口 DR類型directer只響應請求報文,然後調度某一個RS,而響應報文由RS直接返回給請求者RS和directer都需要配置VIP,(在同一網絡中有可能沖突)本地局域網通告(通告自己的IP),ARP

lvs負載均衡的四種模式原理,LVSDR模型LVS+keeaplived實現負載均衡,keepalived實現高可用

一,LVS的簡介: Linux virtual system,是由目前阿里著名工程師章文嵩開發的一寬開源的軟體。LVS工作在一臺server上提供Directory(負載均衡器)的功能,它本身並不提供任何服務,只是把特定的請求轉發給對應的realserver(

3-4-基於LVS實現4層負載均衡配置nat模型實戰

eight 有效 cookie yum nfs 數據同步 管理 調度 重啟網絡服務 centos內核支持ipvs,只需在用戶空間安裝ipvsadm即可,首先應該準備好拓撲環境,了解編寫規則的工具用法 yum install -y ipvsadmrpm -ql ipvsadm

基於LVS-DR模型實現keepalived的主從架構

lvs-dr、keepalived 在一個系統中,常常存在一些單點服務器,為了提高整個系統的穩定性,我們常常需要對這些單點服務做高可用配置,keepalived即為一種常用的高可用配置服務。 首先我們來了解一下神馬是keepalived? keepalived是一個基於VRRP協議來實

LVS-NAT與LVS-DR類型的負載均衡實現原理

限制 ann 所有 來講 默認 51cto 沖突 lvs-dr 配置 lvs-dr類型工作原理:①:client端向目標IP(VIP)發送請求,經由路由器和交換機設備和後,此時的請求數據包頭文件的目標MAC值為調度器的MAC,源MAC值為client的MAC,目標IP為VI

基於keepalive+LVS的高可用叢集實現web服務負載均衡叢集的架構

架構環境: RedHat Linux Enterprise 5.8           keepalive                        LVS-DR 注意:1、事先配置好yum源,利用yum進行相關的軟體安裝,其可以很好的解決依賴關係

LVS負載均衡叢集——DR模型演示

1、lvs負載均衡叢集簡圖: 註釋: director為請求代理伺服器, realserver為後端真實伺服器 路由器1提供給director公網ip地址(使用者請求資料包都會從這個路由器進入) 路由器2提供給所有伺服器內網地址(響應使用者的所有資料包從這個路由器出去)

3-3-基於LVS實現4層負載均衡模式場景應用

之間 需要 問題 系統 sad 適用於 不支持 客戶 nat 回顧:linux的集群形式:LB負載均衡,HA高並發,HP高性能分布式系統:存儲、計算(超算集群)lb cluster實現方式:軟件四層:lvs、nginx(stream)、haproxy(mode tcp)七層

lvs實現ftp負載均衡集群

lvs集群;負載均衡;keepalived使用lvs的NAT模式,布署LVS+VSFTPD實現FTP的負載均衡,要求主動模式和被動模式均可正常訪問.ftp被動模式配置:DS配置 echo 1 > /proc/sys/net/ipv4/ip_forward #開啟路由轉發[[email pro

LVS-DR模型實現調度

Linux LVS LVS-DR集群環境實現(LVS服務器的網關可以任意配置,只要能出本地接口就行) 實驗環境:(5臺主機) 一臺客戶端 一臺路由器 一臺LVS服務器 兩臺RS服務器1、搭建網絡環境 路由器配置: 一個接

lvs負載均衡叢集DR模式)

DR模式叢集。 實際中都應該是網際網路的IP,這裡模擬現象。由web 直接回包給client。 會出現的問題 1、群集地址 (web回包IP與client請求不同)需要建立vip。 2、路由器ARP請求(需要關閉web1、web2部分arp響應)。 3、lvs關閉ICMP響應 (I

LVS+Keepalived 實現高可用負載均衡叢集

LVS+Keepalived  實現高可用負載均衡叢集     隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可

LVS 負載均衡叢集部署之 DR 模式

一、DR 模式工作原理          如圖,LVS-DR的工作原理,在圖中已經說明,下面,我們來列舉 LVS-DR 模式特點: 1、RIP 可以使用私有地址,也可以使用公網地址,如果使用公網地址,則可以直接