RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件。
红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足你对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。
它提供有如下两种不同类型的集群:
1、高可用性:应用/服务故障切换-通过创建n个节点的服务器集群来实现关键应用和服务的故障切换
2、负载均衡:IP 负载均衡-对一群服务器上收到的 IP 网络请求进行负载均衡
###实验环境
server1,server2用作服务器,server3用于共享存储
vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.68.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.68.250/rhel6.5/HighAvailability
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.68.250/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.68.250/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.68.250/rhel6.5/ScalableFileSystem
gpgcheck=0
1.安装
server1: yum install -y ricci luci ##高可用节点布置,高可用的图形界面管理
server2: yum install -y ricci
server1: passwd ricci ##给新创建出的用户ricci一个密码redhat
server2: passwd ricci
server1:
/etc/init.d/luci start ##开启高可用的图形界面管理
/etc/init.d/ricci start ##HA(高可用)节点
chkconfig ricci on ##设置服务开机自动启动
chkconfig luci on ##设置图形界面管理服务开机启动
server2:
/etc/init.d/ricci start
chkconfig ricci on
4.netstat -tnlp ##查看到图形界面服务的接口是8084
create new cluster ##创建新的集群
westos_ha ##集群名称
USE the same passwd for all nodes
添加高可用节点
server1 redhat server1 111111
server2 redhat server2 111111
Download Packages
Reboot Nodes Before joining cluster ##选择后,在安装包下载完后自动重启
enable shared storage support ##支持设备共享
create cluster ##开始创建集群
检测
此时server1,server2: cat /etc/cluster/cluster.conf ##此时可以查看到集群的节点信息
clustat 可以查看到节点的工作状态
“Fence技术”核心在于解决高可用集群在出现极端问题情况下的运行保障问题,在高可用集群的运行过程中,有时候会检测到某个节点功能不正常,比如在两台高可用服务器间的心跳线突然出现故障,这时一般高可用集群技术将由于链接故障而导致系统错判服务器宕机从而导致资源的抢夺,为解决这一问题就必须通过集群主动判断及检测发现问题并将其从集群中删除以保证集群的稳定运行,Fence技术的应用可以有效的实现这一功能。
1.物理机安装fence的相关软件包
yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
2.打开图形化界面管理,点击Fence Devices
add
Fence virt(Multicast Mode)
命名 vmfence
3.物理机fence初始化
mkdir /etc/cluster
fence_virtd -c
除了Interface为br0,其余都回车默认
物理机:
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
scp fence_xvm.key [email protected]:/etc/cluster/
scp fence_xvm.key [email protected]:/etc/cluster/
Nodes
server1
Add Fence Method
vmfence-1
vmfence(xvm..)
填写机器号,以防主机名或者ip重复
server2
vmfence-2
同server1
5.开启服务
systemctl start fence_virtd.service
测试
server1: fence_node server2 可以查看到server2进行重启,达到处理服务器死机的效果
打开红帽集群套件图形管理界面
Failover Domains
name webfail
priorltized
restricted
server1 勾号 优先级10
server2 勾号 优先级1
create
resources
add
ip address
172.25.68.100
24
monitor link
number of seconds to sleep ... 5 ##d等待5秒进行vip的迁移
submit
add
script
httpd
/etc/init.d/httpd
submit
server1,server2安装httpd
yum install httpd -y
cd /var/www/html/
vim index.html
分别填入
server1
server2
便于检测
检测:server1,server2:
/etc/init.d/httpd start
打开图形界面管理
service groups
add
apache
automatical start this service
run exclusive
failover domain webfail
add resource
将172.25.68.100
httpd添加
submit
检测
负载均衡
等待5秒,刷新后,图形界面管理处显示没有问题
server2的优先级高,那么ip a 可以查看到server2多出一个vip172.25.14.100
server2:/etc/init.d/httpd status 可以查看到httpd自动开启
server1:/etc/init.d/httpd status httpd没有开启
ip a 没有vip
物理机:curl 172.25.14.100 可以查看到server2的apache发布内容
模拟server2死机
echo c> /proc/sysrq-trigger,执行这条命令之后,server2马上死机
此时物理机: curl 172.25.14.100 可以查看到server1的发布内容
server2自动重启:
重启完成之后,物理机:curl 172.25.14.100 可以查看到server2的发布内容,vip再次迁移回server2
环境:打开一个新的虚拟机快照server3
将主机名称修改为server3
ip修改为172.25.68.3
打开虚拟机管理器:add hardware
天加一个8G的硬盘,bus type Virtio
fdisk -l 可以查看到server3中多出的硬盘信息/dev/vda(与真实情况匹配):8589M
实验
server3:服务器
yum install -y scsi-*
server1,server2:客户端
yum install -y iscsi-*
yum install -y iscsi-*
服务器server3共享硬盘
vim /etc/tgt/targets.conf ##配置共享硬盘
38
39 backing-store /dev/vda
40
/etc/init.d/tgtd start ##开启器共享服务
检测:ps ax 可以查看到两个tgtd的进程
客户端使用共享硬盘
server1,server2:
iscsiadm -m discovery -t st -p 172.25.14.3
iscsiadm -m node -l
fdisk -l 此时可以查看到server3共享的硬盘,格式化,挂载之后可以直接使用
客户端安装数据库
server1,server2
yum install -y mysql-server
server1格式化共享硬盘
mkfs.ext4 /dev/sdb
测试server1 mount挂载建立文件 server2挂载查看
更改用户和用户组
server1 :
mount /dev/sda1 /var/lib/mysql/
chown myql.mysql /var/lib/mysql/
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
server2挂载查看权限是否同步
添加资源mysql和执行脚本到集群
去掉阿帕奇服务的端口独占
添加mysql服务组
server2:clusvcadm -d mysql
server1:dd if=/dev/zero of=/dev/sda1 bs=1024 count=1
vim /etc/lvm/lvm.conf 462行=3
umount /var/lib/mysql/
pvcreate /dev/sda1
vgcreate cluster_vg /dev/sda1
lvcreate -L +2G -n demo cluster_vg
lvcreate -l 511 -n demo cluster_vg
server2:这边同步查看
server1:mkfs.ext4 /dev/cluster_vg/demo
mount /dev/cluster_vg/demo /var/lib/mysql/
ll /var/lib/mysql/ chown mysql.mysql /var/lib/mysql/挂载后会改变所属组所有人 /etc/init.d/mysqld start
开始扩展