CentOS搭建集群指南
在现代 IT 基础设施中,高可用性和高性能的集群是必不可少的,本文将详细介绍如何在 CentOS 操作系统上搭建一个高可用性的集群,我们将涵盖环境准备、软件安装、配置步骤以及常见问题的解决方法。
一、前言
CentOS 是一个基于 Red Hat Enterprise Linux (RHEL) 的开源操作系统,广泛用于服务器和集群环境,搭建集群的目的是通过多台机器协同工作来提高系统的可用性和性能,常见的集群类型包括负载均衡集群、高可用性集群(如 Keepalived+Pacemaker)等。
二、所需软件与环境
1、操作系统: CentOS 7 或更高版本。
2、集群管理工具: Pacemaker、Corosync、Fence Agents、Keepalived。
3、虚拟化平台: VMware Workstation 或其他虚拟化工具。
4、网络文件系统: NFS 或 GFS2(可选)。
5、远程登录工具: SSH。
6、防火墙设置: 关闭或配置放行规则。
7、SELinux: 临时或永久关闭。
三、环境准备
1. 硬件条件自检
在搭建集群前,需要确认服务器的硬件配置是否符合需求,例如磁盘剩余空间、内存、CPU等,如果计划部署大数据集群(如 Hadoop),则需要确保有足够的磁盘空间。
2. 时间同步服务
集群节点之间的时间一致性非常重要,可使用 NTP(Network Time Protocol)进行时间同步。
安装 NTP:yum install ntpdate y
设置时间同步:ntpdate pool.ntp.org
3. 防火墙和 SELinux 设置
为了简化操作,建议关闭防火墙和 SELinux:
关闭防火墙:systemctl stop firewalld
和systemctl disable firewalld
禁用 SELinux:编辑/etc/selinux/config
文件,设置SELINUX=disabled
,然后重启系统。
4. SSH 免密登录配置
为了方便在各节点之间执行命令,需要配置 SSH 免密登录:
生成密钥对:sshkeygen
将公钥复制到其他节点:sshcopyid user@other_host
四、安装必要的软件包
1. 安装集群管理工具
在每个节点上安装以下软件包:
Pacemaker:yum install y pacemaker corosync crm
Fence Agents:yum install y fenceagentsall
Keepalived(用于虚拟 IP):yum install y keepalived
2. 安装其他必要软件
根据具体需求,可能还需要安装其他软件包,如 HTTPD、MySQL 等。
五、配置集群
1. 配置主机名和主机表
编辑/etc/hosts
文件,确保每个节点的主机名和对应的 IP 地址正确解析。
192、168.10.101 master 192、168.10.102 slave1 192、168.10.103 slave2
2. 配置 Corosync
编辑/etc/corosync/corosync.conf
文件,确保所有节点的配置一致:
totem { version: 2 ... nodelist { ring0_addr: [ "192.168.10.101"; "192.168.10.102"; "192.168.10.103" ]; ring0_netmask: "255.255.255.0"; } ... }
3. 配置 Pacemaker
创建资源脚本,例如/etc/haresources/haresources
:
pcs resource defaults for=script op monitor interval=30s pcs resource defaults for=service op monitor interval=30s pcs resource webserver1 systemd:httpd \ op monitor interval=30s pcs resource webserver2 systemd:httpd \ op monitor interval=30s pcs resource vip ocf:heartbeat:IPaddr2 \ params ip="192.168.10.254" cidr_netmask="24" \ op monitor interval=30s
启动并启用 Pacemaker:
systemctl enable pacemaker systemctl start pacemaker
4. 配置 Keepalived(用于虚拟 IP)
编辑/etc/keepalived/keepalived.conf
文件,配置虚拟 IP:
vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass your_password } virtual_ipaddress { 192.168.10.254 } }
启动并启用 Keepalived:
systemctl enable keepalived systemctl start keepalived
六、验证与测试
1. 检查集群状态
使用以下命令检查 Pacemaker 和 Corosync 的状态:
systemctl status pacemaker systemctl status corosync pcs cluster status
2. 测试故障转移
模拟主节点故障,观察备用节点是否能够接管服务,可以通过关闭主节点上的服务或手动切换来进行测试。
七、常见问题解答(FAQs)
Q1: Pacemaker 无法启动怎么办?
A1: 首先检查各个节点之间的网络连接是否正常,特别是/etc/hosts
文件中的主机名解析是否正确,然后查看日志文件(如/var/log/messages
)以获取详细的错误信息,常见的问题包括防火墙未关闭、SELinux 未禁用、配置文件错误等。
Q2: 如何添加新的节点到现有集群?
A2: 添加新节点时,首先需要在现有节点上停止 Pacemaker 和 Corosync 服务,然后将新节点加入集群,最后重新启动服务,具体步骤如下:
停止服务:systemctl stop pacemaker corosync
在新节点上安装并配置必要的软件包。
更新/etc/hosts
文件和集群配置文件。
重启服务:systemctl start pacemaker corosync
验证新节点是否已成功加入集群:pcs cluster status
通过以上步骤,您可以在 CentOS 上搭建一个基本的高可用性集群,需要注意的是,实际生产环境中的集群配置可能会更加复杂,涉及更多的细节和优化,希望这篇文章能为您搭建集群提供一个清晰的指导方向。