集群(Cluster)是将多台计算机连接起来协同工作,作为一个整体系统对外提供服务。主要优势包括: - 高可用性:单点故障不影响整体服务 - 负载均衡:分散工作负载 - 可扩展性:可灵活增加节点 - 高性能:并行处理能力
设置静态IP:
# CentOS/RHEL
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Ubuntu
vi /etc/netplan/01-netcfg.yaml
配置主机名:
hostnamectl set-hostname node1 # 第一台设为node1
hostnamectl set-hostname node2 # 第二台设为node2
修改hosts文件:
vi /etc/hosts
# 添加如下内容(根据实际IP修改)
192.168.1.101 node1
192.168.1.102 node2
在所有节点生成SSH密钥:
ssh-keygen -t rsa
将公钥复制到其他节点:
ssh-copy-id node1
ssh-copy-id node2
测试SSH连接:
ssh node2 # 从node1连接到node2
# CentOS/RHEL
yum install -y ntp
systemctl enable ntpd
systemctl start ntpd
# Ubuntu
apt install -y ntp
systemctl enable ntp
systemctl start ntp
使用Pacemaker+Corosync:
# 在所有节点安装
yum install -y pacemaker pcs corosync fence-agents-all
# 启动服务
systemctl enable pcsd
systemctl start pcsd
# 设置hacluster密码
passwd hacluster
# 在一个节点上认证
pcs cluster auth node1 node2 -u hacluster -p password
# 创建集群
pcs cluster setup --name my_cluster node1 node2
pcs cluster start --all
pcs cluster enable --all
使用Nginx作为负载均衡器:
# 在负载均衡节点安装Nginx
yum install -y nginx
# 配置负载均衡
vi /etc/nginx/nginx.conf
# 添加类似配置:
http {
upstream backend {
server node1:80;
server node2:80;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
使用GlusterFS:
# 在所有节点安装
yum install -y glusterfs-server
systemctl enable glusterd
systemctl start glusterd
# 在一个节点上执行
gluster peer probe node2
# 创建分布式卷
gluster volume create gv0 replica 2 node1:/data/brick1/gv0 node2:/data/brick1/gv0
gluster volume start gv0
网络连通性测试:
ping node2
SSH连接测试:
ssh node2 hostname
集群状态检查:
# Pacemaker集群
pcs status
# GlusterFS集群
gluster peer status
gluster volume info
SSH连接失败:
systemctl stop firewalld
或ufw disable
setenforce 0
集群节点无法通信:
资源无法启动:
pcs resource debug-start resource_name
journalctl -xe
通过以上步骤,您可以建立一个基础的Linux集群环境。根据实际需求,可以进一步扩展和优化集群配置。