Lvs-DR+Heartbeat+ldirectord+iscsi高可用负载群集51CTO博客 - 牛牛娱乐

Lvs-DR+Heartbeat+ldirectord+iscsi高可用负载群集51CTO博客

2019-01-03 15:17:56 | 作者: 海之 | 标签: 装备,效劳,运用 | 浏览: 1763

Lvs-DR+Heartbeat+ldirectord+iscsi高可用负载群集

效劳器名

物理设备名

IP地址

网关

虚拟设备名

虚拟IP

主Directory

eth0

192.168.30.2

192.168.30.1

eth0:0

192.168.30.100

eth1

10.10.10.1


备Directory

eth0

192.168.30.3

192.168.30.1



eth1

10.10.10.2


Real Server1

eth0

192.168.30.4

192.168.30.1

lo:0

192.168.30.100

Real Server2

eth0

192.168.30.5

192.168.30.1

lo:0

192.168.30.100

DATA

eth0

192.168.30.6

192.168.30.1



首先请确保各个节点之间的物理连通性。实验意图:完成HA高可用性群集体系,LSA-DR直接路由进行负载均衡以及Directory和RealServer的健康勘探。

一、装备Directory1:

1、装备eth0的地址

2、装备eth0:0

3、装备eth1的地址

4、重启网络

5、装备Directory1的主机名

[root@localhost~]# vim /etc/sysconfig/network

[root@localhost~]# hostname Directory1

[root@localhost~]# logout

6、装备Directory的本地DNS

[root@Directory1~]# vim /etc/hosts

7、装置Heartbeat的软件包

heartbeat-2.1.4-9.el5.i386.rpm

heartbeat-devel-2.1.4-9.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

heartbeat-pils-2.1.4-10.el5.i386.rpm

heartbeat-stonith-2.1.4-10.el5.i386.rpm

libnet-1.1.4-3.el5.i386.rpm

perl-MailTools-1.77-1.el5.noarch.rpm

//下载地址:http://yunpan.cn/QbFZ4REqCjP8w


8、装备本地yum

[root@Directory1~]# mkdir /mnt/cdrom

[root@Directory1~]# mount /dev/cdrom /mnt/cdrom/

[root@Directory1~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

[root@Directory1~]# cd Heartbeat  //寄存Heartbeat的软件包目录

[root@Directory1Heartbeat]#yum localinstall *.rpm --nopgpcheck

9、装备Heartbeat效劳

① 从模版中复制装备文件到Heartbeat对应的/etc/目录下

[root@Directory1Heartbeat]# cd /usr/share/doc/heartbeat-2.1.4/

[root@Directory1Heartbeat]# cp ha.cf /etc/ha.d/

[root@Directory1Heartbeat]# cp haresources /etc/ha.d/

[root@Directory1Heartbeat]# cp authkeys /etc/ha.d/

② 修正Directory的心跳勘探装备文件ha.cf

[root@Directory1Heartbeat]# vim /etc/ha.d/ha.cf

③ 装备验证密钥(位了完成两边身份验证)

[root@Directory1Heartbeat]# vim /etc/ha.d/authkeys

[root@Directory1Heartbeat]# chmod 600 /etc/ha.d/authkeys

//留意:假如不修正权限的话,发动Heartbeat就会犯错。

④ 修正Heartbeat资源办理器:(用于办理Directory上的效劳,如web,ftp)

[root@Directory1Heartbeat]# vim /etc/ha.d/haresources

//192.168.30.100是虚拟IP,ipvsadm是Heartbeat操控的效劳类资源。

装置ipvsadm效劳:

留意在前面,运用yum装置一切的rpm时,其间一个软件包heartbeat-ldirectord.rpm会依靠与ipvsadm,所以ipvsadm也就装置了。假如无法确认是否装置,能够运用指令检查:

[root@Directory1Heartbeat]# rpm -qa |grep ipvsadm

[root@Directory1Heartbeat]# yum install ipvsadm

⑤ 装备ipvs转宣布

[root@Directory1Heartbeat]# ipvsadm -A -t 192.168.30.100:80 -s rr

[root@Directory1Heartbeat]# ipvsadm -a -t 192.168.30.100:80 -r 192.168.30.3 -g

[root@Directory1Heartbeat]#ipvsadm -a -t 192.168.30.100:80 -r 192.168.30.4 –g

//编写ipvs的转宣布格:

[root@Directory1 Heartbeat]# service ipvsadmsave

//保存ipvs规矩

[root@Directory1 Heartbeat]# cp/etc/init.d/ipvsadm /etc/ha.d/resource.d/

//将ipvsadm的操控脚本复制到heartbeat资源办理目录,为了使heartbeat能对ipvsadm进行操控

[root@Directory1]# service heartbeat start

//发动heartbeat效劳

⑩ 检查ipvsadm的状况

[root@Directory1]#ipvsadm -ln

二、装备Directory2

阐明:Directory2上的装备和Directory1根本相同。需求留意的当地是:

①Directory2的主机名

②Directory2的本地DNS

③Directory2上不必装备eth0:0

1、修正Heartbeat资源办理器:

[root@Directory2]#vim /etc/ha.d/haresources

2、装置完Heartbeat后,启用Heartbeat效劳:

[root@Directory2]#service heartbeat start

[root@Directory2]#ipvsadm -ln

//Directory2处于备份状况,所以ipvs中尽管装备了转发规矩,但是现在并未启用。

//能够看出Directory2中并没有虚拟IP资源。

三、装备Real Server1

1、在体系操控文件sysctl.conf中增加 arp内核参数:

[root@Server1]#vim /etc/sysctl.conf

2、装备Server1中的网卡设置:

装备完lo:0的网卡后,要增加一条到192.168.30.100的路由

[root@Server1]#route add -host 192.168.30.100 dev lo:0

//为了完成运用虚拟iP来拜访进行呼应,需求让从RealServer1就任何地址的数据包从lo:0的接口运用虚拟ip发送。

3、装置httpd

[root@Server1]#mkdir /mnt/cdrom

[root@Server1]#mount /dev/cdrom /mnt/cdrom

[root@Server1]#rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm

4、创立Server1测验页面;

[root@Server1]#cd /var/www/html

[root@Server1html]# echo “Server1”>index.html

5、发动httpd效劳:

[root@Server1]#service httpd start

四、Server2装备

阐明:Server2的装备和Server1的装备根本相同。

[root@Server2]#cd /var/www/html

[root@Server2html]# echo “Server2”>index.html

[root@Server1]#service httpd start

五、测验

1、当一切的Directory和Server都正常作业时,检查主Directory的ipvsadm状况:

//从上图能够看出,主Directory具有虚拟IP资源,而且操控转发战略。

2、检查备份Directory的状况:

//能够看出Directory2处于备份状况

3、拜访192.168.30.100

改写一次

至此阐明,群集运用的轮询办法进行拜访操控。

4、使Directory1失掉主操控形式

[root@Server1]#cd /usr/lib/heartbeat/

[root@Server1heartbeat]# ./hb_standby

[root@Server1heartbeat]# ipvsadm –ln

再次拜访192.168.30.100,仍然能够成功拜访。

六、装备动态的ipvs规矩表以及Directory之间的健康勘探

在前面的实验中,咱们运用的手动增加Directory的ipvs规矩表。这样在Directory中的ipvsadm中就好永久保存,但是有的时分后方的RealServer可能会呈现宕机,假如运用的轮询机制的话,Directory会轮番的将用户的恳求转发给后方的RealServer,但是某个Server此刻不能作业。这样以来,功率就会大大下降。为了完成ipvs规矩表的动态更新(当某个Server宕机后,Directory会自动删去该Server的规矩,当它又康复之后,自动增加这个规矩),咱们能够运用Heartbeat中的一个插件ldirectord效劳。

1、在Directory1中装置ldirectord效劳。

在装置Heartbeat时,咱们装置了一切的软件包,其间heartbeat-ldirectord便是ldirectord效劳的软件包。假如确认是否装置成功,能够运用指令检查:

[root@Directory1heartbeat]# rpm -qa |grep ldirectord

//呈现如图说是的阐明,则成功装置heartbeat-ldirectord

假如没有装置的话,进入heartbeat-ldirectord地点的目录中,运用yum装置即可

[root@Directory1~]# yum localinstall heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

① 删去手动增加的ipvsadm规矩条目

[root@Directory1heartbeat]# mv /etc/sysconfig/ipvsadm /etc/syscofig/ipvsadm.old

②封闭heartbeat效劳:

[root@Directory1heartbeat]# service heartbeat stop

③复制ldirectord的操控脚本到heartbeat资源操控目录中

[root@Directory1heartbeat]# cp /etc/inid.d/ldriectord /etc/ha.d/resource.d/

④复制ldirectord的装备文件到资源操控目录中

[root@Directory1heartbeat]# cd /usr/share/doc/heartbeat-ldirectord-2.1.4/

[root@Directory1heartbeat-ldirectord-2.1.4]# cpldirectrod.cf  /etc/ha.d/resource.d/

⑤修正ldirectord的操控脚本:

[root@Directory1heartbeat]# vim /etc/ha.d/resource.d/ldirectord.cf

⑥修正heartbeat的资源办理文件:

[root@Directory1heartbeat]# vim /etc/ha.d/haresources

//在资源办理文件中,指明主Directory,而且界说Directory所要监控的资源。

⑦发动heartbeat效劳:

[root@Directory1heartbeat]# Service heartbeat start

⑧创立Directory之间健康状况检测的web页面:

[root@Directory1heartbeat]# echo “Test Page”> /var/www/html/.test.html

2、在Directory2中装置ldirectord效劳。

阐明:Directory2中的装备和Directory1相同,这儿不再赘述。

七、测验

1、拜访192.168.30.100

2、设置主Directory1失效

[root@Directory1~]# cd /usr/lib/heartbeat/

[root@Directory1heartbeat]# ./hb_standby

3、后方Server1宕机

八、同享存储iscsi

为了实验的作用,将两个RealServer的页面内容设置不同,但是在实践生活中,当咱们拜访同一个站点时,应该得到体系的内容。为了坚持用户每次拜访的内容相同,最终的办法是运用同享存储。

1、在数据效劳器中增加一块新的硬盘

2、在数据效劳器中装置iscsi效劳

[root@Data~]# mkdir /mnt/cdrom

[root@Data~]# mount /dev/cdrom /mnt/cdrom/

[root@Data~]# cd /mnt/cdrom/ClusterStorage/

[root@DataClusterStorage]# rpm -ivh perl-Config-General-2.40-1.el5.noarch.rpm

[root@DataClusterStorage]# rpm -ivh scsi-target-utils-0.0-5.20080917snap.el5.i386.rpm

3、修正iscsi效劳装备文件

[root@Data~]# vim /etc/tgt/targets.conf

选项

功用描绘

<target> …… </target>

Iscsi方针输出,装备域的开端及完毕

iSCSI Qualified Name(IQN)

输出iscsi限制称号,格局为:iqn.yyyy-mm.com.example:storage.tape1.sys1.xyz.

不做dns解析,相当于一个标识

Backing-store

后备存储,一般指非实践的物理盘,如lvm卷、某个分区、文件组成的块设备等

Direct-store

直接存储,与backing-sotre想对,指实践的物理磁盘,如整个硬盘等,体系中一般表明为sdb、sdc等。

Initator-address

发起者地址,指定该资源只答应某些客户机运用;格局能够是ip地址,也能够是192.168.30.0/24格局来描绘一个网段

Incominguser

运用chap认证协议,有target来认证initator端,格局为“incominguser username  userpassword”

OutgoingUsername

运用chap认证协议,由initator来认证target端,格局为“outgoingusername username  userpassword”,较少运用。

4、发动效劳

[root@Data~]# service tgtd start

[root@Data~]# chkconfig tgtd on

5、检查效劳状况

[root@Data~]# netstat -a |grep iscsi

[root@Data~]# netstat -an |grep 3260

6、在数据效劳器将新硬盘分区

[root@Data~]# fdisk /dev/sdb

7、新增 target device

运用 tgtadm 界说iscsi target 的 qualified 姓名
[root @ Data ~] # tgtadm —lld iscsi —op new —mode target —tid 1 -T iqn.2013-10.Data-1
[root @ Data ~] # tgtadm —lld iscsi —op new —mode target —tid 2 -T iqn. 2013-10.Data-2

8、运用 tgtadm 将上一步新建的target device 参加分区
[root @ Data ~] # tgtadm —lld iscsi —op new —mode logicalunit —tid 1 —lun 1 -b/dev/sdb1
[root @ Data ~] # tgtadm —lld iscsi —op new —mode logicalunit —tid 2 —lun 1 -b/dev/sdb2

9、检查 target device 的内容
[root @ Data ~] # tgtadm —lld iscsi —op show —mode target

10、运用 tgtadm 答应客户端拜访这两个方针逻辑卷
[root @Data ~] # tgtadm —lld iscsi —op bind —mode target —tid 1 -I 192.168.30.4

[root@Data ~] # tgtadm —lld iscsi —op bind —mode target —tid 1 -I 192.168.30.5
[root @Data ~] # tgtadm —lld iscsi —op bind —mode target —tid 2 -I 192.168.30.4

[root@Data ~] # tgtadm —lld iscsi —op bind —mode target —tid 2 -I 192.168.30.5
阐明:假如答应所以客户端拜访时,IP地址是“all”替代。

11、运用 tgtadm 验证一切的方针逻辑卷是否界说正确
[root @Data ~] # tgtadm —lld iscsi —op show —mode target | grep Target

阐明:由于上面都是经过指令增加的,所以假如体系重启就会失效。能够将它们写入开机发动脚本中,也能够写入tgtd的装备文件中。

12、将以上履行的指令增加到开机发动脚本中。

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

#!/bin/sh
#
touch /var/lock/subsys/local
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn. 2013-10.Data-1

tgtadm--lld iscsi --op new --mode target --tid 2 -T iqn.2013-10.Data-2
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1
tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/sdb2
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.30.4

tgtadm--lld iscsi --op bind --mode target --tid 1 -I 192.168.30.5
tgtadm --lld iscsi --op bind --mode target --tid 2 -I 192.168.30.4

tgtadm--lld iscsi --op bind --mode target --tid 2 -I 192.168.30.5

13、在客户端-Server1和Server2上装置Iscsi-initiator

挂载RedHat el5.4装置盘到电脑上,找到iscsi-initiator-utils-6.2.0.868-0.7.el5.i386.rpm

[root@ Server1] #mount /dev/cdrom  /mnt/cdrom
[root @ Server1] # rpm -ivh iscsi-initiator-utils-6.2.0.868-0.7.el5.i386.rpm

14、发动客户端的iscsi效劳

[root@ Server1] # serveice iscsi start

[root@ Server1] # chkconfig iscsi on

15、在客户端上检查后方的iscsitarget上的逻辑卷

[root @ Server1] # iscsiadm-m discovery -t sendtargets -p 192.168.30.6

16、登录到后方的target

[root @ Server1] # iscsiadm -m node -T iqn.2013-10.Data-1-p 192.168.30.6 –l(阐明:小写的L)

[root @ Server1] # iscsiadm -m node -T iqn.2013-10.Data-2-p 192.168.30.6 –l

17、在客户端能够运用挂载过来的磁盘分区

由于是后方的iscsitarget上的逻辑卷,所以在客户端Server1上被识别为本地的/dev/sdb、/dev/sdc

[root @ Server1] #fdisk –l

阐明:以上在Server1上的操作和Server2上的操作相同。

18、在Server1或许Server2上对这两个逻辑卷分区然后格局化

[root @ Server1] #fdisk /dev/sdb

[root @ Server1] #fdisk /dev/sdc

分区后的作用

格局化:

[root @ Server1] #mkfs.ext3 /dev/sdb1

[root @ Server1] # mkfs.ext3 /dev/sdb2

19、此刻就能够将这两个分区别离挂载到web的站点中。

[root @ Server1] #mount /dev/sdb1 /var/www/html

阐明:在Server2中做相同的操作,这样才干确保用户拜访的内容是一用的。

第二个分区能够挂载到其他目录,寄存虚拟站点目录。

[root @ Server2] #mount /dev/sdb1 /var/www/html

然后在/var/www/html目录中创立web页面。

[root @ Server1] #echo “Hello” > index.html



版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章