LVS+keepalived+gfs+ISCSI搭建高可用負載均衡Web集羣

設計目標

完成一個包含5個節點的RHCS集羣,測試功能,實現HTTP,SSH服務的任務調度和節點監控任務。

設計功能簡要說明

在VMWARE環境下,完成五個節點的LVS+KEEPALIVED系統安裝調試。要求兩臺虛擬機完成LOADER調度工作+MONITOR監控節點工作,兩臺虛擬機完成HTTP,SSH服務工作,一臺虛擬機管理ISCSI設備。

設計步驟

  1. NTP服務安裝調試
  2. LVS,KEEPALIVED子系統調試,數據整理
  3. GFS+ISCSI子系統調試,數據整理
  4. 集成測試

總體邏輯結構說明

邏輯結構有四部分組成:
①調度監控部分:完成三個工作,第一是接受所有的客戶請求包,第二是按照調度算法調度任務,第三是監控各個主機的工作狀態。
②後臺服務部分:完成業務請求,譬如完成HTTP應答或FTP應答。
③存儲部分:提供統一的數據存儲平臺。RS需要的數據均通過網絡從改部分讀取和寫入。
④時間同步部分:完成集羣中各個節點的系統時鐘同步,保證業務流程的執行。

物理結構說明

在這裏插入圖片描述

系統說明

地址規劃表
節點類型 主機名 IP地址
主DS RS1 192.168.146.162
備用DS RS2 192.168.146.161
Master web MasterWeb 192.168.146.160
Backup web BackupWeb 192.168.146.159
ISCSI server ISCSI 192.168.146.163
VIP 192.168.146.200

設計過程

啓動ipv6

vi /etc/modprobe.d/blacklist.conf

註釋blacklist ipv6
註釋install ipv6 /bin/true

配置NTP,同步時間

五臺機子選一臺做爲NTP上層服務器
配置NTP上層層服務器

  1. 編輯配置文件/etc/ntp.conf
    a) 修改restrict default 和restrict -6 default爲下面的值
restrict default nomodify
restrict -6 default nomodify

b) 刪除所有server開頭的行
c) 添加以下兩行,使用本機CMOS時鐘作爲標準時間來源,並把本服務器設置爲第8層

server  127.127.1.0
fudge  127.127.1.0  stratum  8
  1. 啓動ntpd服務並設置爲開機自動啓動
 service  ntpd  restart ; chkconfig  ntpd  on

配置NTP下層服務器

  1. 編輯配置文件/etc/ntp.conf
    a) 刪除所有server開頭的行
    b) 添加以下兩行,用來設置上層服務器地址,並定義同步時間爲
server  192.168.146.160  maxpoll  3
  1. 啓動ntpd服務並設置爲開機自動啓動
 service  ntpd  restart ; chkconfig  ntpd  on

使用date命令可查看本機時間。

LVS+Keepalived搭建Load Balancer

1、在Master web服務器和Backup web服務器上安裝keepalived(這裏前提系統中有keepalived安裝包)

yum install -y keepalived

2、編輯keepalived.conf文檔

vi /etc/keepalived/keepalived.conf

Master web服務器的keepalived.conf如下

global_defs {
	router_id MasterWeb
}
vrrp_instance  NW3007 {
	state  MASTER
	interface  eth0
	virtual_router_id  31
	priority  100
	advert_int  5
	track_interface {
		eth0	}
	authentication {
		auth_type PASS
		auth_pass gr123456
	}
	virtual_ipaddress {
		192.168.146.200
	}
}

virtual_server 192.168.146.200 80{
	delay_loop 3
	lb_algo wrr
	lb_kind DR
	protocol TCP
	ha_suspend

	real_server 192.168.146.161 80 {
	weight 3
	TCP_CHECK {
		connect_timeout 3
		}
	}
	real_server 192.168.146.162 80 {
	weight 3
	TCP_CHECK {
		connect_timeout 3
		}
	}
}

Backup web服務器keepalived.conf如下

global_defs {
	router_id BackupWeb
}
vrrp_instance  NW3007 {
	state  BACKUP
	interface  eth0
	virtual_router_id  31
	priority  96
	advert_int  5
	track_interface {
		eth0	}
	authentication {
		auth_type PASS
		auth_pass gr123456
	}
	virtual_ipaddress {
		192.168.146.200
	}
}

virtual_server 192.168.146.200 80{
	delay_loop 3
	lb_algo wrr
	lb_kind DR
	protocol TCP
	ha_suspend

	real_server 192.168.146.161 80 {
	weight 3
	TCP_CHECK {
		connect_timeout 3
		}
	}
	real_server 192.168.146.162 80 {
	weight 3
	TCP_CHECK {
		connect_timeout 3
		}
	}
}

3、啓動keepalived服務並設置爲開機自啓

chkconfig keepalived on
service keepalived start

4、安裝ipvsadm
加載ip_vs

modprobe ip_vs
yum install -y ipvsadm
service ipvsadm start
ipvsadm -L -n

在這裏插入圖片描述
5、在RS1和RS2服務器上通過以下內容的shell腳本啓停LVS功能
lvs.sh

#!/bin/bash  
#description : start realserver  
SNS_VIP=192.168.146.200 #定義了VIP變量,必須跟真是服務在一個網段
/etc/rc.d/init.d/functions  
case "$1" in  
start)  
echo " start LVS of REALServer"  

 #增加並配置虛擬網卡 lo:0
/sbin/ifconfig lo:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up 
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  
;;  
stop)  
/sbin/ifconfig lo:0 down  
echo "close LVS Directorserver"  
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce  
;;  
*)  
echo "Usage: $0 {start|stop}"  
exit 1  
esac
chmod a+x lvs.sh
chmod a+x /etc/rc.d/init.d/functions
./lvs.sh start

運行成功後通過ifconfig命令可以發現多了個lo:0的網卡
6、在RS1和RS2上開啓httpd服務

  1. 查看系統是否已經安裝了httpd,如果沒有,則安裝
  2. 將主機名和IP寫入到/var/www/html/index.html
  3. 啓動httpd服務進程
    腳本如下:
 #!/bin/bash
       #if [`yum list install | grep httpd|wc -l -eq 0 ];then
       #echo 'installing httpd'
       #output=`yum -y install httpd`
       #unset output
       #fi
       #echo "installed httpd"
      
      hostname=`hostname`
      ipadd=`ifconfig eth0|grep "inet addr:"|awk -F":" '{print $2}'|awk '{prin        t $1}'`
      echo $hostname+$ipadd > /var/www/html/index.html
      chkconfig httpd on
      service httpd resrat

7、驗證keepalived+lvs
在這裏插入圖片描述
8、gfs+ISCSI構建文件服務器
選取的服務器爲ISCSI(192.168.146.163)、RS1(192.168.146.162)、RS2(192.168.146.161)
此處ISCSI服務器用的是第二塊硬盤
(1)三臺機器設置主機名解析

echo "192.168.146.161 RS2" >> /etc/hosts
echo "192.168.146.162 RS1" >> /etc/hosts
echo "192.168.146.163 ISCSI" >> /etc/hosts

(2)ISCSI安裝luci,兩臺RS服務器安裝必要軟件包
ISCSI:

yum install -y luci
service luci start 

兩臺RS:

yum install -y ricci 
service ricci start
chkconfig ricci on
lvmconf --enable-cluster
yum install -y gfs2-utils lvm2-cluster rgmanager modcluster
chkconfig rgmanager on
chkconfig cman on
service rgmanager start
service cman start

啓動cman如出現錯誤:
Starting cman… xmlconfig cannot find /etc/cluster/cluster.conf [FAILED]
是因爲節點還沒有加入集羣,沒有產生配置文件/etc/cluster/cluster.conf。

echo  redhat  | passwd  --stdin ricci

使用passwd命令設置ricci用戶的密碼爲’redhat’,這個用戶及其密碼用於集羣間的交流認證。

(3)瀏覽器訪問https://192.168.146.163:8084
用戶密碼爲系統的root帳號密碼。
創建新集羣並把RS1和RS2加到集羣節點裏。
點擊Manager Clusters—> Create 創建一個集羣,集羣名稱,添加每個節點的主機名和密碼,勾選Download Packages、Reboot Nodes Before Joining Cluster、Enable Shared Storage Support,最後點擊Create Cluster創建集羣,創建過程中兩臺節點會重啓。重啓後可以看到節點狀態是Online,說明集羣配置成功
(4)ISCSI安裝scsi-target-utils

yum install -y scsi-target-utils
chkconfig tgtd on
service tgtd start
tgtadm --lld iscsi --op new --mode target --tid 1 -T webdata
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
tgtadm --lld iscsi --op show --mode target

在這裏插入圖片描述
可以看到多了個LUN
vi /etc/rc.local 將下面的配置寫入rc.local

tgtadm --lld iscsi --op new --mode target --tid 1 -T webdata
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

(5)RS1或RS2映射ISCSI上的/dev/sdb
映射:

yum install -y iscsi-initiator-utils 
iscsiadm -m discovery -t sendtargets -p 192.168.146.163
iscsiadm -m node -T webdata -p 192.168.146.163 -l

使用fdisk -l可查看多了一塊/dev/sdb的盤
(6)配置gfs文件系統

pvcreate /dev/sdb
vgcreate datavg /dev/sdb
lvcreate -L 4G -n lv1 datavg
cman_tool status|grep Name #查看cluster name

Cluster Name: gr_web

mkfs.gfs2 -p lock_dlm -t gr_web:gfs -j 2 /dev/datavg/lv1

(7)在RS1和RS2上掛在gfs

echo " /dev/datavg/lv1         /var/www/html           gfs2    defaults        0 0" >> /etc/fstab
mount -a

如果掛載bad請自行vi /etc/fstab
(8)驗證配置
修改某一節點(RS1或者RS2)的/var/www/html裏的內容另一臺節點上也會更改。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章