02-部署LVS-DR群集

1.LVS-DR工作原理

LVS-DR模式,Director Server作為群集的訪問入口,不作為網購使用,節點Director Server 與 Real Server 需要在同一個網絡中,返回給客戶端的數據不需要經過Director Server 為了響應對整個群集的訪問,Director Server 與 Real Server都需要配置VIP地址,工作原理

2.數據包流向分析

1.客戶端發送請求到 Director Server請求的數據報文(源IP 是CIP,目標IP是到達內核空間)

2.Director Server 和 Real Server在同一個網絡中,數據通過數據鏈路層來傳輸

實驗案例

2.2:直接路由模式(LVS-DR)

1:實驗環境:?

2:配置負載調度器

(1)配置虛擬IP地址VIP

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0

[root@localhost network-scripts]# vi ifcfg-ens33:0

TYPE=Ethernet

BOOTPROTO=static

NAME=ens33:0

DEVICE=ens33:0

ONBOOT=yes

IPADDR=192.168.10.172

NETMASK=255.255.255.0

[root@localhost network-scripts]# systemctl restart network

(2)調整內核參數,禁止轉發重定向報文

由于 LVS 負載調度器和各節點需要共用 VIP 地址,應該關閉Linux 內核的重定向

[root@localhost ~]# vi /etc/sysctl.conf

在末尾添加:

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

[root@localhost ~]# sysctl -p

(3)配置負載分配策略

[root@localhost ~]#yum -y install ipvsadm

[root@localhost ~]#ipvsadm -v?????????? \\查看版本

[root@localhost ~]# setenforce 0

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]#ipvsadm -C

[root@localhost ~]# ipvsadm -A -t 192.168.10.172:80 -s rr

[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1

[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 1

[root@localhost ~]# ipvsadm-save

-A -t localhost.localdomain:http -s rr

-a -t localhost.localdomain:http -r 192.168.10.102:http -g -w 1

-a -t localhost.localdomain:http -r 192.168.10.103:http -g -w 1

[root@localhost ~]# systemctl enable ipvsadm

3:配置web節點服務器

(1)配置虛擬ip地址VIP

[root@localhost ~]# setenforce 0

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]#cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0

[root@localhost network-scripts]# vi ifcfg-lo:0

修改

DEVICE=lo:0

NETMASK=255.255.255.255?????????? \\子網掩碼必須為255.255.255.255

IPADDR=192.168.10.172

ONBOOT=yes

[root@localhost network-scripts]# systemctl restart network

[root@localhost network-scripts]# ifconfig

[root@localhost network-scripts]# cd

[root@localhost ~]# vi /etc/rc.local

添加

/sbin/route add -host 192.168.10.172 dev lo:0

[root@localhost ~]# route add -host 192.168.10.172 dev lo:0

(2)調整內核參數

[root@localhost ~]# vi /etc/sysctl.conf

添加:

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

注釋:

arp_ignore =1???

當收到arp請求時,只有ARP請求數據包所請求的IP地址屬于當前網卡的IP地址,才會回應ARP響應數據包。

arp_announce = 2

當發送arp請求時,忽略IP數據包的源IP地址,總是選擇網卡所配置的首選IP地址作為ARP請求數據包的發送方IP地址

目的:因為lo:0的ip地址和調度器的ens33:0的ip地址是一樣的,為了不造成ip沖突,要禁止更新VIP的mac地址。

[root@localhost ~]# sysctl -p

(3)安裝httpd創建測試網頁

[root@localhost ~]# yum -y install httpd

yum install nfs-utils

[root@localhost ~]# mount 192.168.10.105:/opt/wwwroot /var/www/html

[root@localhost ~]#vi /var/www/html/index.html

<h1>LVS負載均衡群集--測試頁面01</h1>

(4)啟用httpd服務

[root@localhost ~]# systemctl start httpd

(5)配置第二臺web節點

配置方法與第一臺完全相同

注意:在實驗環境中,為了驗證負載過程,第二臺web服務器的網站可以可第一個不一樣,所以這兩個web服務器就沒有必要使用NFS,直接在web服務器本地創建測試網頁文件即可

4:在client上測試網站

http://192.168.10.172

測試時頻繁刷新頁面

也可以用腳本測試:

[root@localhost ~]# for i in $(seq 10); do curl http://192.168.10.172? ;done

5:在LVS調度器上查看LVS策略

[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? 192.168.10.172:80 rr

? -> 192.168.10.102:80???????????? Route?? 1????? 0????????? 0????????

? -> 192.168.10.103:80???????????? Route?? 1????? 0????????? 0?

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

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

相關文章

Java WebService記

Web Services開發 常用的 Web Services 框架有 Apache Axis1 、 Apache Axis2 、 Apache CXF &#xff0c;而 Apache Axis1 已經逐漸被淘汰所以本文不會討論&#xff0c;重點關注 Apache Axis2 及 Apache CXF 。 Apache Axis2 在IDEA中新建 Axis2Demo 項目后右鍵選擇 添加框架…

每天10個js面試題(一)

1.js基本數據類型&#xff1f; JavaScript 共有八種數據類型&#xff0c;分別是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。其中 Symbol 和 BigInt 是 ES6 中新增的數據類型 2.let、const、var的區別&#xff1f; let和const有暫時性死區&#xff0…

開源模型應用落地-LangChain高階-智能體探究-agent類型(一)

一、前言 大模型具有非常強大的功能,可以解答疑問、撰寫報告和文檔、總結內容、進行翻譯等各種日常工作任務。然而,大模型還可以應用于更多的場景,發揮出更強大的作用。 通過智能體,我們可以實現許多有價值的事情,比如:在日常生活中,我們能借助智能體實現智能家居的自動化…

【滲透入門】SQL注入

聲明&#xff1a;本文檔或演示材料僅供教育和教學目的使用&#xff0c;任何個人或組織使用本文檔中的信息進行非法活動&#xff0c;均與本文檔的作者或發布者無關。 文章目錄 什么是sql注入sql注入舉例防御方式練習靶場 什么是sql注入 SQL注入是一種網絡安全漏洞&#xff0c;攻…

【Android源碼】Gerrit安裝

前言 如果你打開 https://android.googlesource.com/platform/manifest&#xff0c;就會發現&#xff0c;google官方管理Android源碼&#xff0c;使用的是Gerrit。Android系統源碼是非常大的&#xff0c;用Git肯定是不適合。對于大型項目&#xff0c;得用Gerrit&#xff0c;今…

NoSQL之Redis高可用與優化

一、Redis高可用 在web服務器中&#xff0c;高可用是指服務器可以正常訪問的時間&#xff0c;衡量的標準是在多長時間內可以提供正常服務&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis語境中&#xff0c;高可用的含義似乎要寬泛一些&#xff0c;除了保證…

二叉樹的鏈式訪問 與 二叉樹專題

目錄 二叉樹的前、中、后序遍歷求二叉樹第K層節點的個數二叉樹查找值為x的節點leetcode相同的樹對稱二叉樹二叉樹的前序遍歷另一棵子樹牛客 二叉樹的遍歷 二叉樹的前、中、后序遍歷 1.前序遍歷&#xff1a;先訪問根節點&#xff0c;再訪問左子樹&#xff0c;最后訪問右子樹 根…

【備忘】fastadmin 如何獲取列表選中行的pk

去官方搜沒搜出來&#xff0c;還得是萬能的網友厲害。 //獲取選中項 $(document).on("click", ".btn-selected", function () {// 獲取選中項idsconsole.log(JSON.stringify(Table.api.selectedids(table)));// 獲取選中項所有數據console.log(JSON.strin…

輸入一個整數n,輸出n的約數為質數的數?兩個問題n的約數問題和n的質數問題

輸入一個整數n&#xff0c;輸出n的約數為質數的數&#xff1f; 一.首先解決n的質數的問題&#xff08;1&#xff09;枚舉法&#xff08;2&#xff09;埃氏篩 二.解決n的質數約數問題 一.首先解決n的質數的問題 &#xff08;1&#xff09;枚舉法 考慮質數的定義&#xff1a;在大…

conda中創建環境并安裝tensorflow1版本

conda中創建環境并安裝tensorflow1版本 一、背景二、命令三、驗證一下 一、背景 最近需要使用tensorflow1版本的&#xff0c;發個記錄&#xff01; 二、命令 conda create -n tf python3.6 #創建tensorflow虛擬環境 activate tf #激活環境&#xff0c;每次使用的時候都…

理解策略梯度方法:從REINFORCE到PPO

今年2月的時候&#xff0c;導師突然告訴我Ron William離世了。他算是我導師的 a life time friend&#xff0c;關系很好&#xff0c;我做畢業論文的時候&#xff0c;他還來參與了論文的答辯。Ron是一個很友善的老頭&#xff0c;和他在強化學習領域的影響力比起來&#xff0c;本…

汽車信息安全--數據安全:圖像脫敏

General 隨著車聯網的發展&#xff0c;汽車越來越智能化&#xff0c;就像是一部“裝著四個輪子的手機”。 有人說&#xff0c;智能手機就如同一部竊聽器&#xff0c;無論你開機或者關機&#xff0c;它都會無時不刻地監聽著用戶的一舉一動。 可想而知&#xff0c;智能車輛上…

馬工程刑法期末復習筆記重點2

馬工程刑法期末復習筆記重點2

SpringBoot 參數校驗

參數校驗 引入springvalidation依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>參數前添加Pattern public Result registry(Pattern(regexp &qu…

Java面向對象練習(2.商品類)(2024.7.4)

商品類 package Supermarket20240704;public class Commodity {private String name;private double price;private int inventory;public Commodity(){};public Commodity(String name, double price, int inventory){this.name name;this.price price;this.inventory inv…

Java核心技術【十九】Iterator與增強for循環

Java中的Iterator與增強for循環 在Java編程中&#xff0c;迭代是處理集合元素的一種常見操作。Java提供了多種迭代集合元素的方式&#xff0c;其中最常用的兩種是Iterator和增強for循環&#xff08;也稱為“for-each”循環&#xff09;。本文將深入探討這兩種迭代方式的特性和…

CLAM用于弱監督WSI分析

計算病理學&#xff08;computational pathology&#xff09;下的深度學習方法需要手動注釋大型 WSI 數據集&#xff0c;并且通常存在領域適應性和可解釋性較差的問題。作者報告了一種可解釋的弱監督深度學習方法&#xff0c;只需要WSI級標簽。將該方法命名為聚類約束注意力多實…

Perl 格式化輸出:提升代碼可讀性的技巧

引言 Perl 是一種功能強大的腳本語言&#xff0c;廣泛用于文本處理、系統管理、網絡編程等多個領域。在 Perl 編程中&#xff0c;代碼的格式化輸出不僅有助于提升代碼的可讀性&#xff0c;還能增強程序的用戶體驗。本文將詳細介紹如何在 Perl 中實現代碼的格式化輸出。 Perl …

【HarmonyOS4學習筆記】《HarmonyOS4+NEXT星河版入門到企業級實戰教程》課程學習筆記(二十一)

課程地址&#xff1a; 黑馬程序員HarmonyOS4NEXT星河版入門到企業級實戰教程&#xff0c;一套精通鴻蒙應用開發 &#xff08;本篇筆記對應課程第 31 節&#xff09; P31《30.數據持久化-關系型數據庫》 上一節中學習了使用用戶首選項的方式實現數據持久化&#xff0c;但用戶首…

微機原理 選擇題

D C MOV、PUSH、POP、XLAT&#xff08;查表&#xff09;、IN、OUT不影響標志位 D B D C D C D B 1. (單選題, 5分)8位無符號數(字節)表示的數值范圍是( ), 16位無符號數(字)表示的數值范圍是( )。 A. 0~128 0~32768B. 0~255 0~655…