GlusterFS 集群搭建

GlusterFS 集群搭建目录一 部署流程 1 环境部署 2 硬盘分区挂载 3 配置 etc hosts 文件 所有节点上操作 4 安装 启动 GFS5 添加节点并创建集群 6 根据规划创建卷 6 1 创建分布式卷 6 2 创建条带卷 6 3 创建复制卷 6 4 创建分布式条带卷 6 5 创建分布式复制卷二 Client 客户端部署与测试 1 部署 Gluster 客户端 2 验证 gluster 文件系统 3 破坏性测试分布式文件系统三 GFS 文件系统的维护命令一 部署流程 1 环境部署节点 ip 磁盘挂载点 n


一、部署流程

1. 环境部署

节点 ip 磁盘 挂载点
node1 192.168.8.13 sdb1、sdc1、sdd1、sde1 /data
node2 192.168.8.14 sdb1、sdc1、sdd1、sde1 /data
node3 192.168.8.15 sdb1、sdc1、sdd1、sde1 /data
node4 192.168.8.16 sdb1、sdc1、sdd1、sde1 /data
client 192.168.8.17 \ \
  • 四台节点均需要添加四块磁盘,不需要太大(需关机状态下添加)
    在这里插入图片描述

#四台服务器操作 hostname node1 #临时修改主机名 bash systemctl stop firewalld systemctl disable firewalld setenforce 0 ntpdate ntp1.aliyun.com #时间同步 

在这里插入图片描述

2. 硬盘分区挂载

vim /opt/fdisk.sh #!/bin/bash echo "the disks exist list:" grep出系统所带磁盘 fdisk -l |grep '磁盘 /dev/sd[a-z]' echo "==================================================" PS3="chose which disk you want to create:" 选择需要创建的磁盘编号 select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit do case $VAR in sda) 本地磁盘就退出case语句 fdisk -l /dev/sda break ;; sd[b-z]) #create partitions echo "n 创建磁盘 p w" | fdisk /dev/$VAR #make filesystem 格式化 mkfs.xfs -i size=512 /dev/${ 
    VAR}"1" &> /dev/null #mount the system mkdir -p /data/${ 
    VAR}"1" &> /dev/null 永久挂载 echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab 使得挂载生效 mount -a &> /dev/null break ;; quit) break;; *) echo "wrong disk,please check again";; esac done chmod +x /opt/fdisk.sh cd /opt/ sh -x fdisk.sh 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 配置/etc/hosts文件(所有节点上操作)

echo "192.168.8.13 node1" >> /etc/hosts echo "192.168.8.14 node2" >> /etc/hosts echo "192.168.8.15 node3" >> /etc/hosts echo "192.168.8.16 node4" >> /etc/hosts cat /etc/hosts 

在这里插入图片描述

4. 安装、启动GFS

四个节点配置相同

  • 把 gfsrepo 压缩包上传至 opt 目录下
unzip gfsrepo.zip 

在这里插入图片描述

  • 配置 yum 本地源
cd /etc/yum.repos.d/ mkdir repo.bak mv CentOS-* repo.bak vim glfs.repo [glfs] name=glfs baseurl=file:///opt/gfsrepo gpgcheck=0 enabled=1 yum clean all && yum makecache yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma #安装gluster systemctl start glusterd.service #开启gluster服务 systemctl enable glusterd.service systemctl status glusterd.service netstat -antp | grep glusterd 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




5. 添加节点并创建集群

添加节点到存储信任池中,只需在 node1 节点上操作

添加节点到存储信任池中(在node1节点上操作) gluster peer probe node1 gluster peer probe node2 gluster peer probe node3 gluster peer probe node4 gluster peer status #在每个节点上查看群集状态 

在这里插入图片描述

6. 根据规划创建卷

卷名 卷类型 Brick
dis-volume 分布式卷 node1(/data/sdb1)、node2(/data/sdb1)
stripe-volume 条带卷 node1(/data/sdc1)、node2(/data/sdc1)
rep-volume 复制卷 node3(/data/sdb1)、node4(/data/sdb1)
dis-stripe 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
dis-rep 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)

6.1 创建分布式卷

gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force #创建分布式卷,没有指定类型,默认创建的是分布式卷 gluster volume list #查看类型 gluster volume start dis-volume #开启 gluster volume info dis-volume #查看卷信息 

在这里插入图片描述

6.2 创建条带卷

gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force #指定类型为 stripe,数值为2,且后面跟了2个 Brick Server,所以创建的是条带卷 gluster volume start stripe-volume gluster volume info stripe-volume 

在这里插入图片描述

6.3 创建复制卷

gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force#指定类型为replica,数值为2,且后面跟了2个Brick Server,所以创建的是复制卷gluster volume start rep-volumegluster volume info rep-volume 

在这里插入图片描述

6.4 创建分布式条带卷

gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force#指定类型为stripe,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式条带卷gluster volume start dis-stripegluster volume info dis-stripe 

在这里插入图片描述

6.5 创建分布式复制卷

gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force#指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷gluster volume start dis-repgluster volume info dis-repgluster volume list 

在这里插入图片描述

二、Client 客户端部署与测试

1. 部署 Gluster 客户端

在 node1上创建五个卷后,在客户端上把卷挂载在指定的五个目录内,在目录内写入了五个文件,五个文件分别保存在五个目录里面

  • 环境部署
systemctl stop firewalldsystemctl disable firewalldsetenforce 0ntpdate ntp1.aliyun.com#将软件包 gfsrepo.zip 传至 opt 目录下cd /optunzip gfsrepo.zip 
  • 配置本地 yum 源仓库
cd /etc/yum.repos.d/mkdir repos.bakmv CentOS-* repos.bak/vim glfs.repo[glfs]name=glfsbaseurl=file:///opt/gfsrepogpgcheck=0enabled=1yum clean all && yum makecacheyum install -y glusterfs glusterfs-fuse 

在这里插入图片描述

  • 创建挂载目录
mkdir -p /test/{ 
    dis,stripe,rep,dis_stripe,dis_rep}ls /test 

在这里插入图片描述

  • 配置 /etc/hosts 文件
echo "192.168.8.13 node1" >> /etc/hostsecho "192.168.8.14 node2" >> /etc/hostsecho "192.168.8.15 node3" >> /etc/hostsecho "192.168.8.16 node4" >> /etc/hosts 

在这里插入图片描述

  • 挂载 Gluster 文件系统
mount.glusterfs node1:dis-volume /test/dismount.glusterfs node1:stripe-volume /test/stripemount.glusterfs node1:rep-volume /test/repmount.glusterfs node1:dis-stripe /test/dis_stripemount.glusterfs node1:dis-rep /test/dis_repdf -Th 

在这里插入图片描述

  • 卷中写入文件
cd /optdd if=/dev/zero of=/opt/demo1.log bs=1M count=40dd if=/dev/zero of=/opt/demo2.log bs=1M count=40dd if=/dev/zero of=/opt/demo3.log bs=1M count=40dd if=/dev/zero of=/opt/demo4.log bs=1M count=40dd if=/dev/zero of=/opt/demo5.log bs=1M count=40#生成一个特定大小的文件给与/opt/demo*.log下,大小为1M,共处理40次ls -lh /optcp demo* /test/discp demo* /test/stripe/cp demo* /test/rep/cp demo* /test/dis_stripe/cp demo* /test/dis_rep/tree /test/ #查看/test/的文件夹/文件的目录树 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




2. 验证 gluster 文件系统

gluster 服务器上查看文件分布

  • ① 查看分布式文件分布
ls -lh /data/sdb1 #没有被分片,文件分开节点存放 

在这里插入图片描述
在这里插入图片描述

  • ② 查看条带卷文件分布
ls -lh /data/sdc1 #查询数据被分片50% 没副本 没冗余 

在这里插入图片描述
在这里插入图片描述

  • ③ 查看复制卷分布
#复制卷放在了 node3、node4ll -h /data/sdb1 #没有被分片,有副本,有冗余 

在这里插入图片描述
在这里插入图片描述

  • ④ 查看分布式条带卷分布
ll -h /data/sdd1 #文件被分片50%,没副本,没冗余 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • ⑤ 查看分布式复制卷分布
ll -h /data/sde1 #数据没有被分片 有副本 有冗余 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3. 破坏性测试分布式文件系统

#关闭 glusterd 服务 node2 节点来模拟故障[root@node2]#systemctl stop glusterd ls #在客户端上查看文件是否正常#查看卷数据是否正常ls /test/dis #测试分布式是否正常ls /test/rep #测试复制带是否正常ls /test/stripe #测试条带是否正常ll /test/dis_stripe #测试分布式条带是否正常ls /test/dis_rep #测试分布复制带是否正常 

在这里插入图片描述

小结:有复制数据功能的卷数据比较安全

三、GFS 文件系统的维护命令

gluster volume list #查看GlusterFS卷gluster volume info #查看所有卷的信息 gluster volume status #查看所有卷的状态gluster volume stop dis-stripe #停止一个卷gluster volume delete dis-stripe #删除一个卷#删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则不能成功删除gluster volume set dis-rep auth.allow 192.168.126.100 #设置卷的访问控制#仅拒绝,设置为IP地址为192.168.8.12的主机禁止访问dis-rep(分布式复制卷)gluster volume set dis-rep auth.allow 192.168.8.*#仅允许,设置为192.168.8.0网段的所有IP地址都能访问dis-rep(分布式复制卷) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202732.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午11:26
下一篇 2026年3月19日 下午11:26


相关推荐

  • c语言pow对函数调用不明确(c语言i++和++i)

    pow()函数用来求baix的y次幂,x、y及函数值都是double型,其原型du为:zhidoublepow(doublex,doubley)。实例代码如下:#include<stdio.h>#include<math.h>voidmain(){doublex=2,y=10;printf(“%f\n”,pow(x,y));return0;}结果:1024扩展bai资料:在调用pow函数时,可能导致错误.

    2022年4月11日
    67
  • mysql截取字符串去重,mysql 截取字符串 去重 拼接

    mysql截取字符串去重,mysql 截取字符串 去重 拼接1:字符串截取LEFT(guid_,LENGTH(guid_)-5)//1001-1002-1003截取为1001-10022:判断是否存在某字符串中IN(‘1001′,’1002′,’1003’)//whereidin(xxxx)可以用查询的某个字段直接whereidin(selectidfromxxxx)3:根据某个字段去重复在查询结果中加入COUNT(DIS…

    2022年6月10日
    187
  • JS设置CSS样式的几种方式

    JS设置CSS样式的几种方式JS 设置 CSS 样式的几种方式 1 直接设置 style 的属性某些情况下用这个设置 import 值无效如果属性有 号 就需要使用驼峰命名法 如 textAlign 如果想保留 号 就使用中括号 如 element style text align 100px element style height 100px 2 直接设置属性 只能用于某些属性 相关样式会

    2026年3月19日
    2
  • Claude Code入门指南,看这一篇就够了 | 保姆级教程

    Claude Code入门指南,看这一篇就够了 | 保姆级教程

    2026年3月16日
    2
  • 安卓传感器开发_智能传感器的应用

    安卓传感器开发_智能传感器的应用本节书摘来自异步社区《Android传感器开发与智能设备案例实战》一书中的目录,作者朱元波,更多章节内容可以访问云栖社区“异步社区”公众号查看目录前言第1章Android开发技术基础第1章第1.1节智能手机操作系统介绍第1章第1.2节Android的巨大优势[第2章搭建Android应用开发环境]()第2章第2.1节安装And…

    2026年4月17日
    4
  • 一维数组二分法查找_c语言实现二分查找

    一维数组二分法查找_c语言实现二分查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target = 5,返回

    2022年8月8日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号