集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。
基本概念:
Conga: 分为Luci(管理工具,Server端)及 Ricci(用于接收和传递Luci指令的服务程序,Agent)两部分,其中Luci安装在任一管理工作站上,Ricci安装在被管理的Cluster节点上.
脑裂(Head-split):当前激活的Cluster 节点因为处理器忙或者其他原因暂时停止响应时,其他节点可能误认为该节点”已死”,从而夺取共享磁盘的访问权,此时极有可能假死节点重新对共享文件系统产生读写操作,从而导致共享磁盘文件系统损坏.
Fence:为了防止”脑裂”现象的产生,使用fence设备对”故障”节点进行”屏蔽”措施,如重启该设备,从而尝试恢复其节点功能. Fence 设备可以是交换机,或者IPMI等. 这里我们采用PE2900的BMC充当Fence设备.
Cman:cluster manager,Cluster组件之一,该服务用于cluster的配置,控制,查询,仲裁计算等.
Rgmanager:Resource group manager,Cluster组件之一,提供用户定义的资源组的切换服务.
Failover domain: cluster 环境中服务failover的区域
cman集群管理器
cman是一个基于内核的对称通用集群管理器。它由两部分组成:连接管理器(cnxman),用于处理成员、消息、投票数、事件通知和过渡;服务管理器(SM),用于处理那些需要通过各种方式进行集群管理的应用及外部系统。cman是RHCS中最核心的服务,可通过系统中的serivce命令进行启/停操作;DLM、GFS、CLVM及Fence都依赖于cman群集管理器。
rgmanager资料组管理器
rgmanager(Resource Group Manager)基于cman并使用DLM动态锁管理机制。与cman一样,rgmanager也是RHCS中的一个核心服务,可通过系统中的serivce命令进行启/停操作;rgmanager管理并为集群中的Service(服务)和Resources(资源)提供Failover错误切换功能。
Service(服务)
每个服务都被指定存在于一个Failover Domain中,并与多个Resources(资源)关联。每个服务可以理解为实际操作中的一个应用,如Web服务器、Java中间件、数据库、文件共享系统、邮件系统等。这些应用在运行时不但对应用程序本身有要求(如某个运行指令或多个运行脚本的组合),还要提供对诸如虚拟IP、文件系统等资源的支持。
Failover Domain(错误切换域) 每个Failover Domain都与两个或两个以上的Node(服务器节点)进行绑定,Failover Domain指定了集群中某个Service运行时的范围,也就是指定此Service将会由哪些服务器提供Failover错误切换功能。每个Node都允许与多个Failover Domain进行绑定,也就是说每个Node都可以为多个Service服务,因此可以实现"主动/主动(双活动)"方式的集群配置。
Resources(资源) Resources指的是组成一个应用所需的各种组件,通常包括:应用程序、虚拟IP、文件系统。资源与Service组合时,往往还会体现出一定的层次关系,例如:通常系统都要求确认虚拟IP及文件系统都已经正常连接及挂载后,才可以运行某个应用程序,这个顺序一旦调转,就会使应用程序运行出错。
Fence机制 在RHCS集群运行时,为了避免因出现不可预知的情况而造成的"脑裂"现象(如:心跳线断连,此时两台服务器都无法找到对方,无法向对方发出操作指令,都各自认为自己是主节点;又或者主服务器系统崩溃,系统能接收到备用服务器的操作指令,但无法返回运行情况的确认信号,导致备用服务器无法获知系统资源的使用情况),系统要求通过Fence机制来保障系统切换时的I/O使用安全。 如上所述,Fence主要就是通过服务器或存储本身的硬件管理接口,又或者是外部电源管理设备,来对服务器或存储发起直接的硬件管理指令,控制服务器或存储链路的开关。因此,Fence机制也被称为"I/O屏障"技术。当"脑裂"发生时彻底断开问题服务器的所有I/O连接,保证问题服务器不能对集群中的I/O资源(共享的文件系统资源)进行任何操作,严格保证集群环境中企业核心数据的完整性。
集群
关掉所有端口
dvd.repo【
baseurl=http://172.25.9.250/yum
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
# HighAvailability rhel6.5
[HighAvailability]
name=Instructor HighAvailability Repository
baseurl=http://172.25.9.250/yum/HighAvailability
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
# LoadBalancer packages
[LoadBalancer]
name=Instructor LoadBalancer Repository
baseurl=http://172.25.9.250/yum/LoadBalancer
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
# ResilientStorage
[ResilientStorage]
name=Instructor ResilientStorage Repository
baseurl=http://172.25.9.250/yum/ResilientStorage
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
# ScalableFileSystem
[ScalableFileSystem]
name=Instructor ScalableFileSystem Repository
baseurl=http://172.25.9.250/yum/ScalableFileSystem
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
】
将所有 server1/2/3 yum原都改为dvd.repo 内容
【
集群 server1 server2
【yum install ricci -y ricci端口:11111
/etc/init.d/ricci start
chkconfig ricci on
/etc/init.d/iptables stop
chkconfig iptables off
passwd ricci 用户密码westos】
注意事项
1 date 时间差不多
2 iptables 关掉 ,(设置为开机关掉 )
3 /etc/hosts 真机dns解析
控制端:server3 yum install luci -y luci端口:8084
/etc/init.d/luci start
访问 https//server3.example.com:8084
【
用户root 秘密redhat
点击 Manage Cluster
add 添加集群
Node Name :server1/2.example.com
hostname :server1/2.example.com
密码westos
】
fence
systemctl stop NetworkManager 关掉,因为和fence不兼容
真机 :yum install fence-virtd* -y【yum search fence-virtd 来查看要下的包 fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 fence-virtd-serial.x86_64我们的物理机要一个一个来安装】
(如果有 /etc/cluster/ rm -f fence_xvm.key )
mkdir /etc/cluster
fence_virtd -c
【
Module search path [/usr/lib64/fence-virt]:
Available backends:
libvirt 0.1
Available listeners:
multicast 1.0
Listener module [multicast]:
Multicast IP Address [225.0.0.12]:
Multicast IP Port [1229]:
Interface [none]: br0
Key File [/etc/cluster/fence_xvm.key]
Backend module [libvirt]:
Libvirt URI [qemu:///system]:
】
dd if=/dev/urandom【没有urandom也可以random】 of=fence_xvm.key bs=128 count=1
file fence_xvm.key
systemctl start fence_virtd
systemctl status fence_virtd
netstat -anulp |grep 1229 fence的端口时udp:1229
scp fence_xvm.key root@172.25.19.1:/etc/cluster/ key为server1/server2断电时需要(/dev/random此为真机虚拟机管理器的一部分)
scp fence_xvm.key root@172.25.19.2:/etc/cluster/
物理机: virsh list 查看开启的虚拟机
访问 https//server3.example.com:8084
【
登陆
点击 Fence Devices
add 添加
切回 Nodes
点击server1/2.example.com
点击 Add Fence install
domain : server1/2或者ID
】
server1/2: clustat 查看集群节点,rgmanager节点管理
分别在 server2/1 fence_node sever1/2.example.com 给server1/2断电开起
fence 建好
访问 https//server3.example.com:8084
【
登陆
点击 Failover DOmains
Add 添加
对勾 Prioritized Order the nodes to which services failover.
对勾 Restricted Service can run only on nodes specified.
对勾 No Failback Do not send service back to 1st priority node when it becomes available again.
Services
httpd
Members
Member Priority
server1.example.com 对勾 1
server2.example.com 对勾 10
点击 Resources
Name/IP Type In Use
172.25.9.100/24 IP Address Yes
httpd Script Yes
点击 Service Groups
Name Status Autostart Failover Domain
httpd Running on server1.example.com webfail
[
Service Name httpd
Automatically Start This Service 对勾
Run Exclusive 对勾
Failover Domain webfail
Recovery Policy Relocate
]
添加【httpd vip:172.25.9.100】 为一组
】
添加【httpd vip:172.25.9.100】 为一组。访问vip,集群会开启优先级高的节点
clustat 查看工作机器(按优先级 priority)
/etc/init.d/httpd stop 停掉httpd服务
ip addr del 172.25.19.100/24 dev eth0 删掉ip
/etc/init.d/network stop 停网卡
echo c > /proc/sysrq-trigger 破坏内核
磁盘/储存分享
server1/2 客户端
安装 yum install iscsi-* -y
/etc/init.d/iscsi start
server3 输出端
yum install scsi-* -y
cd /etc/tgt
vim targets.conf 打开配置文件
【
<target iqn.2008-09.comsadieample:server.disk> 名字
backing-store /dev/sda 要分享的磁盘位置
initiator-address 172.25.9.1 二个客户端
initiator-address 172.25.9.2
</target>
】
/etc/init.d/tgtd start 打开scsi服务
server1/2 客户端
iscsiadm -m discovery -t st -p 172.25.9.3 激活客户端
iscsiadm -m node -l 登陆,才会有分享的磁盘
fdisk -l 查看有无分享的磁盘 (server3个server1/2分享的磁盘的名字必须要相同)
clusvcadm -d apache 关掉 ( clusvcadm -r apache -m server1/2.example.com 切换apache服务的主节点,此为切换到那个机子上)
/etc/init.d/clvmd status 必须开启
pvcreate /dev/sda 创建pv物理卷 pv s查看
vgcreate clustervg /dev/sda 创建物理卷组vg名字叫clustervg vgs vgdisplay clustervg查看vg详细信息
lvcreate -l 2047 -n demo clustervg 总共2047块 名字demo 逻辑卷
mkfs.ext4 /dev/clustervg/demo 格式化ext4 的格式
mount /dev/clustervg/demo /mnt/ 可以挂载了
此时可以将 磁盘信息 加入luci的图形界面 的 group 里 添加【 vip:172.25.9.100 /dev/clustervg/demo httpd 】 一组
umount /mnt
lvremove /dev/clustervg/demo