溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中怎么使用ipvsadm配置LVS集群

發(fā)布時(shí)間:2021-08-05 21:17:18 來(lái)源:億速云 閱讀:318 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹“Linux中怎么使用ipvsadm配置LVS集群”,在日常操作中,相信很多人在Linux中怎么使用ipvsadm配置LVS集群?jiǎn)栴}上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux中怎么使用ipvsadm配置LVS集群”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

LVS集群有DR、TUN、NAT三種配置模式,可以對(duì)www服務(wù)、FTP服務(wù)、MAIL服務(wù)等做負(fù)載均衡,下面通過(guò)搭建www服務(wù)的負(fù)載均衡實(shí)例,講述基于DR模式的LVS集群配置。
  一、 Director Server的配置
  在Director Server上配置LVS負(fù)載均衡集群,有兩種方法:
  a. 通過(guò)ipvsadm命令行進(jìn)行配置
  b. 通過(guò)Redhat提供的工具piranha來(lái)配置LVS
  通過(guò)ipvsadm命令行方式配置LVS
  安裝IPVS后,就可以配置LVS集群了,首先在Director Server上綁定一個(gè)虛擬IP(也叫VIP),此IP用于對(duì)外提供服務(wù),執(zhí)行如下命令:

代碼如下:


  [root@localhost ~]#ifconfig eth0:0 192.168.60.200 broadcast 192.168.60.200 netmask 255.255.255.255 up


  此處在eth0設(shè)備上綁定了一個(gè)虛擬設(shè)備eth0:0,同時(shí)設(shè)置了一個(gè)虛擬IP是192.168.60.200,也就是上面我們規(guī)劃的IP地址,然后指定廣播地址也為192.168.60.200,需要特別注意的是,這里的子網(wǎng)掩碼為255.255.255.255。
  然后給設(shè)備eth0:0指定一條路由,執(zhí)行如下指令:

代碼如下:


  [root@localhost ~]#route add -host 192.168.60.200 dev eth0:0


  接著啟用系統(tǒng)的包轉(zhuǎn)發(fā)功能,從而使系統(tǒng)充當(dāng)路由器,執(zhí)行如下指令:

代碼如下:


  [root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward


  指令中,參數(shù)值為1時(shí)啟用ip轉(zhuǎn)發(fā),為0時(shí)禁止ip轉(zhuǎn)發(fā)。其實(shí)在DR模式中,開(kāi)啟系統(tǒng)的包轉(zhuǎn)發(fā)功能不是必須的,而在NAT模式下此操作是必須的。
  然后開(kāi)始配置ipvs,執(zhí)行如下操作:

代碼如下:


  [root@localhost ~]#ipvsadm -C
  [root@localhost ~]#ipvsadm -A -t 192.168.60.200:80 -s rr -p 600
  [root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.132:80 -g
  [root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.144:80 -g


   上面操作中,第一行是清除內(nèi)核虛擬服務(wù)器列表中的所有記錄,第二行是添加一條新的虛擬IP記錄。這個(gè)新的IP是192.168.60.200,同時(shí)指定 持續(xù)服務(wù)時(shí)間為600秒。第三、四行是在新加虛擬IP記錄中添加兩條新的Real Server記錄,并且指定LVS 的工作模式為直接路由模式。
  最后,啟動(dòng)LVS服務(wù),執(zhí)行如下操作:

代碼如下:


  [root@localhost ~]#ipvsadm


  這樣,LVS在Director Server上的配置就完成了。
  為了管理和配置的方便,可以將上面的操作寫(xiě)出一個(gè)腳本文件,腳本內(nèi)容如下:

代碼如下:


  #!/bin/bash
  VIP=192.168.60.200
  RIP1=192.168.60.132
  RIP2=192.168.60.144
  GW=192.168.60.1
  # set the Virtual IP Address
  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev eth0:0
  echo "1" >/proc/sys/net/ipv4/ip_forward
  #Clear IPVS table
  /sbin/ipvsadm -C
  #set LVS
  /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  #Run LVS
  /sbin/ipvsadm
  #end


  也可以寫(xiě)成可啟動(dòng)與停止的服務(wù)腳本,腳本內(nèi)容如下:

代碼如下:


  #!/bin/sh
  # description: Start LVS of Director server
  VIP=192.168.60.200
  RIP1=192.168.60.132
  RIP2=192.168.60.144
  ./etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo " start LVS of Director Server"
  # set the Virtual  IP Address and sysctl parameter
  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  echo "1" >/proc/sys/net/ipv4/ip_forward
  #Clear IPVS table
  /sbin/ipvsadm -C
  #set LVS
  /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  #Run LVS
  /sbin/ipvsadm
  ;;
  stop)
  echo "close LVS Directorserver"
  echo "0" >/proc/sys/net/ipv4/ip_forward
  /sbin/ipvsadm -C
  /sbin/ifconfig eth0:0 down
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  exit 1
  esac


  將此腳本命名為lvsDR文件,然后把文件放到/etc/init.d下,執(zhí)行:

代碼如下:


  [root@localhost ~]#chomd 755 /etc/init.d/lvsDR


  最后可以通過(guò)下面命令啟動(dòng)或停止LVS服務(wù):

代碼如下:


  service lvsDR {start|stop}


  到此為止,命令行方式配置Director Server完畢。
  
  二、Real server 的配置
   在lvs的DR和TUn模式下,用戶的訪問(wèn)請(qǐng)求到達(dá)真實(shí)服務(wù)器后,是直接返回給用戶的,而不再經(jīng)過(guò)前端的Director Server,因此,就需要在每個(gè)Real server節(jié)點(diǎn)上增加虛擬的VIP地址,這樣數(shù)據(jù)才能直接返回給用戶,增加VIP地址的操作可以通過(guò)創(chuàng)建腳本的方式來(lái)實(shí)現(xiàn),創(chuàng)建文件/etc /init.d/lvsrs,腳本內(nèi)容如下:

代碼如下:


  #!/bin/bash
  VIP=192.168.60.200
  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev lo:0
  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
  sysctl -p
  #end


  此操作是在回環(huán)設(shè)備上綁定了一個(gè)虛擬IP地址,并設(shè)定其子網(wǎng)掩碼為255.255.255.255,與Director Server上的虛擬IP保持互通,然后禁止了本機(jī)的ARP請(qǐng)求。

PS:ipvsadm命令的用法和格式如下:
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
[-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface]
ipvsadm --stop-daemon
ipvsadm -h
命令選項(xiàng)解釋?zhuān)?br/>有兩種命令選項(xiàng)格式,長(zhǎng)的和短的,具有相同的意思。在實(shí)際使用時(shí),兩種都可以。
-A --add-service 在內(nèi)核的虛擬服務(wù)器表中添加一條新的虛擬服務(wù)器記錄。也就是增加一臺(tái)新的虛擬服務(wù)器。
-E --edit-service 編輯內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-D --delete-service 刪除內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-C --clear 清除內(nèi)核虛擬服務(wù)器表中的所有記錄。
-R --restore 恢復(fù)虛擬服務(wù)器規(guī)則
-S --save 保存虛擬服務(wù)器規(guī)則,輸出為-R 選項(xiàng)可讀的格式
-a --add-server 在內(nèi)核虛擬服務(wù)器表的一條記錄里添加一條新的真實(shí)服務(wù)器記錄。也就是在一個(gè)虛擬服務(wù)器中增加一臺(tái)新的真實(shí)服務(wù)器
-e --edit-server 編輯一條虛擬服務(wù)器記錄中的某條真實(shí)服務(wù)器記錄
-d --delete-server 刪除一條虛擬服務(wù)器記錄中的某條真實(shí)服務(wù)器記錄
-L|-l --list 顯示內(nèi)核虛擬服務(wù)器表
-Z --zero 虛擬服務(wù)表計(jì)數(shù)器清零(清空當(dāng)前的連接數(shù)量等)
--set tcp tcpfin udp 設(shè)置連接超時(shí)值
--start-daemon 啟動(dòng)同步守護(hù)進(jìn)程。他后面可以是master 或backup,用來(lái)說(shuō)明LVS Router 是aster 或是backup。在這個(gè)功能上也可以采用keepalived 的VRRP 功能。
--stop-daemon 停止同步守護(hù)進(jìn)程
-h --help 顯示幫助信息
其他的選項(xiàng):
-t --tcp-service service-address 說(shuō)明虛擬服務(wù)器提供的是tcp 的服務(wù)[vip:port] or [real-server-ip:port]
-u --udp-service service-address 說(shuō)明虛擬服務(wù)器提供的是udp 的服務(wù)[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 說(shuō)明是經(jīng)過(guò)iptables 標(biāo)記過(guò)的服務(wù)類(lèi)型。
-s --scheduler scheduler 使用的調(diào)度算法,有這樣幾個(gè)選項(xiàng)rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默認(rèn)的調(diào)度算法是: wlc.
-p --persistent [timeout] 持久穩(wěn)固的服務(wù)。這個(gè)選項(xiàng)的意思是來(lái)自同一個(gè)客戶的多次請(qǐng)求,將被同一臺(tái)真實(shí)的服務(wù)器處理。timeout 的默認(rèn)值為300 秒。
-M --netmask netmask persistent granularity mask
-r --real-server server-address 真實(shí)的服務(wù)器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式為直接路由模式(也是LVS 默認(rèn)的模式)
-i --ipip 指定LVS 的工作模式為隧道模式
-m --masquerading 指定LVS 的工作模式為NAT 模式
-w --weight weight 真實(shí)服務(wù)器的權(quán)值
--mcast-interface interface 指定組播的同步接口
-c --connection 顯示LVS 目前的連接 如:ipvsadm -L -c
--timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 顯示同步守護(hù)進(jìn)程狀態(tài)
--stats 顯示統(tǒng)計(jì)信息
--rate 顯示速率信息
--sort 對(duì)虛擬服務(wù)器和真實(shí)服務(wù)器排序輸出
--numeric -n 輸出IP 地址和端口的數(shù)字形式

到此,關(guān)于“Linux中怎么使用ipvsadm配置LVS集群”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI