1.集群的简介:
集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
如果一个事情是由多个人去完成,则有着和集群类似的地方。大家共同承担着压力,如果有的人临时请假,其他的可以分担他的任务,事情不会因此耽搁。并且当他忙完自己的事情依然会分给他新的任务,不会因此断了节奏。而集群就是在模拟的做这样的事情,事实上大部分的公司也都是用集群在向用户提供服务。无论是apache还是nginx。我们总不希望自己在浏览网页的时候突然not found吧。那么你需要了解集群。这种调度方法和思想对于我们做任何事情都是非常有益的。
2.集群的框架图:
这里要强调集群的一些特性:
心跳监测: 各个集群之间互相连接起来,当服务出现问题后,他们断开链接,但都认为是对方出了故障。
我们今天搭建一个高可用的集群:
1.实验环境:redhat6.5
主机:一共使用三个节点,一个主控制节点和两个负载节点
vm1 192.168.1.120 主控制节点
vm2 192.168.1.121 负载节点
vm3 192.168.1.122 负载节点
注意:这个高可用集群是redhat公司的软件,无第三方公司软件,所以如果你的机子上有本地yum源的话,那一定可以做出来。
2.集群搭建步骤:
(1)我们的虚拟机可以采用快照来制作(节省资源)。
对于这三个节点我们有一下几个地方需要注意:
· 1.三者的防火墙关闭;
· 2.三个节点互相作解析(编辑/etc/hosts);
· 3.控制节点的selinux关闭;
· 4.要准确配置yum源;
· 5.时间一定要同步,否则在加密或认证的过程中发生错误;
以上的问题我们一个一个来解决。
首先在主控制节点上设置:
[root@vm1 ~]# vim /etc/yum.repos.d/rhel-source.repo
点击(此处)折叠或打开
1. [rhel-source]
2. name=Red Hat Enterprise Linux
3. baseurl=file:///media
4. enabled=1
5. gpgcheck=0
6.
[root@vm1 ~]# yum clean all
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: HighAvailability LoadBalancer ResilientStorage
: ScalableFileSystem rhel-source
Cleaning up Everything
将yum源配置文件复制到两台
[root@vm1 ~]# scp /etc/yum.repos.d/rhel-source.repo 192.168.1.121:/etc/yum.repos.d/
[root@vm1 ~]# scp /etc/yum.repos.d/rhel-source.repo 192.168.1.122:/etc/yum.repos.d/
然后在三个节点上都执行:yum clean all
vim /etc/hosts #在三个节点上都添加相应主机的解析
1. 192.168.1.120 vm1.example.com
2. 192.168.1.121 vm2.example.com
3. 192.168.1.122 vm3.example.com
接下来在控制节点上安装luci软件,这个是集群的控制软件:
[root@vm1 ~]# yum install luci -y
然后启动服务:
[root@vm1 ~]# chkconfig luci on
在负载节点上安装ricci软件:
[root@vm2 ~]# yum install ricci -y
[root@vm3 ~]# yum install ricci -y
然后给两台负载节点的ricci用户设置密码并启动服务
[root@vm3 ~]# chkconfig ricci on #并设置开机自启动
然后在浏览器中输入:https://vm1.example.com:8084
登录用户名为root,密码为控制节点的root密码
然后点击create创建集群:
选择Download Packages 自动从yum源中下载集群套件, 如果有新的包会更新
选择Use Locally Installed Packages 检查是否已经安装,有新的话不更新
这个添加的过程比较漫长,两个负载节点会安装cman、rgmanager、modclusterd、clvmd服务,并且服务安装完成后还会重启。
出现下面的图说明两个负载节点已经被加入到集群中了:
使用fence,在一台机子出问题时,如果只有两个节点的话,我们无法判断谁出问题,所以,我们这里使用了一个仲裁,可以用fence判断。
在控制节点vm1上安装fence
[root@vm1 ~]# yum install fence-virtd.x86_64 fence-virtd-checkpoint.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
[root@vm1 ~]# fence_virtd -c #在设置的时候用的那个网卡就设置为那个网卡
[root@vm1 ~]# mkdir /etc/cluster #这个目录原来是没有的需要手动创建
[root@vm1 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1 #生成电源key
[root@vm1 ~]# scp /etc/cluster/fence_xvm.key 192.168.1.121:/etc/cluster/
[root@vm1 ~]# scp /etc/cluster/fence_xvm.key 192.168.1.122:/etc/cluster/
[root@vm1 ~]# chkconfig fence_virtd on
[root@vm1 ~]# /etc/init.d/fence_virtd start
[root@vm1 ~]# netstat -anulp |grep fence #启动成功
udp 0 0 0.0.0.0:1229 0.0.0.0:* 26723/fence_virtd
下面步骤是在真机上完成的,因为虚拟机上没有电源管理这个软件,这里我们不做配置,因为我们用的是三台虚拟机,如果要做fence可以按照下面的步骤完成,这里我们只能手工代替:
选择添加
直接默认添加
domain 为虚拟机的名字
就是这里的名字
之后就可以测试了,在一台虚拟机中输入这个命令
fence_xvm -H jiqun2 -o reboot
告诉fence主机jiqun2出现问题,需要重启,然后fence主机会自动给jiqun2断电,并且启动
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30218854/viewspace-1591556/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30218854/viewspace-1591556/