Linux集群架構(LVS DR模式搭建、keepalived + LVS)

為什么80%的碼農都做不了架構師?>>> ??hot3.png

LVS DR模式搭建

準備工作:三臺機器

分發器,也叫調度器(簡寫為dir):192.168.248.128
rs1 :192.168.248.129
rs2 : 192.168.248.130
vip : 192.168.248.200

1.dir上編輯腳本文件**/usr/local/sbin/lvs_dr.sh**,文件內容如下:

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward #打開端口轉發
ipv=/usr/sbin/ipvsadm
vip=192.168.248.200
rs1=192.168.248.132
rs2=192.168.248.133
#注意這里的網卡名字
#綁定vip
ifdown ens33
ifup ens33
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

2.執行腳本

[root@yolks-001 ~]# sh /usr/local/sbin/lvs_dr.sh
成功斷開設備 'ens33'。
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/5)

3.rs機器也需要編輯配置文件,添加腳本文件**/usr/local/sbin/lvs_rs.sh**,內容如下:

#/bin/bash
vip=192.168.248.200
#把vip綁定在lo上,是為了實現rs直接把結果返回給客戶端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作為更改arp內核參數,目的是為了讓rs順利發送mac地址給客戶端
#參考文檔www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

4.測試查看活動狀態

keepalived + LVS

完整架構需要兩臺服務器(角色為dir)分別安裝keepalived軟件,目的是實現高可用,但keepalived本身也有負載均衡的功能,所以本次實驗可以只安裝一臺keepalived

keepalived內置了ipvsadm的功能,所以不需要再安裝ipvsadm包,也不用編寫和執行那個lvs_dir的腳本

三臺機器分別為:
dir(安裝keepalived)192.168.248.128
rs1 192.168.248.129
rs2 192.168.248.130
vip 192.168.248.200

1.編輯keepalived配置文件/etc/keepalived/keepalived.conf,內容如下:

vrrp_instance VI_1 {#備用服務器上為 BACKUPstate MASTER#綁定vip的網卡為ens33,你的網卡和阿銘的可能不一樣,這里需要你改一下interface ens33virtual_router_id 51#備用服務器上為90priority 100advert_int 1authentication {auth_type PASSauth_pass aminglinux}virtual_ipaddress {192.168.248.200}
}
virtual_server 192.168.248.200 80 {#(每隔10秒查詢realserver狀態)delay_loop 10#(lvs 算法)lb_algo wlc#(DR模式)lb_kind DR#(同一IP的連接60秒內被分配到同一臺realserver)persistence_timeout 60#(用TCP協議檢查realserver狀態)protocol TCPreal_server 192.168.248.129 80 {#(權重)weight 100TCP_CHECK {#(10秒無響應超時)connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.248.130 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}

2.dir上重啟keepalived

systemctl stop keepalived
systemctl start keepalived

3.查看keepalived規則

[root@yolks-001 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.248.200:80 wlc persistent 60-> 192.168.248.129:80           Route   100    0          0         -> 192.168.248.130:80           Route   100    0          0

4.停止掉rs3機器的nginx

systemctl stop nginx

5.dir機器再次查看keepalived規則:已經少了停掉的rs2機器的規則

[root@yolks-001 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.248.200:80 wlc persistent 60-> 192.168.248.129:80           Route   100    0          0

拓展

haproxy+keepalived http://blog.csdn.net/xrt95050/article/details/40926255
nginx、lvs、haproxy比較 http://www.csdn.net/article/2014-07-24/2820837
keepalived中自定義腳本 vrrp_script http://my.oschina.net/hncscwc/blog/158746
lvs dr模式只使用一個公網ip的實現方法 http://storysky.blog.51cto.com/628458/338726

轉載于:https://my.oschina.net/yolks/blog/2032374

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537897.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537897.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537897.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java手機狀態欄圓形圖標,android實現狀態欄添加圖標的函數實例

本文實例講述了android實現狀態欄添加圖標的函數。分享給大家供大家參考。具體如下:private void showNotification() {// 創建一個NotificationManager的引用NotificationManager notificationManager (NotificationManager)AutoFile.this.getSystemService(andro…

Windows下SVN回滾到舊版本(TortoiseSVN)

原文地址:https://www.cnblogs.com/tommy-huang/p/4729634.html ---------------------------------------- 當發現新提交的代碼有問題,然后想將某個舊的版本作為最新的版本時,可以使用回滾, 操作步驟如下: 1. 簽出…

看懂架構設計中的服務隔離

前言 我們在做系統架構設計的時候,經常離不開的一個話題就是進行服務的隔離設計。 那什么是「服務隔離」呢? 顧名思義,它是指將系統按照一定的原則劃分為若干個服務模塊,各個模塊之間相對獨立,無強依賴。當有故障發生時…

2018最新蘋果APP上架App Store流程(超詳細)

內容很豐富,點擊查看博文 https://blog.csdn.net/xxw888/article/details/73618837/

[五] JavaIO之InputStream OutputStream簡介 方法列表說明

InputStream 和 OutputStream 對于字節流的輸入和輸出 是作為協議的存在 所以有必要了解下這兩個類提供出來的基本約定 這兩個類是抽象類,而且基本上沒什么實現,都是依賴于子類具體的去實現 但是他是對于其子類 協議綱領一般的存在 了解清楚每一個方法含義,對于后續具體的子類將…

Mysql yum 安裝后,一些重要的文件路徑

默認配置文件路徑: 配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log 服務啟動腳本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid #(a)數據庫目錄 /var/lib/mysql…

mysql雙機熱備 配置文件,MYSQL 雙機熱備配置手冊()

[原創] MYSQL 雙機熱備配置手冊[原創]http://www.chinaunix.net 作者:squall1 發表于:2007-07-23 19:01:43【發表評論】【查看原文】【存儲備份之家討論區】【關閉】作者:CU-squall發表于:2005年4月18日 8:21 可以不經作者同意自由傳播&…

[轉]資本經營董事長班告訴你:不只企業有商業模式,個人商業價值更重要

本文轉自:http://blog.sina.com.cn/s/blog_181b5b47e0102xz4v.html 東方財智-資本經營董事長班>>> 經營者如何輕松駕馭金融工具為企業發展加速、升級互聯網工具實現品牌營銷裂變、利用管理工具優化公司內部結構,把握前沿視角,實現快…

CentOS 7添加開機啟動服務腳本

原文路徑:https://blog.csdn.net/wang123459/article/details/79063703 --------------------------------------------------------- 一、添加開機自啟服務 在CentOS 7中添加開機自啟服務非常方便,只需要兩條命令(以Jenkins為例): system…

php 彩票系統,hsyl12141511 一套完整的PHP版彩票系統 - 下載 - 搜珍網

文件名大小更新時間BOEKJ02017-12-14BOEKJ\.idea02017-12-13BOEKJ\.idea\BOEKJ.iml2812017-04-28BOEKJ\.idea\modules.xml2622017-04-28BOEKJ\.idea\workspace.xml100272017-04-28BOEKJ\String-ext.js10402015-05-30BOEKJ\TianHeng.exe230402015-05-05BOEKJ\config.js309232017…

CPR認證-建材CE認證-305/2011/EU

建材CPR認證 - Regulation (EU) No 305/2011  2011年3月,歐盟頒布了新建筑產品法規RETULATION (EU) No 305/2011 – CPR,并通告了新法規于2013年7月進入強制執行,取代了老CPD指令89/106/EEC。  新的建材CPR認證也是…

python支持復數類型以下什么說法是錯誤的,【Python】專項練習題(1)

1.python代碼如下:foo [1,2]foo1 foofoo.append(3)A.foo 值為[1,2]B.foo 值為[1,2,3]C.foo1 值為[1,2]D.foo1 值為[1,2,3]答案:B D鏈接:https://www.nowcoder.com/profile/153165401/myFollowings/detail/20055659來源:牛客網2.下列程序打印…

ios10不能定位 window.navigator.geolocation.getCurrentPosition(定位第一節)

原文連接: https://blog.csdn.net/michael_ouyang/article/details/54137709 --------------------------------------------------------- 問題分析: 目前由于許多蘋果用戶都升級到了iOS系統,蘋果的iOS 10已經正式對外推送,…

php網站無法顯示,php – 在UTF-8網站上無法正確顯示的字符

我已經完成了我能想到的一切,但是在這個網頁上沒有正確顯示特殊字符.例如,在數據庫中它是:但在網站上它是:Nouveaux R�alistes這是我檢查過的一切……數據庫設置為UTF-8:該頁面是用NetBeans編寫的,文檔編碼設置為UTF-8&#xff1a…

ios如何獲取gps坐標(定位第二節)

原文連接: https://blog.csdn.net/michael_ouyang/article/details/54378338 -------------------------------------------------------------------- 在上一篇文章,解決ios 10不能定位的問題,把navigator.geolocation.getCurrentPosition…

java并發編程——線程池的工作原理與源碼解讀

2019獨角獸企業重金招聘Python工程師標準>>> 線程池的簡單介紹 基于多核CPU的發展,使得多線程開發日趨流行。然而線程的創建和銷毀,都涉及到系統調用,比較消耗系統資源,所以就引入了線程池技術,避免頻繁的線…

php pcre回溯攻擊,php preg_match pcre回溯繞過

原理需要知識:正則NFA回溯原理,php的pcre.backtrack_limit設置。正則NFA回溯原理正則表達式是一個可以被"有限狀態自動機"接受的語言類。"有限狀態自動機",擁有有限數量的狀態,每個狀態可以遷移到零個或多個狀態,輸入字串決定執行哪個狀態的遷移…

電驢更新地址

emule是通過ED2K網絡和KAD網絡尋找、連接其他emule客戶端的,所以服務器列表和KAD節點文件是emule的必需文件。 有些新手由于下載官方原版emule壓縮包或其他未集成這些必需文件的emule壓縮包,從而出現“連接不上ED2K與KAD”問題。所以學會下載更新服務器…

Vue CLI 3 可以使用 TypeScript 生成新工程

TypeScript 支持 在 Vue 2.5.0 中,我們大大改進了類型聲明以更好地使用默認的基于對象的 API。同時此版本也引入了一些其它變化,需要開發者作出相應的升級。閱讀博客文章了解更多詳情。 發布為 NPM 包的官方聲明文件 靜態類型系統能幫助你有效防止許多潛…