設計目標
完成一個包含5個節點的RHCS集羣,測試功能,實現HTTP,SSH服務的任務調度和節點監控任務。
設計功能簡要說明
在VMWARE環境下,完成五個節點的LVS+KEEPALIVED系統安裝調試。要求兩臺虛擬機完成LOADER調度工作+MONITOR監控節點工作,兩臺虛擬機完成HTTP,SSH服務工作,一臺虛擬機管理ISCSI設備。
設計步驟
- NTP服務安裝調試
- LVS,KEEPALIVED子系統調試,數據整理
- GFS+ISCSI子系統調試,數據整理
- 集成測試
總體邏輯結構說明
邏輯結構有四部分組成:
①調度監控部分:完成三個工作,第一是接受所有的客戶請求包,第二是按照調度算法調度任務,第三是監控各個主機的工作狀態。
②後臺服務部分:完成業務請求,譬如完成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上層層服務器
- 編輯配置文件/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
- 啓動ntpd服務並設置爲開機自動啓動
service ntpd restart ; chkconfig ntpd on
配置NTP下層服務器
- 編輯配置文件/etc/ntp.conf
a) 刪除所有server開頭的行
b) 添加以下兩行,用來設置上層服務器地址,並定義同步時間爲
server 192.168.146.160 maxpoll 3
- 啓動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服務
- 查看系統是否已經安裝了httpd,如果沒有,則安裝
- 將主機名和IP寫入到/var/www/html/index.html
- 啓動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裏的內容另一臺節點上也會更改。