HA (High Availability),是高可用性的一种统称。包括从软件到硬件的多种技术来实现。HA就是有点像是笔记本的电池电源和交流电源一样。平常插着交流电源时。笔记本就一直使用交流电源。当紧急时刻断电时。才会使用电池电源。如果平常使用交流电源时。那么电池就是摆设。就是为了以防止没电时。顶上去。所以HA 就是让多个节点去为一件事去工作。但真正工作的只有一个节点。其他节点都是以备不测的。
准备工作
4台主机。其中一台是物理真机,三台真机中的虚拟机。
真机是redhat7.2 虚拟机用的是kvm
(其中真机是mine.example.com,剩下的三个是虚拟机)
为了方便,关闭所有主机的iptables还有selinux。
配置yum源。需要有HA。所有的主机都这么配置yum源
[Server]
name=Red Hat Enterprise Linux Server
baseurl=http://172.25.7.250/rhel6.5/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux HighAvailability
baseurl=http://172.25.7.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux ResilientStorage
baseurl=http://172.25.7.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ScalableFileSystem]
name=Red Hat Enterprise Linux ScalableFileSystem
baseurl=http://172.25.7.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux LoadBalancer
baseurl=http://172.25.7.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
注(再光盘yum源中。其实我们平时使用的是Server。但他还提供了,4个其他的目录,再HighAvailability 目录中就是HA搭建所需要的包)
准备工作完成
配置server和client主机。desktop是管理主机
server和client分别是节点1和节点2。desktop用来管理节点
server和client都下载安装ricci(注意:一定要将yum源配制成上图所示)(同样client也这么操作)
这里只拿server做演示。client做同样的操作
给ricci用户改密码(同样client也这么操作)
给desktop管理端下载luci
开启刚才下载的所有服务
开始图形化的配置HA
打开浏览器,访问desktop的8084端口。注意两点1.是https协议。2.关闭防火墙
输入desktop的超级用户root和root的密码
登录后点击左侧Manage Clusters并且选择Create.Cluster Name随便输入。Node Name 输入两个节点的域名。输入IP 也行
Password就是刚才给ricci用户的密码。就是刚才那个123密码。
Download Packages 就是给节点安装HA相关的包,这个选上
Reboot Nodes Before Joining Cluster 再加入节点前。重启主机
Enable Shared Storage Support 使能共享存储
然后点击create cluster .接着就慢慢等待,时间有点长。这时在给节点下载HA的各种安装包
通过top看看。主机浪费在ricci和yum上的资源很大
经过漫长的等待和重新启动节点。重新启动后应该可以看到下面的内容
下来就需要添加fence。
fence本来应该是一个硬件设备,为了负责当某台主机死机后就重起某台主机,他的重起方式是直接断电并且启动。相当于拔插销。由于是练习。所以我使用的是虚拟化的fence。多播模式。正因为是虚拟化的fence,所以在物理真机也要做一些配置,一会再说
在刚才那个WEB图形配置页面,选择Fence Devices。的Add
做如下配置
再选 Failover Domains .选择Add
做如下配置
这里配置的是如果web页面崩溃了怎么办
Prioritized 启用优先级,就是1号崩溃了,由2号顶上去,3号不能越级顶上去
Restricted 启用限制,就是下面Member打钩的才算入集群
No Failback 启用后,就是假如1号挂了,2号顶上去,但1号重起复活后,服务还是在2号上,不重新移交给1号
刚才说过了,因为这是虚拟fence,所以要在真机(mine.example.com)上做一些配置
依次yum安装以下工具(yum -y install fence-virtd fence-virtd-libvirt fence-virtd-multicast)那个serial串口的其实可以不用安装
启动服务。(第二个服务默认就开着,主要是fence)
创建目录/etc/clustart.(默认是没有,需要创建的 mkdir /etc/cluster)
将key复制给server和client。注意也需要放到/etc/cluster 下。server和client默认是有这个目录的
在物理真机下再执行命令(执行后,一直回车,再选择网卡 Interface时 需要输入自己和虚拟机相连接的那个网卡,最后需要输入个y表示确认。别回车上瘾了。。。。)
配置节点node
进入Node 点击 server.example.com.并一直往下拉
选择 Add fence Method
同理操作client.example.com 当然这时候就是fence-2了。
再选择Add Fence Device ,就是再刚才那个Add Fence Method 上边 。选择 fence_vm(你自己起的名字)填Domain。这是server.example.com 的UUID。(同理client.example.com)
有人可能要问了虚拟机的UUID 在哪查呢。在virt-manager 里面.(Basic Detail 里的第二行就有UUID)我这是KVM,其他的虚拟机的UUID在哪查,就自己看吧
测试cluster。其实这时的集群已经配置成功了,来测试一下(server 成功关闭了client。现象时client直接强行关机又重启动了)
若不成功,请在真机(mine.example.com)上执行 systemctl restart fence_virtd.service
好了。可以配置web网站了,将网站资源加到集群中
配置web网站
给server 和 client 都下载安装httpd
回到那个 配置用的网站。点击上方第一排的资源(Resources)。点击添加
第一个添加IP Address ,这个IP 地址必须是没有任何人使用的空IP。(集群工作时。谁在运行谁拥有这个IP)
后来写完blog发现IP写错了(不要在意)
再选择添加,这会是脚本。(还有个选项是Apache,但那个是源码安装的,用yum安装的选这个)
再返回添加资源组(Resource Group)选择Add
创建一个Web组,做以下配置
Automactically Start This Service 自动开启此服务
Run Exclisive
再选择添加资源。Add Resource ,就是Submit上面那个
添加顺序是IP -----> Apache
submit后就OK!
使用clustat查看
现在如果server.example.com 挂了,就自动接到client.example.com 了
Web的集群搭建初见成效了
开始将Web页面也以iscsi的形式
将server和client的web页面放到desktop上面。
在desktop上面上执行安装iscsi的服务器端
在server上和client上安装iscsi的客户端
在desktop上添加一块硬盘,并且配置配置文件分享出去
配置文件内写入(配置文件是 /etc/tgt/targets.conf)
开启服务
使用如下命令,看到如下内容就算是分享成功了
[root@desktop ~]# tgt-admin -s
Target 1: iqn.2017.02.com.example:server.target1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 2147 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sdb
Backing store flags:
Account information:
ACL information:
172.25.7.10
172.25.7.11
server和client都将desktop共享的盘弄过来
可以把其打造成逻辑巻
当逻辑巻创建好后,使用命令
格式化为gfs2的形式
开始在图形化配置工具上面配置
再在资源中添加文件系统
再在资源组中添加这个文件系统。删掉上面的httpd.因为必须要有顺序。
ip ---> filesystem ---> httpd
再将这个盘。手动挂载起来,要挂在/var/www/html 下.再写到fstab里面
OK!!! 集群搭建完毕,将主页写到/var/www/html下吧。好了
这下就可以访问一个稳健的网页了