集群管理:管理集群仲裁和集群成员关系。cman:cluster manager,是一个分布式的集群管理器,运行于所有的集群结点。

锁管理:为其他集群架构组件提供对共享资源访问的同步机制,DLM,distributed lock manager,分布式架构的锁管理器,运行于所有结点。

在 RHEL6中不能使用system-config-cluster。

集群中的节点使用多播地址彼此沟通。因此必须将红帽高可用附加组件中的每个网络切换以及关联的联网设

备配置为启用多播地址并支持 IGMP(互联网组管理协议)。请确定红帽高可用附加组件中的每个网络切换

以及关联的联网设备都支持多播地址和 IGMP。如果是这样,请确定启用多播地址和 IGMP。没有多播地址以

及 IGMP,则不是所有节点都可成为集群的一部分,从而导致集群失败:在这些环境中使用 UDP 单播。

从红帽企业版 Linux 6.2 开始,集群中的节点可以使用 UDP 单播传输机制进行沟通。但建议您在集群网络中

使用 IP 多播。UDP 单播是 IP 多播不可用时的备用方法。

两台主机事先配置好yum源
再测试:yum list cman

实验1:
yum install ricci -y(两台主机都安装,代理程序,受conga管理),两主机是在虚拟机中安装的。
/etc/init.d/ricci start
chkconfig ricci on
password ricci 6.1以后(包括6.1)就得为ricci设置密码
任选一台主机安装luci
yum install luci -y 通过在其他结点运行的ricci完成集群通信
/etc/init.d/luci start
chkconfig luci on
然后在安装来luci都主机的浏览器: https://desktop71.example.com:8084 登录luci的管理界面,以root用户登录,创建集群,添加结点主机(两台),使用相同都密码,下载包,进入集群前重启,开启共享存储支持,然后等待创建。此时可以用ps aux 查看次过程调用yum 安装包。cman 会管理一些进程。

问题:

当出现不能给集群里面添加成员时,即添加时报错,则需要先删除这个集群,然后再创建集群,再添加成员。


如果重启后节点加不到集群中,并且cman服务起不来,需查看/etc/hosts 文件,必须有 127.0.0.1 localhost localhost.localdomain 这条。
在/etc/cluster目录下的cluster.conf文件中会生成相应都集群结点信息。
接下来添加fence设备,是用来当结点主机因为某些原因down掉,来进行切换到另一台主机用的。选fence virt (multicast mode),下面起个名字,vmfence。

fence:隔离,是用于将集群结点与共享存储连接断开的措施。

在宿主机上:
yum install fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicast
-y
fence_virtd -c
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1 创建密钥
以下是在luci上对fence_xvm的设置:







clusternode>






clusternode>
clusternodes>
expected_votes="1" two_node="1"/>


fencedevices
scp /etc/cluster/fence_xvm.key node1:/etc/cluster
scp /etc/cluster/fence_xvm.key node2:/etc/cluster 复制到两台主机上
以上设置除“Interface”处填写虚拟机通信接口(br0)外,其他选项均可回车保持默认。
service fence_virtd start
# netstat -anulp |grep fence
会出现:udp 0 0 0.0.0.0:1229 0.0.0.0:* 7519/fence_virtd

此时在宿主机上的操作完成了。

然后在luci都图形界面配置nodes的fence方法及fence设备
fence_xvm -H vm1 -o reboot 看看是否可以操作你的虚拟机,如果成功vm1将会重启。

下来添加failover,起个名web_fall,不选no failback ,此处可以指定两主机的优先级。
下来添加resource,选ip address ,写VIP,掩码,监控链路,主机down后移除主机的时间。
再添加script资源,httpd ,/etc/init.d/httpd
在两台主机上安装httpd服务并添加主页文件。
下来添加服务组,叫apache,选认证和独立运行,failover 选刚添加的web_fall,recovery选relocate。再点下面的添加资源,分别添加上ip address 和 script资源。

接下来在两台主机测试: clustat,如果输出正确信息则好。
Cluster Status for smart_ha @ Thu Sep 6 05:05:55 2012
Member Status: Quorate

Member Name ID Status
------ ---- ---- ------
desktop100.example.com 1 Online, Local, rgmanager
desktop64.example.com 2 Online, rgmanager

Service Name Owner (Last) State
------- ---- ----- ------ -----
service:apache desktop100.example.com started

用命令实现迁移:clusvcadm -r apache -m desktop75.example.com #此时你刷新浏览器,就转到desktop75上。-r 表示relocate(创建服务的时候选的,-m 表示后面接的是member)

http://192.168.0.1 会显示的是: desktop75.example.com

echo c > /proc/sysrq-trigger 则内核崩溃。

实验2:
两台主机事先配置好yum源
再测试:yum list cman
yum install ricci -y(两台主机都安装,代理程序,受conga管理),两主机是在虚拟机中安装的。
/etc/init.d/ricci start
chkconfig ricci on
password ricci 6.1以后就得为ricci设置密码
任选一台主机安装luci
yum install luci -y 通过在其他结点运行的ricci完成集群通信
/etc/init.d/luci start
chkconfig luci on
然后在安装来luci都主机的浏览器: https://desktop71.example.com:8084 登录luci的管理界面,以root用户登录,创建集群,添加结点主机(两台),使用相同都密码,下载包,进入集群前重启,开启共享存储支持,然后等待创建。此时可以用ps aux 查看次过程调用yum 安装包。cman 会管理一些进程。
在/etc/cluster目录下的cluster.conf文件中会生成相应都集群结点信息。
接下来添加fence设备,是用来当结点主机因为某些原因down掉,来进行切换到另一台主机用的。选fence virt (multicast mode),下面起个名字,vmfence。
在宿主机上:
yum install fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicast
-y
fence_virtd -c
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1 创建密钥
以下是在luci上对fence_xvm的设置:







clusternode>






clusternode>
clusternodes>
expected_votes="1" two_node="1"/>


fencedevices
scp /etc/cluster/fence_xvm.key node1:/etc/cluster
scp /etc/cluster/fence_xvm.key node2:/etc/cluster 复制到两台主机上
以上设置除“Interface”处填写虚拟机通信接口外,其他选项均可回车保持默认。
service fence_virtd start
# netstat -anulp |grep fence
会出现:udp 0 0 0.0.0.0:1229 0.0.0.0:* 7519/fence_virtd

此时在宿主机上的操作完成了。

然后在luci都图形界面配置nodes的fence方法及fence设备
fence_xvm -H vm1 -o reboot 看看是否可以操作你的虚拟机,如果成功vm1将会重启。

下来添加failover,起个名web_fall,不选no failback ,此处可以指定两主机都优先级。
下来添加resource,选ip address ,写VIP,掩码,监控链路,主机down后移除主机都时间。
再添加script资源,httpd ,/etc/init.d/httpd
在两台主机上安装httpd服务并添加主页文件。
下来添加服务组,叫apache,选认证和独立运行,failover 选刚添加的web_fall,recovery选relocate。再点下面的添加资源,分别添加上ip address指定的ip 和 script资源。

接下来在两台主机测试: clustat,如果输出正确信息则好。
echo c > /proc/sysrq-trigger 则内核崩溃。

建立共享存储:
在宿主机上,开启tgtd服务,并共享/etc/sda8
yum install scsi* -y
vim /etc/tgt/targets.conf

backing-store /dev/sda8
initiator-address 192.168.0.77
initiator-address 192.168.0.119

/etc/init.d/tgtd start
tgtadm --lld iscsi --op show --mode target
会显示: Backing store path: /dev/sda8
ACL information:
192.168.0.77
192.168.0.119
虚拟机上挂载
yum install iscsi* -y
iscsiadm -m discovery -t st -p 192.168.0.189
会显示:192.168.0.189:3260,1 iqn.2008-09.com.example:server.target1
iscsiadm -m node -l 两台主机都要挂载
fdisk -l
fdisk /dev/sda8 创建lvm 只在一台创建
yum install cmirror -y 在两台主机安装
/etc/init.d/cmirrord start
clustat 查看集群状态
# pvcreate /dev/sd[cde]1
# vgcreate shared_vg /dev/sd[cde]1
# lvcreate -L 10G -n ha_lv shared_vg

遇到的问题:

lvcreate创建时报错:

出现问题了,不能创建lv 我们去node2上去同步一下

Error locking on node 10.0.2.200: Volume group for uuid not found: JgnoRkNjJ1BrTwiHxCtnPpOC3fPb13AeYccMy0ddUBMqKtmwIMWKHFTeRnrUVbTD

Aborting. Failed to activate new LV to wipe the start of it.

解决:

在另一个集群结点,使用 iscsiadm -m node -ld登录iscsi server,并pvcreate /dev/sdb{1,2},此时会出现:

Can't initialize physical volume "/dev/sdb1" of volume group "shared_vg" without -ff

这个不用管,然后在原来的结点再次执行 lvcreate -L 10G -n ha_lv shared_vg,就好了。

# mkfs.ext4 /dev/shared_vg/ha_lv
刚创建完lvm时,不用执行 下面的 vgchange -ay
激活lvm:vgchange -ay 激活lvm,使不隐藏/dev/shared_vg/ha_lv
此时:ll /dev/shared_vg/ha_lv 查看是否隐藏

然后图形创建failover domain,起名lv,选第一框,优先级1,10
添加resource 选ha_lvm ,叫lvm ,shared_vg,ha_lv
添加resource 选filesystem,叫FS,ext4,/var/www/html./dev/shared_vg/ha_lv
添加service 叫FD ,勾选自动启动服务,选择failover domain,添加最上面的之前已经创建的资源lvm和fs。
df 查看是否挂载(自动启动服务的话,此时就回被挂载)
再添加resource 选ip addredd 和script ,并为它添加failover domain ,最后添加service
在/var/www/html建立主页文件,用watch clustat 动态监控,并打开浏览器来回切换查看

遇到的问题:

当节点重启后,再次启动FD服务时会报错,查看/var/log/message 日志会发现节点找不到 lvm设备,此时需要节点先连接并挂载共享存储,然后再用vgchange -ay 激活 lvm 设备,此时启动FD就好了。

遇到的问题:

当节点重启后,再次启动FD服务时会报错,此时需要节点先连接并挂载共享存储,但是使用vgchange -ay 激活 lvm 设备时报错,RHCS集群之HA_第1张图片


lvm在线拉伸:
lvextend -L +200M /dev/shared_vg/ha_lv
resize2fs /dev/shared_vg/ha_lv
df -h 查看是否拉伸

实验3:GFS:全局文件系统,是通用并行文件系统,允许多结点对共享块存储的并发读写访问,并且每个改动在集群范围内都是可见的。

确保集群状态激活:clustat,并创建好lvm
激活lvm:vgchange -ay 激活lvm,使不隐藏/dev/shared_vg/ha_lv
此时:ll /dev/shared_vg/ha_lv 查看是否隐藏
创建gfs2 文件系统:回车后选y (两台主机都要安装)
mkfs.gfs2 -p lock_dlm -t redhat_ha:smartgfs -j 3 /dev/shared_vg/ha_lv
-p lock_dlm 指定锁协议为分布式锁管理器,redhat_ha为集群名,指定该gfs文件系统可以在集群redhat_ha中使用,smartgfs为文件系统名,3为创建的日志数量,一般为集群结点数加1,/dev/shared_vg/ha_lv为LVM名

在/etc/fstab 中写上挂载 (两台主机都要写)
/dev/shared_vg/ha_lv /var/www/html gfs2 default 0 0
mount -a ;df
cd /var/www/html ;写上主页文件(www.westos.org) (两台主机都要写)
拉伸lvm: lvextend -L +500M /dev/shared_vg/ha_lv
增大gfs2 :gfs2_grow /dev/shared_vg/ha_lv
df -h 可以看到lvm 增大了500M

fuser -mv /var/www/html 查看那些进程在使用此目录
fuser -km /var/www/html 停掉使用此目录的进程

要想删除集群,先使服务disable,再使所有结点leave cluster ,然后删除结点