码迷,mamicode.com
首页 > 其他好文 > 详细

企业部分之-HA高可用集群的搭建

时间:2016-07-19 11:23:28      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:server1   服务器   虚拟机   客户端   在线   

高可用集群的概: 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换,这样可以保证服务一直在线。在这个过程中,对于客户端来说是透明的。

实验环境:需要三台纯净的虚拟机   iptables关闭  selinux为disabled

                server1:172.25.45.1   #ricci节点主机

                server2:172.25.45.2   #ricci节点主机

                server3:172.25.45.3   #luci管理主

yum源的配置vim /etc/yum.repo/

[server]

name=huang

baseurl=http://172.25.254.19/rhel6.5

gpgcheck=1

 

[HighAvailability]

name=huang

baseurl=http://172.25.254.19/rhel6.5/HighAvailability

gpgcheck=1

 

[LoadBalancer]

name=huang

baseurl=http://172.25.254.19/rhel6.5/LoadBalancer

gpgcheck=1

 

[ResilientStorage]

name=huang

baseurl=http://172.25.254.19/rhel6.5/ResilientStorage

gpgcheck=1

 

[ScalableFileSystem]

name=huang

baseurl=http://172.25.254.19/rhel6.5/ScalableFileSystem

gpgcheck=1

三台虚拟机都要配置yum源

技术分享三台虚拟机和物理机都要有解析 如下一个范列其他主机一样配置

技术分享

实验过程:

server1 ricci节点主机上:

                        yum install ricci -y #安装ricci软件

                        echo westos | passwd --stdin ricci #给ricci密码  一定要有 否则创建不了集群

                        chkconfig  ricci  on #设定ricci服务开机自启

                        /etc/init.d/ricci  start

                         yum install httpd  #不要启动该服务

在server2 ricci节点主机上:进行以上同样的步骤。

在server3 luci管理主机上:

                         yum  install  luci -y #安装luci管理软件

                         /etc/init.d/luci  start #启动luci服务                    技术分享

在浏览器访问 https://server3.example.com:8084

技术分享

注:使用server3的root用户登录

创建集群:

技术分享

集群的名字随便填写   但字符数不要超过15个 超过了就会创建不成功

技术分享

显示该页面 说明集群创建成功

用cluster命令查看ricci节点主机上的集群状态

技术分享

重复创建集群会报错 如果想重新创建 需要 rm -rf /etc/cluster/cluster.conf 然后重启服务 再创建 在网页上所做的动作都会写入该文件 /etc/cluster/cluster.conf

fence设备文件的生成

在物理机上:

                  yum   search  fence  

技术分享

然后  yum  install  fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicas  -y

技术分享

         执行命令 fence_virtd -c

技术分享技术分享

技术分享f

mkdir  /etc/cluster  -p(有该目录就不需要创建了)

cd  /etc/cluster/

dd  if=/dev/urandom  of=/etc/cluster/fence_xvm/key

技术分享

scp  /etc/cluster/fence_xvm/key  root@172.25.45.1:/etc/cluster/

scp  /etc/cluster/fence_xvm/key  root@172.25.45.2:/etc/cluster/

systemctl  restart  fence_virtd技术分享

在网页中添加fence设备

技术分享

在两个节点中分别执行以下步骤

技术分享

技术分享

添加错误域

技术分享

添加集群资源

技术分享

技术分享

注:此ip是一个浮动虚拟的ip 用于外界的访问 

添加服务组

技术分享

在服务组在添加前面添加的两个资源   

技术分享

可见集群已经自动开启了httpd服务

测试:

在server1上:fence_nde derver1.example.com server1会断电重新启动 说明fence配置成功

在server1上:cluster查看集群的状态技术分享

可见httpd服务在已经在server1上已经开启

为了使效果更明显 配置测试页:echo server1.example.com > /var/www/html/index.html

                             echo derver2.example.com > /var/www/html/index.html

浏览器访问虚拟ip 172.25.45.100

技术分享

在server1上:ip addr show

技术分享

可以看到浮动的ip

在server1上:clusvcadm -r apache -m server2.example.cm #把httpd服务转移到另一节点上

技术分享技术分享

断网模拟

在server1上:ifconfig eth0 down server1挂掉 此时服务会跳转到server2 浮动ip也会跳转到server2上 当server1重新启动后 服务又会重新跳转到server1上 因为server1是主节点 设置的优先级最高 又设置了服务回切 

内核崩溃模拟

在server1上:echo c > /proc/sysrp-trigger

和以上类似

存储共享:

在server3上:先添加个虚拟硬盘

技术分享

yum  install  scsi-*  -y

vim  /etc/tgt/targets.conf  添加以下内容:技术分享

tgt-admin -s #查看

/etc/init.d/tgtd  start #启动服务

技术分享

在server1上:yum  install  iscsi-*  -y

iscsiadm -m discovery -t -st -p 172.25.45.3 #与server3上的设备关联

iscsiadm -m node -l #登录到设备

fdisk  -l #查看可用的分区

技术分享

建立逻辑卷  首先

fdick  -cu  /dev/sda  #建立分区

在server2上:yum  install  iscsi-*

iscsiadm -m discovery -t -st -p 172.25.45.3

iscsiadm -m node -l

fdisk  -l #查看可用的分区

技术分享

          

从server1上同步过来

cat /proc/partitons #查看系统分区

技术分享

在server1上: pvcreate /dev/sda1 #创建物理卷

pvs #查看物理卷信息

在server2上:pvs 查看物理卷是否同步过来server2上

技术分享

vgcreate  clustervg  /dev/sda1

在server2:vgs 查看物理卷组是否同步过来server2上

技术分享

lvcreate -L 2G -n lv1 clustervg

同样在server2上查看是否同步过来

技术分享


mkfs.ext4  /dev/clustervg/lv1 #格式化 

测试:挂载

server1和server2都挂载到/mnt/下,可以sever1在/mnt/下建立一个文件或者目录 server2不能看到 只有server2卸载后 再挂载上去 才能在/mnt/下看到建立的东西

存储和集群的联系:

在网页上  添加集群资源 选择添加文件系统 

apache 关掉  删掉scripts,添加Filesystem和Script

技术分享

技术分享

技术分享技术分享

先制作一个测试页 echo  www.westos.com > /var/www/html/index.html

clusvcadm -e apache #在该主机上启动apache

访问 172.25.19.100 效果如下

技术分享

  

内核崩溃模拟 在server1上:echo c > /proc/sysrq-trigger 

server1挂掉 服务的文件系统自动挂载跳转到另一节点server2上

技术分享技术分享技术分享还可以断网模拟 停止服务在测试 效果都和 以上差不多 不管那个节点的主机挂了 都不影响服务和磁盘的自动挂载 保证了服务的高可用性

gfs2文件系统的存储共享:

在网页上:Service Groups中  删掉FilesystemScrip    集群资源中 删掉webdata

lvremove  /dev/clustervg/vg1   

lvs   查看server2上是否还存在 不存在说明进行了同步

lvcreate  -L 2G  -n  demo  clustervg #重新创建逻辑卷

lvs  一样看server2是否同步

mkfs.gfs2   -p  lock_dlm  -t   hua_ha:mygfs2  -j  3  /dev/cluster/demo   注:3   为节点加1

gfs2_tool  sb   /dev/cluster/demo  all

技术分享

测试:

server1和server2上的/dev/clustervg/demo都挂载在/mnt/下   然后在server1上  cd  /mnt/   建立一个文件或者文集夹  

在server2上执行  gfs2_tool journals  /dev/clustervg/demo  进去/mnt/目录可以看见server1创建的东西

永久挂载:

blkid  #可以查看设备的uuid

技术分享

umount /mnt/

在server1和server2上都挂载在/var/www/html下

vim /etc/fstab

UUID="d287c031-bb4a-013a-3d29-ddd651a4b168"     /var/www/html   gfs2    _netdev 0 0

df  #查看挂载信息

技术分享在网页上:增加资源-GFS2,在Service groups添加GFS2和Script 

技术分享技术分享技术分享

技术分享clusvcadm -e apache

测试页:echo  www.westos.com  /var/www/html/index.htl 

浏览器访问    网页显示 www.westos.com   断网模拟和内核崩溃测试的原理上面类似  就不再一一测试了

增加日志:

jfs2_jadd  -j 2 /dev/clustervg/demo

技术分享

lvextend  -L +511M  /dev/clustervg/demo

gfs2_grow /dev/clustervg/demo

技术分享技术分享

技术分享

技术分享总结:实验过程真的一步步联系都非常的紧密,一个环节出错后面的实验都搞不了,首先我们在实验之前就要把实验的环境搞好。尤其要注意防火墙,一定要关闭,否则集群创建不了,要注意三台虚拟机时间一定要同步,否则会导致信息的不同步,在实验中出错过几次,集群老师创建不了,仔细检查后是在真机中没有设置解析,网路不互通,连集群创建的网页都打不开,还有就是创建了集群后,添加服务组时,apache服务组时disabled,添加的两个资源都没生效,很是纳闷,最好发现一台ricci主机没有设置子网掩码。发现后问题成功的解决了,有的实验真的不是一次就能成功的,出现各种错都要花时间去排错。总之实验不容易,实验过程中要细心,一步错步步错,但也不要怕出错,觉得出现错误,排错更能让你的水平提升一个层次。

企业部分之-HA高可用集群的搭建

标签:server1   服务器   虚拟机   客户端   在线   

原文地址:http://huangguanhua.blog.51cto.com/11827742/1827561

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!