Cluster之功能主要是用作负载平衡,由virtual server对外连接internet并负责将要求服务之封包,依排程演算,分配给真正提供服务的real server群,达到负载平衡;同时工作的分配可以避开故障无法提供服务之real server由其它real server继续提供服务,防止在单一服务器的环境下主机的故障造成服务中断的情形;而virtual server部分为单一对外通连的出口,负载极重,可以用HA方式由备援主机保障其工作正常持续运行;piranha为REDHAT设定cluster的GUI接口设定程序,可单独设定cluster功能,亦可加上HA备援功能。
1.~4.为基本cluster之架设步骤
5.为加入HA功能架设,针对virtual server提供备援主机功能
6.遭遇到之问题与解决方案
1. 安装所需套件
I. piranha-gui-0.4.12-2lp (GUI接口cluster设定工具)
II. piranha-0.4.12-2lp
III. ipchains-1.3.9-6lp (架设NAT)
取得套件,或mount到光盘,进入RPMS目录进行安装
执行 # rpm –Uvh piranha*
# rpm –Uvh ipchains*
2. 架构:
I. real server群:
真正提供服务的server(web server),在NAT型式下是以内部虚拟网域的形式,设定如同一般虚拟网域中clinet端。
使用网域:192.168.10.0/24
II. virtual server:
作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但因为在NAT型式下必须对进出封包进行改写,所以负担亦重对外eth0:用DHCP方式,测试时 ip:202.39.145.156
eth0:0 :202.39.145.146
对内eth1:192.168.10.12
eth1:0 :192.168.10.1
NAT形式下仅virtual server有真实ip
Real server群则为透过virtual server
3.real server的架设(两架)
架设方式同一般使用虚拟ip之局域网络
I. 设网卡ip
server1 :192.168.10.18/24
server2 :192.168.10.28/24
II. 每台server均将default gateway指向192.168.10.1
192.168.10.1为该网域唯一对外之信道,设定在virtual server上,使该网域进出均需通过virtual server
III. 每台server均开启httpd功能
每台server均开启httpd功能供web server服务,可以在各real server上放置不同内容之网页,可由浏览器观察其对各real server读取网页的情形。
4.virtual server的架设
I. 设网卡ip
对外eth0:ip用DHCP方式取得,测试时ip:202.39.145.156/26
eth0:0 :202.39.145.146/26
对内eth1:192.168.10.12/24
eth1:0 :192.168.10.1/24
II. 设定NAT功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/ip_always_defrag
# ipchains –P forward MASQ
III. 设定piranha
进入X-window中
a. 执行面板à系统àpiranha
b. 设定”整体配置”(Global Settings)
主LVS服务器主机IP: 202.39.145.156
选定网络地址翻译(预设)
NAT路径名称: 192.168.10.1
NAT 路径装置: eth1:0
c. 设定虚拟服务器(Virtual Servers)
添加à编辑
虚拟服务器部分:(Virtual Server)
名称: (任意取名)
应用: http
协议: tcp
连接埠: 80
地址: 202.39.145.146
装置: eth0:0
重入时间: 180 (预设)
服务延时: 10 (预设)
加载监控工具: ruptime (预设)
调度策略: Weighted least-connections
持续性: 0 (预设)
持续性屏蔽: 255.255.255.255 (预设)
按下激活
实时服务器部分:(Real Servers)
添加à编辑
名字: (任意取名)
地址: 192.168.10.18
权重: 1 (预设)
按下激活
另一架real server同上,地址:192.168.10.28
d. 控制/监控(Controls/Monitoring)
控制:piranha功能的激活与停止
上述内容设定完成后即可按开始键激活piranha
监控器:显示ipvsadm设定之routing table内容
可立即更新或定时更新
5.备援主机的设定(HA)
单一virtual server的cluster架构virtual server 负担较大,提供另一主机担任备援,可避免virtual server的故障而使对外服务工作终止;备援主机随时处于预备状态与virtual server相互侦测
I. 备援主机:
eth0: ip 202.30.145.151(用DHCP方式取得)
eth1: ip 192.168.10.2
同样需安装piranha,ipvsadm,ipchains等套件
II. 开启NAT功能(同 4.II.)
III. 在virtual server(202.39.145.156)主机上设定
a.执行piranhaà冗余度
b.按下”激活冗余度”
冗余LVS服务器IP: 202.39.145.151
HEARTBEAT间隔(秒数): 2 (预设)
假定在…秒后进入DEAD状态: 5 (预设)
HEARTBEAT连接埠: 539 (预设)
c.按下”套用”
d..至”控制/监控”页
按下”在当前执行层添加PULSE DEAMON”
按下”开始”
IV. 在监空器按下”自动更新”
这样可由窗口中看到ipvsadm所设定的routing table,并且动态显示real server联机情形,若real server故障,该主机亦会从监视窗口中消失。
V. 激活备援主机之pulse daemon
执行# /etc/rc.d/init.d/pulse start
至此,HA功能已经激活,备援主机及virtual server由pulse daemon定时相互探询,一但virtual server故障,备援主机立刻激活代替;至virtual server 正常上线后随即将工作交还virtual server。
6.架设过程遭遇之问题与对策:
Q1:float ip 202.39.145.146 (eth0:0)设定后无法联机
A1:设定的ip与名称需在dns注册,若无注册可在/etc/hosts中加入该主机名称及ip,即能在浏览器中用http://202.39.145.146 连上web server
Q2:第一次设定piranha之虚拟服务器部分其地址预设为0.0.0.0修改为指定的ip地址后,关闭再开启,其地址变为255.255.255.255,更改无效
A2:需直接修改/etc/lvs.cf
将函式virtual {
address = 255.255.255.255 eth0:0 ß改为您设定的地址(202.39.145.146)
active = 1
: (略)}
存盘后离开,回到piranha即可看见虚拟服务器部分其地址设定ok
Q3:重新激活内部real server后外部浏览器无法读到该主机网页
A3:检查该real server之route table是否default gateway设定消失
执行# route 检查一下若无default gateway
加上default gateway:执行 # route add default gw 192.168.10.1 dev eth0
Q4:执行中real server断线后如何重新加入提供服务行列
A4:若有一台real server故障而无法提供服务,该主机会从ipvsadm的routing table中消失(可由监控器中看到变化),由剩下的正常real server提供服务,在排除earl server故障原因后,按piranhaà控制à停止à开始,即可将修复之real server重新加入提供服务行列
Q5:为何使用virtual ip设定(eth0:0/eth1:0)
A5:这是为了提供HA功能,备援virtual server取代故障的virtual server时可以转换主机使用,在不提供HA功能的情况下亦可以不用virtual ip只用真实ip来设定,cluster的功能相同
Q6:执行piranha 按下开始键出现error讯息:
Error: /etc/rc.d/init.d/pulse start 失败
A6:开启terminal窗口,在命令列提示符号下执行
# ps aux
可以看到 nanny 这个daemon在位激活piranha的情况下仍存在未被上一次按下”停止”键所终止
# kill –9
停止nanny后,再按下piranhaà控制à开始键即可重新执行
Q7:加上HA备援主机功能时,按下套用后出现error讯息:
执行/usr/bin/rcp /etc/lvs.cf root@202.39.145.151:/etc/lvs.cf 失败
Permission denied
A7:这牵涉到rcp指令的使用,可直接用磁盘copy的方式复制/etc/lvs.cf 至备援主机之/etc/lvs.cf ;而lvs.cf档案本身需要修正(两个lvs.cf需相同)
: (略)
primary = 202.39.145.156
nat_router = 192.168.10.1 eth1:0
service = lvs
backup_active = 1 ß加入此行
backup = 202.39.145.151 ß加入此行
: (略)
在未了解rcp指令之前,暂时可用此法完成HA
Q8:备援主机成功取代后,但外部的浏览器仍无法正常读取网页,或联机失败?
A8:在使用NAT型式架设cluster的环境下对外之virtual server主机必须具有NAT功能,所以至少必须先执行NAT功能设定,才能正确取代
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/ip_always_defrag
# ipchains –P forward MASQ
Q9:如何激活备援主机?如何还原virtual server?
A9:virtual server 故障后,备援主机上的pulse daemon 在侦测得之后,会自动激活,并依照/etc/lvs.cf 将相关设定转移至备援主机上,完全取代virtual server功能;一但virtual server主机修复上线,原virtual server则成为备援主机,如此相互备援;若要立即换回原virtual server,需在接上网络前激活virtual server上的 pulse daemon,上线后,pulse daemon会立刻将设定转移至原来之virtual server,备援主机则再次进入备援等待状态。