GFS分布式文件系统集群(实践篇)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,实践部署实践环境开启5台Linux虚拟机,并在其中四台分别添加4块硬盘,每块硬盘内存为:20G开启后分别设置虚拟机名称为:node1、node2、node3、node4、client服务器地址分别为n
千家信息网最后更新 2025年12月02日GFS分布式文件系统集群(实践篇)
实践部署
实践环境
- 开启5台Linux虚拟机,并在其中四台分别添加4块硬盘,每块硬盘内存为:20G
- 开启后分别设置虚拟机名称为:node1、node2、node3、node4、client
- 服务器地址分别为
- node1:192.168.116.128
- node2:192.168.116.130
- node3:192.168.116.129
- node4:192.168.116.131
- client:192.168.116.132
在所有虚拟机中配置主机名解析
vim /etc/hosts...192.168.116.128 node1192.168.116.130 node2192.168.116.129 node3192.168.116.131 node4:wq在node1节点服务器中编辑格式磁盘脚本,并执行脚本
mkdir /abc //创建目录cd /abcvim disk.sh //编辑脚本mkdir -p /data/sd{b..e}1for i in {b..e};doecho 'nw' | fdisk /dev/sd${i}mkfs.xfs /dev/sd${i}1mount /dev/sd${i}1 /data/sd${i}1done:wqchmod +x disk.sh //添加执行权限./disk.sh //执行脚本df -hT //查看磁盘信息文件系统 类型 容量 已用 可用 已用% 挂载点/dev/sda2 xfs 20G 1.5G 19G 8% /devtmpfs devtmpfs 903M 0 903M 0% /devtmpfs tmpfs 912M 0 912M 0% /dev/shmtmpfs tmpfs 912M 8.6M 904M 1% /runtmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda5 xfs 8.0G 33M 8.0G 1% /home/dev/sda1 xfs 8.0G 135M 7.9G 2% /boottmpfs tmpfs 183M 0 183M 0% /run/user/0/dev/sdb1 xfs 20G 33M 20G 1% /data/sdb1/dev/sdc1 xfs 20G 33M 20G 1% /data/sdc1/dev/sdd1 xfs 20G 33M 20G 1% /data/sdd1/dev/sde1 xfs 20G 33M 20G 1% /data/sde1 //成功分区将脚本文件分别推送到两外3个节点服务器,并分别执行脚本文件
scp disk.sh root@192.168.116.130:/opt/scp disk.sh root@192.168.116.129:/opt/scp disk.sh root@192.168.116.131:/opt/在所有node节点服务器中搭建yum源,使用yum源安装GFS服务
- GFS软件yum包下载
mount.cifs //192.168.80.2/shares /abc/ //挂载yum存放目录cd /etc/yum.repos.d/ //进入yum仓库目录mkdir bak //创建文件夹mv CentOS-* bak/ //将已存在的源全部放入创建的文件夹内vim glfs.repo //编辑yum源[glfs]name=glfsbaseurl=file:///abc/gfsrepo //指定yum源路径gpgcheck=0enabled=1:wqyum list //重新加载yum仓库yum install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma -y //安装GFS服务systemctl stop firewalld.service //关闭防火墙setenforce 0 //关闭selinuxsystemctl start glusterd.service //启动gfs服务systemctl enable glusterd.service //设置开启自启ntpdate ntp1.aliyun.com //同步阿里云时间进入node1节点服务器,添加信任节点
gluster peer probe node2gluster peer probe node3gluster peer probe node4在所有节点服务器查看信任节点信息
gluster peer statusNumber of Peers: 3Hostname: node2Uuid: 86e94693-aaaf-4eb9-91d6-edce0489e4f7State: Peer in Cluster (Connected)Hostname: node3Uuid: 1ee7a579-4a0e-493e-8709-d8234b8bb858State: Peer in Cluster (Connected)Hostname: node4Uuid: b98e1eb0-3639-47be-a767-3a3df125443aState: Peer in Cluster (Connected)在node1节点创建分布式卷
[root@node1 yum.repos.d]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force //创建分布式卷 force 强制执行[root@node1 yum.repos.d]# gluster volume info dis-vol //查看卷信息Volume Name: dis-volType: DistributeVolume ID: 370023d1-cdc9-4b0d-9c57-663ebad503cdStatus: CreatedSnapshot Count: 0Number of Bricks: 2Transport-type: tcpBricks:Brick1: node1:/data/sdb1Brick2: node2:/data/sdb1Options Reconfigured:transport.address-family: inetnfs.disable: on[root@node1 yum.repos.d]# gluster volume list //查看创建的卷dis-vol[root@node1 yum.repos.d]# gluster volume start dis-vol //启动卷volume start: dis-vol: success[root@node1 yum.repos.d]# gluster volume status dis-vol //查看卷状态tatus of volume: dis-volGluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick node1:/data/sdb1 49152 0 Y 12100Brick node2:/data/sdb1 49152 0 Y 11714Task Status of Volume dis-vol------------------------------------------------------------------------------There are no active volume tasks[root@node1 yum.repos.d]# gluster volume info dis-vol //再次查看卷信息Volume Name: dis-volType: Distribute Volume ID: 370023d1-cdc9-4b0d-9c57-663ebad503cdStatus: Started //处于启动状态Snapshot Count: 0Number of Bricks: 2Transport-type: tcpBricks:Brick1: node1:/data/sdb1Brick2: node2:/data/sdb1Options Reconfigured:transport.address-family: inetnfs.disable: on创建条带卷
[root@node1 yum.repos.d]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 forcevolume create: stripe-vol: success: please start the volume to access data[root@node1 yum.repos.d]# gluster volume start stripe-vol volume start: stripe-vol: success[root@node1 yum.repos.d]# gluster volume info stripe-vol Volume Name: stripe-volType: StripeVolume ID: da81b00a-0e98-43d9-b55a-726c758ecef9Status: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: node1:/data/sdc1Brick2: node2:/data/sdc1Options Reconfigured:transport.address-family: inetnfs.disable: on创建复制卷
[root@node1 yum.repos.d]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 forcevolume create: rep-vol: success: please start the volume to access data[root@node1 yum.repos.d]# gluster volume start rep-vol volume start: rep-vol: success[root@node1 yum.repos.d]# gluster volume info rep-vol Volume Name: rep-volType: ReplicateVolume ID: fa5bd0c7-5d8d-49da-a25d-9d3fb0592fe3Status: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: node3:/data/sdb1Brick2: node4:/data/sdb1Options Reconfigured:transport.address-family: inetnfs.disable: on创建分布式条带卷(至少4个节点)
[root@node1 yum.repos.d]# gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 forcevolume create: dis-stripe: success: please start the volume to access data[root@node1 yum.repos.d]# gluster volume start dis-stripe volume start: dis-stripe: success[root@node1 yum.repos.d]# gluster volume info dis-stripe Volume Name: dis-stripeType: Distributed-StripeVolume ID: 6dc5d7c3-76ed-437d-b5fe-e0b875c0de18Status: StartedSnapshot Count: 0Number of Bricks: 2 x 2 = 4Transport-type: tcpBricks:Brick1: node1:/data/sdd1Brick2: node2:/data/sdd1Brick3: node3:/data/sdd1Brick4: node4:/data/sdd1Options Reconfigured:transport.address-family: inetnfs.disable: on创建分布式复制卷(至少4个节点)
[root@node1 yum.repos.d]# gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 forcevolume create: dis-rep: success: please start the volume to access data[root@node1 yum.repos.d]# gluster volume start dis-rep volume start: dis-rep: success[root@node1 yum.repos.d]# gluster volume info dis-rep Volume Name: dis-repType: Distributed-ReplicateVolume ID: dd2c8b19-d63b-42aa-be66-ca760335d0a0Status: StartedSnapshot Count: 0Number of Bricks: 2 x 2 = 4Transport-type: tcpBricks:Brick1: node1:/data/sde1Brick2: node2:/data/sde1Brick3: node3:/data/sde1Brick4: node4:/data/sde1Options Reconfigured:transport.address-family: inetnfs.disable: on查看创建的卷
[root@node1 yum.repos.d]# gluster volume listdis-repdis-stripedis-volrep-volstripe-volclient配置
systemctl stop firewalld.service //关闭防火墙setenforce 0mkdir /abcmount.cifs //192.168.100.8/shares /abc/ //挂载yum源码包目录cd /etc/yum.repos.d/mkdir bakmv CentOS-* bak/vim glfs.repo //创建yum源[glfs]name=glfsbaseurl=file:///abc/gfsrepogpgcheck=0enabled=1:wqyum listyum install glusterfs glusterfs-fuse -y //安装GFSmkdir -p /text/dismkdir /text/stripmkdir /text/repmkdir /text/dis-strmkdir /text/dis-rep //创建5个挂载点目录mount.glusterfs node1:dis-vol /text/dis/ //挂载分布式卷mount.glusterfs node1:stripe-vol /text/strip/ //挂载条带卷mount.glusterfs node3:rep-vol /text/rep/ //挂载复制卷mount.glusterfs node2:dis-stripe /text/dis-str/ //挂载分布式条带卷mount.glusterfs node4:dis-rep /text/dis-rep/ //挂载分布式复制卷df -h件系统 容量 已用 可用 已用% 挂载点···node1:dis-vol 20G 265M 20G 2% /test/disnode1:stripe-vol 20G 265M 20G 2% /test/stripnode1:rep-vol 10G 233M 9.8G 3% /test/repnode1:dis-stripe 40G 330M 40G 1% /test/dis_stripenode1:dis-rep 20G 265M 20G 2% /test/dis_rep在client服务器中创建5个40M的文件,并将文件分别复制到5个挂载目录中
dd if=/dev/zero of=/demo1.log bs=1M count=40dd if=/dev/zero of=/demo2.log bs=1M count=40dd if=/dev/zero of=/demo3.log bs=1M count=40dd if=/dev/zero of=/demo4.log bs=1M count=40dd if=/dev/zero of=/demo5.log bs=1M count=40cp /demo* /test/discp /demo* /test/stripcp /demo* /test/repcp /demo* /test/dis_stripecp /demo* /test/dis_rep在node1、node2中查看分布式卷存放方式
[root@node1 ~]# ll -h /data/sdb1/总用量 160M-rw-r--r--. 2 root root 40M 12月 18 16:22 demo1.log //每个文件都是完整的-rw-r--r--. 2 root root 40M 12月 18 16:22 demo2.log -rw-r--r--. 2 root root 40M 12月 18 16:22 demo3.log-rw-r--r--. 2 root root 40M 12月 18 16:22 demo4.log[root@node2 ~]# ll -h /data/sdb1/总用量 40M-rw-r--r--. 2 root root 40M 12月 18 16:22 demo5.log //通过hash算法分布式存放在两台节点服务器中在node1、node2中查看条带卷存放方式
[root@node1 ~]# ll -h /data/sdc1/总用量 100M-rw-r--r--. 2 root root 20M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo4.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo5.log[root@node2 ~]# ll -h /data/sdc1/总用量 100M-rw-r--r--. 2 root root 20M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo4.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo5.log//所有文件都被分成各一半进行分布存储在node3、node4中查看复制卷
[root@node3 ~]# ll -h /data/sdb1总用量 200M-rw-r--r--. 2 root root 40M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo4.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo5.log[root@node4 ~]# ll -h /data/sdb1/总用量 200M-rw-r--r--. 2 root root 40M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo4.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo5.log//所有文件都被完整复制一遍,进行存储分别在所有节点服务器中查看分布式条带卷存放方式
[root@node1 ~]# ll -h /data/sdd1/总用量 80M-rw-r--r--. 2 root root 20M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo4.log[root@node2 ~]# ll -h /data/sdd1/总用量 80M-rw-r--r--. 2 root root 20M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 20M 12月 18 16:23 demo4.log[root@node3 ~]# ll -h /data/sdd1/总用量 20M-rw-r--r--. 2 root root 20M 12月 18 16:23 demo5.log[root@node4 ~]# ll -h /data/sdd1/总用量 20M-rw-r--r--. 2 root root 20M 12月 18 16:23 demo5.log//根据哈希算法将部分数据分布到前两个节点各存储一般,另一部分数据分配到另外两个节点各存储一半分别在所有节点服务器中查看分布式复制卷存放方式
[root@node1 ~]# ll -h /data/sde1/总用量 160M-rw-r--r--. 2 root root 40M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo4.log[root@node2 ~]# ll -h /data/sde1/总用量 160M-rw-r--r--. 2 root root 40M 12月 18 16:23 demo1.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo2.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo3.log-rw-r--r--. 2 root root 40M 12月 18 16:23 demo4.log[root@node3 ~]# ll -h /data/sde1/总用量 40M-rw-r--r--. 2 root root 40M 12月 18 16:23 demo5.log[root@node4 ~]# ll -h /data/sde1/总用量 40M-rw-r--r--. 2 root root 40M 12月 18 16:23 demo5.log通过哈希算分布在两个节点上存储,另外两个节点分别保存副本在node1删除卷
[root@node1 ~]# gluster volume list //查看已有的卷die-replicadis-stripedis-volrep-volstripe-vol[root@node1 ~]# gluster volume stop rep-vol //停止要删除的卷topping volume will make its data inaccessible. Do you want to continue? (y/n) y //输入y确认停止volume stop: rep-vol: success[root@node1 ~]# gluster volume delete rep-vol //执行命令删除卷Deleting volume will erase all information about the volume. Do you want to continue? (y/n) yvolume delete: rep-vol: success //成功删除[root@node1 ~]# gluster volume list //再次查看卷,已成功删除die-replicadis-stripedis-volstripe-vol访问控制设置
gluster volume set dis-vol auth.reject 192.168.116.130 //设置拒绝主机访问、挂载gluster volume set dis-vol auth.allow 192.168.116.130 //设置允许主机访问、挂载
节点
用量
服务
分布式
文件
服务器
条带
目录
脚本
存储
两个
信息
方式
成功
主机
系统
实践
仓库
再次
容量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ibm服务器专用管理端口
晋江护苗网络安全科
南京特亮网络技术服务有限公司
赣州科汇网络技术
东城区网络安全招标
数据库 大数据对象
高中生网络安全活动教育
数据库三个等级
服务器配置管理课程
hp服务器售后新华三
工控行业网络安全
服务器建站管理面板
软件开发技术职业规划
广州广凡网络技术有限公司
佛山聊天软件开发收费
高效的深圳软件开发公司
中山互联网科技
湖南用友软件开发公司
株洲电商系统软件开发
服务器怎么更新
组态王数据库上传其他电脑
软件开发最初工作是什么
数据库关系运算的除法
web连接数据库代码
数数据库管理系统
现在网络安全审查
全椒工程软件开发技术采购信息
流星蝴蝶剑服务器文件下载失败
淄博工资管理hr软件开发公司
滑稽城服务器下载