使用rchs集群套件基于conga界面配置apache高可用集群电源设备采用“virtual machine fencing”Conga是一个基于web界面的c/s架构的配置集群的工具c 集群节点作为被服务管理集群配置的客户端节点s 专门用于管理集群、配置集群的一个服务端节点在S服务端上安装luci的服务端软件,打开该软件提供的一个web界面,进行集群的配置(配置的步骤跟使用rhel5上的system-config-cluster雷同),唯一的区别是,服务端(本机)本身并不参与集群,并不属于集群中的成员。
在c客户端上安装ricci服务,该服务会与服务端的luci建立连接,接受服务端的集群管理操作。
客户端才是集群中的成员。
准备:FQDN、静态IP 、hosts文件clients||----------------|node1 node2192.168.29.11192.168.29.12资源:vip 192.168.29.10httpdOS :rhel6准备:静态IP、FQDN、hosts暂时关闭iptables ,selinux[Base]name=Basebaseurl=file:///soft/el63enabled=1gpgcheck=0[HighAvailability]name=LoadBalancerbaseurl=file:///soft/el63/HighAvailabilityenabled=1gpgcheck=0[ResilientStorage]name=ResilientStoragebaseurl=file:///soft/el63/ResilientStorageenabled=1gpgcheck=0[ScalableFileSystem]name=ScalableFileSystembaseurl=file:///soft/el63/ScalableFileSystemenabled=1gpgcheck=0一、在宿主机上模拟fence设备# yum install fence-virt.x86_64 fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -yfence-virt 实际用于fence设备工具:实际用于关机、重启、启动客户机的工具fence-virtd 模拟fence设备的服务:负责接受集群中的节点(客户机)fence指令fence-virtd-libvirt.x86_64 <----操作虚拟化的接口库fence-virtd-multicast.x86_64 组播的方式在宿主机(fence-virtd服务)和客户机(集群节点)之间传达电源指令《---以模块的形式存在软件安装完毕后,存在一个配置文件/etc/fence_virt.conf向导配置# fence_virtd -cModule search path [/usr/lib64/fence-virt]:Listener module [multicast]: 《----必须是组播模块Multicast IP Address [225.0.0.12]:Multicast IP Port [1229]:Interface [virbr6]: virbr6 《---根据当前实验集群节点所在的虚拟化网络Key File [/etc/cluster/fence_xvm.key]:Backend module [libvirt]: 《---必须是libvirt模块Libvirt URI [qemu:///system]:Replace /etc/fence_virt.conf with the above [y/N]? y创建/etc/cluster/fence_xvm.key# dd if=/dev/random of=/etc/cluster/fence_xvm.key bs=1 count=4096 随机数据产生的速度依赖本机的IO的繁忙情况实验的化,可以随便创建4KB的数据# dd if=/dev/sda2 of=/etc/cluster/fence_xvm.key bs=1 count=4096必须把该文件同步到使用该fence设备的所有集群节点上。
保持路径一致# rsync -alvR /etc/cluster/fence_xvm.key 192.168.29.11:/# rsync -alvR /etc/cluster/fence_xvm.key 192.168.29.12:/启动虚拟化的fence服务# fence_virtd# ps -ef | grep fenceroot 6536 1 0 15:19 ? 00:00:00 fence_virtd停止服务:# skill -9 fence_virtd默认不会开机启动,可以把启动命令保存在rc.local验证fence_virtd可以直接管理节点(客户机)的电源# fence_xvm -H www-virt2 <---看到www-virt2的客户机被强制重启二、在宿主机器上部署luci服务,充当集群中的管理节点# yum install luci -y启动luci,进行集群配置# service luci start正在启动saslauthd:[确定]Start luci... [确定]Point your web browser to https://:8084 (or equivalent) to access luci打开浏览器https://:8084登录帐号与系统的root帐号一样三、部署rhcs集群节点1、所有成员节点(node1,node2)都安装集群套件前提:必须配置好yum源# yum groupinstall "High Availability" -y 《---不是必须的,可以交给后面ricci服务进行安装# yum install ricci -y <---必须的# chkconfig ricci on2、给ricci服务对应的操作执行有效身份ricci用户设定密码。
# passwd ricci提醒:在两个集群中的成员节点上都必须修改。
3、启动ricci服务,等待服务端luci连接过来进行集群自动化部署。
# service ricci start4、成员节点都必须关闭NetworkManager 服务,并且设定它开机不启动# service NetworkManager stop# chkconfig --level 2345 NetworkManager off <---必须的提示:如果之前已经配置过集群,想重新配置,必须把现有的配置文件删除或者改名。
# rm -rf /etc/cluster/cluster.conf说明:集群如果已经配置好了,并且已经运行了,ricci服务并不是必须要开启的。
但是如果不开启的化,管理节点就无法管理、查看集群的运行状态。
5、把涉及到一些资源准备好、测试apache 安装、启动、测试、关闭四、在管理节点上luci的web界面上配置集群总结:如果需要让集群开机自动启动集群服务cman,需要手工:# chkconfig cman on=============================================================================== =使用Haproxy 实现七层负载均衡集群常见负载均衡的软件:lvs 四层调度(传输层:tcp/udp)nginx 七层调度Haproxy 四层/七层调度,更专业的七层调度七层调度:可以理解客户端请求的第七层(应用层)的数据的具体内容,根据内容做调度。
可以根据客户端浏览器的版本、操作系统的版本、语言、访问的是什么页面(是静态还是动态页面)进行调度|br0Haproxyvirbr6|--------------------|node1 node2node1192.168.29.11node2192.168.29.12Haproxybr0 10.1.1.21virbr6 192.168.29.1一、部署haproxy1、安装确定系统的架构# uname -a安装高版本的pcre(perl 格式的正则),性能会有2-10倍的提升。
pcre-8.01.tar.gz# ./configure --prefix=/usr && make && make install# ldconfigHaproxy根据架构选择适当的编译参数# make TARGET=linux26 CPU=i686 USE_STATIC_PCRE=1 PREFIX=/usr/local/haproxy如果是64位:# make PREFIX=/usr/local/haproxy TARGET=linux26 ARCH=x86_64 USE_STATIC_PCRE=1 # make install PREFIX=/usr/local/haproxy模板配置文件和默认自带的服务启动脚本都在:/usr/src/haproxy-1.4.15/examples/2、配置# groupadd -g 98 haproxy# useradd -u 98 -g 98 haproxy# id haproxyuid=98(haproxy) gid=98(haproxy) groups=98(haproxy)# cp /usr/local/haproxy/share/man/man1/haproxy.1 /usr/share/man/man1/ # man haproxy例子1:实现上述拓扑图,简单的负载均衡模板配置文件:笔记目录下haproxy.cfg.sample# vim /usr/local/haproxy/haproxy.cfggloballog 127.0.0.1 local0 infouser haproxygroup haproxydaemonpidfile /usr/local/haproxy/haproxy.piddefaultslog globalmode httpoption httplogoption dontlognullretries 3option redispatchtimeout client 50000timeout server 50000timeout connect 60000option httpchk HEAD /ok.html HTTP/1.0listen weblb *:80 <---接受到的客户端请求,目标ip随意,只要目标端口是80,就会进行调度option httpcloseoption forwardforbalance roundrobinserver web1 192.168.13.245:80 weight 1 check inter 2000 rise 2 fall 2server web2 192.168.13.246:80 weight 1 check inter 2000 rise 2 fall 2listen stats :8888mode httptransparentstats uri / haproxy-statsstats realm Haproxy \ statisticstats auth admin:admin使用笔记目录下提供的启动脚本# cp 启动脚本/haproxy /etc/rc.d/init.d/# chmod 755 /etc/rc.d/init.d/haproxy# service haproxy startStarting haproxy: [确定]二、部署后端阶段1、安装apache并且启动2、建立健康测试页面测试:# elinks http://192.168.13.248 《----访问haproxyhttp://192.168.13.248:8888/发现当前是论寻的方式进行调度的,如果想实现会话保持,需要告诉haproxy使用cookie 跟踪listen weblb *:80 <---接受到的客户端请求,目标ip随意,只要目标端口是80,就会进行调度cookie SERVERID insert indirect 《----使用cookie实现会话跟踪option httpcloseoption forwardforbalance roundrobinserver web1 192.168.29.11:80 weight 1 cookie node1 check inter 2000 rise 2 fall 2server web2 192.168.29.12:80 weight 1 cookie node2 check inter 2000 rise 2 fall 2 《---- cookie node1 指定cookie的值。