如何分分钟创建Linux虚拟集群?

日期: 2016-05-18 作者:Stuart Burns翻译:张冀川 来源:TechTarget中国 英文

设置虚拟集群可能是一个复杂、耗时的过程,因此起步的最佳方式是从细微处着手。 首先需要有两个Red Hat Enterprise Linux或CentOS 7节点,并配置正确的转发及反向域名系统,由于Red Hat 6及7之间有些变化,显著降低了集群管理的复杂度。 集群设置主要依靠两种技术:Pacemaker 和 Corosync。Pacemaker运行集群管理端,Corosync管理更低级别的集群项目以确保连通性。

使用如下命令同时安装Pacemaker 和 Corosync: yum install –y pcs fence-agents-all 该命令将会下载配置集群所需要的所有依赖包,请……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

设置虚拟集群可能是一个复杂、耗时的过程,因此起步的最佳方式是从细微处着手。

首先需要有两个Red Hat Enterprise Linux或CentOS 7节点,并配置正确的转发及反向域名系统,由于Red Hat 6及7之间有些变化,显著降低了集群管理的复杂度。

集群设置主要依靠两种技术:Pacemaker 和 Corosync。Pacemaker运行集群管理端,Corosync管理更低级别的集群项目以确保连通性。

使用如下命令同时安装Pacemaker 和 Corosync:

yum install –y pcs fence-agents-all

该命令将会下载配置集群所需要的所有依赖包,请注意必须在两个节点上执行上述命令。

你还需要增加一个防火墙规则以允许通过必需的流量。只需要运行如下命令:

firewall-cmd --permanent --add-service=high-availability

firewall-cmd --permanent --add-service=http

firewall-cmd --reload

启动集群设备

接下来的步骤是启用并启动集群服务。需要运行如下命令:

systemctl enable pcsd.service

systemctl start pcsd.service

第一行命令在启动时启用集群服务,第二行命令在当前会话启动集群服务。

启用并开启集群服务

图A 启用并开启集群服务

如果你有兴趣,可以查看/var/logs/cluster/目录下日志确认发生了什么。此时,我们已经启动了集群服务,但还没有真正构建集群设置。

采用最新版本的RHEL或CentOS,可以在命令行下使用pcs命令——“Pacemaker/Corosync配置系统”的简称——直接进行配置,这比之前的安装过程更简单。

安装完集群配置后,创建了一个名为hacluster的用户管理虚拟集群。为了能够使用该账号,必须更改密码,因此在两个节点上使用如下命令重置密码:passwd hacluster

管理虚拟集群

完成上述配置后,就可以开始管理虚拟集群与节点了。第一个步骤是授权包含在虚拟集群中的节点。命令如下:pcs cluster auth node1 node2

如果一切按计划进行,屏幕看起来应该与图B类似。

授权集群节点

图B 授权集群节点

创建集群资源

下一个步骤是创建集群资源。可以使用pcs cluster setup命令创建集群资源:pcs cluster setup --start --name myapp node1 node2

此时,集群资源控制器将刷新现有配置,同步新配置数据并构建一个包括两个指定节点的新配置。接下来就是使用如下命令启用虚拟集群: pcs cluster enable --all

结果应该会显示两个节点已经启用了。为检查整个集群的状态,可以使用命令pcs cluster status,该命令将显示当前集群状态的概要信息。

检查当前集群状态

图C 检查当前集群状态

理解共享存储的作用

在处理虚拟集群节点时需要牢记的一个重要事项是确保已关闭了hypervisor级的文件锁定系统。不这样做可能会带来很多问题,包括导致有问题的磁盘变为只读的。应该在操作系统级完成锁定。为覆盖该设置,请检查hypervisor文档。

在本示例中,我们仅设置相关配置。我们需要做的一件事是对服务器如何决定虚拟集群内什么是“活的”以及什么是“死的”进行管理。这可以通过称之为fencing的进程完成。当节点没有完全出故障并出现问题时,Fencing允许每个节点停止其他节点以保持集群的完整性。

没有有效的fencing配置,客户端将无法启动。fencing命令是pcs stonith。stonith是“关闭其他节点”首字母的缩略词,是一个能够关闭未在正常运行的节点的Linux服务。

有一些fence方法可用,但我们在示例中使用的是内置的虚拟fencing方法。在任何一个节点上运行如下命令:

pcs stonith create newfence fence_virt pcmk_host_list=f1

此时,我们可以使用如下命令重新启用集群组件:pcs cluster start --all

如果你使用的是pcs status命令,应该显示正在正常运行的服务。

启用虚拟IP

完成上述配置后,我们需要启用虚拟IP。虚拟IP是没有物理连接的地址。其用意是充当虚拟集群提供服务的容错前端。例如,如果一个节点出故障,不需要任何手动配置或者明显的停机时间,所有的流量将会路由到另一个集群节点。

根据需要取代如下命令中的IP地址,然后执行:

pcs resource create Cluster_VIP ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=24 op monitor interval=20s

集群现在应该处于活动状态。在开始使用集群前你需要增加集群资源。

翻译

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐