GlusterFS集群部署脚本合集

发布时间:2026/10/2 2:24:10
GlusterFS集群部署脚本合集 GlusterFS 集群部署脚本合集整合版 · txt 可直接复制粘贴适用环境CentOS 7.x GlusterFS 7.9阿里云 Storage SIG 源集群规模node1~node4存储节点 client客户端【执行顺序速查】序号 脚本名 在哪台执行---- ----------------------------- --------------------------------00 00_init_system.sh 主机名 node1~4、client参数为各自主机名01 01_setup_hosts.sh node1~4、client02 02_setup_yum.sh node1~4、client03 03_format_disks.sh node1~404 04_install_server.sh node1~405 05_create_cluster.sh node1仅一台06 06_install_client.sh client所有脚本均幂等重复执行不会出错。在 CentOS 7 上用 bash 运行即可例bash 00_init_system.sh node1--------------------------------------------------------------------------------【00_init_system.sh】通用初始化关防火墙/SELinux、设主机名适用机器node1~4、client参数为各自主机名用法示例bash 00_init_system.sh node1--------------------------------------------------------------------------------#!/bin/bashHOST${1:?用法: bash 00_init_system.sh 主机名}echo 设置主机名为 $HOSThostnamectl set-hostname $HOSTecho 关闭防火墙systemctl stop firewalld 2/dev/nullsystemctl disable firewalld 2/dev/nullecho 关闭 SELinuxsed -i s/SELINUX.*/SELINUXdisabled/g /etc/selinux/configsetenforce 0 2/dev/nullecho 完成当前信息echo 主机名: $(hostname)echo 防火墙: $(systemctl is-active firewalld)echo SELinux: $(getenforce)--------------------------------------------------------------------------------【01_setup_hosts.sh】写入集群 5 台主机名映射适用机器node1~4、client内容一致--------------------------------------------------------------------------------#!/bin/bashif grep -q node1$ /etc/hosts; thenecho /etc/hosts 已包含 node1~node4/client 映射跳过写入elseecho 追加集群主机名映射到 /etc/hostscat /etc/hosts EOF10.10.10.40 client10.10.10.41 node110.10.10.42 node210.10.10.43 node310.10.10.44 node4EOFfiecho 当前 /etc/hosts 主机名映射grep -E client|node[1-4] /etc/hosts--------------------------------------------------------------------------------【02_setup_yum.sh】配置阿里云 yum 源base/updates/extras/epel/gluster7适用机器node1~4、client说明自动停用失效的本地源 local.repo避免 yum 报错--------------------------------------------------------------------------------#!/bin/bashecho 1) 停用可能失效的本地源 local.repoif [ -f /etc/yum.repos.d/local.repo ]; thenmv /etc/yum.repos.d/local.repo /etc/yum.repos.d/local.repo.bakecho 已改名 /etc/yum.repos.d/local.repo - local.repo.bakfiecho 2) 配置 CentOS 7 基础源阿里云if [ ! -f /etc/yum.repos.d/centos7.repo ]; thencat /etc/yum.repos.d/centos7.repo EOF[base]nameCentOS-7 - Basebaseurlhttps://mirrors.aliyun.com/centos/7/os/x86_64/gpgcheck0enabled1[updates]nameCentOS-7 - Updatesbaseurlhttps://mirrors.aliyun.com/centos/7/updates/x86_64/gpgcheck0enabled1[extras]nameCentOS-7 - Extrasbaseurlhttps://mirrors.aliyun.com/centos/7/extras/x86_64/gpgcheck0enabled1EOFecho centos7.repo 已生成fiecho 3) 配置 EPEL 源阿里云if [ ! -f /etc/yum.repos.d/epel.repo ]; thencat /etc/yum.repos.d/epel.repo EOF[epel]nameEPEL 7baseurlhttps://mirrors.aliyun.com/epel/7/x86_64/gpgcheck0enabled1EOFecho epel.repo 已生成fiecho 4) 配置 GlusterFS 7 源CentOS Storage SIG阿里云镜像if [ ! -f /etc/yum.repos.d/gluster7.repo ]; thencat /etc/yum.repos.d/gluster7.repo EOF[gluster7]nameGlusterFS 7 (CentOS 7 Storage SIG)baseurlhttps://mirrors.aliyun.com/centos/7/storage/x86_64/gluster-7/gpgcheck0enabled1EOFecho gluster7.repo 已生成fiecho 5) 刷新缓存yum clean all /dev/null 21yum makecache /dev/null 21echo 当前启用的仓库yum repolist | tail -8--------------------------------------------------------------------------------【03_format_disks.sh】数据盘分区、格式化、挂载适用机器node1~4需已挂载 4 块数据盘 /dev/sdb~sde--------------------------------------------------------------------------------#!/bin/bashecho 检查数据盘是否存在for i in b c d e; doif [ ! -e /dev/sd$i ]; thenecho 警告/dev/sd$i 不存在请先在虚拟化软件中给本机添加数据盘。fidoneecho 分区 / 格式化 / 挂载 数据盘for i in b c d e; do[ -e /dev/sd$i ] || continueecho ---- 处理 /dev/sd$i ----if mountpoint -q /tat/sd$i 2/dev/null; thenecho /tat/sd$i 已挂载跳过continuefiprintf n\np\n1\n\n\nw\n | fdisk /dev/sd$i /dev/null 21mkfs.xfs -f /dev/sd${i}1 /dev/null 21mkdir -p /tat/sd$igrep -q /tat/sd$i /etc/fstab || echo /dev/sd${i}1 /tat/sd$i xfs defaults 0 0 /etc/fstabecho /dev/sd${i}1 - /tat/sd$i 完成doneecho 挂载全部 fstab 项mount -aecho 数据盘挂载结果df -h | grep /tat || echo 未检测到挂载点--------------------------------------------------------------------------------【04_install_server.sh】安装 GlusterFS 服务端并启动 glusterd适用机器node1~4--------------------------------------------------------------------------------#!/bin/bashecho 安装 GlusterFS 服务端联网下载可能需要几分钟yum install -y glusterfs-server glusterfs glusterfs-fuse glusterfs-rdmaecho 设置 glusterd 开机自启并启动systemctl enable glusterdsystemctl start glusterdecho 等待 glusterd 就绪sleep 3echo 验证echo glusterd 状态: $(systemctl is-active glusterd)echo 版本信息:gluster --version | head -1--------------------------------------------------------------------------------【05_create_cluster.sh】组建集群 创建分布式复制卷 dis-rep适用机器node1仅一台--------------------------------------------------------------------------------#!/bin/bashecho 1) 组建集群peer probe node2/3/4gluster peer probe node2gluster peer probe node3gluster peer probe node4echo 2) 查看 peer 状态若未全部收敛等 5~10 秒后重试建卷gluster peer statusecho 3) 等待集群状态收敛sleep 8echo 4) 创建分布式复制卷 dis-repreplica 2if gluster volume info dis-rep /dev/null 21; thenecho dis-rep 卷已存在跳过创建elsegluster volume create dis-rep replica 2 \node1:/tat/sde node2:/tat/sde node3:/tat/sde node4:/tat/sde forcefiecho 5) 查看卷信息gluster volume info dis-rep | grep -E Volume Name|Type|Status|Brickecho 6) 启动卷gluster volume start dis-repecho 7) 卷状态gluster volume status dis-rep | grep -E Brick|Status of volume--------------------------------------------------------------------------------【06_install_client.sh】客户端部署安装、挂载、写入测试文件适用机器client需先完成 00/01/02 脚本--------------------------------------------------------------------------------#!/bin/bashecho 1) 安装客户端组件yum install -y glusterfs glusterfs-fuseecho 2) 创建挂载目录mkdir -p /test/dis-repecho 3) 挂载分布式复制卷if mountpoint -q /test/dis-rep 2/dev/null; thenecho /test/dis-rep 已挂载跳过elsemount.glusterfs node1:dis-rep /test/dis-repfiecho 4) 查看挂载情况df -h | grep dis-repecho 5) 生成 5 个测试文件并复制到挂载点for i in 1 2 3 4 5; dodd if/dev/zero of/opt/test$i.txt bs1M count5 2/dev/nulldonecp /opt/test* /test/dis-rep/echo 6) 挂载点内容应看到 test1~5.txtls -lh /test/dis-rep/echo 7) 验证读写在挂载点正常echo hello-glusterfs /test/dis-rep/hello.txt cat /test/dis-rep/hello.txt整合自 deploy_scripts 目录 00~06 脚本2026-09-22

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询