GFS分布式文件系统集群(实践篇)
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,实践部署实践环境开启5台Linux虚拟机,并在其中四台分别添加4块硬盘,每块硬盘内存为:20G开启后分别设置虚拟机名称为:node1、node2、node3、node4、client服务器地址分别为n
千家信息网最后更新 2025年01月24日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-vol
client配置
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安全错误
数据库的锁怎样保障安全
国家网络安全周的活动方案
网络安全知识科普意义
js 接受服务器数据
营口级差制软件开发设计
北京服务器租用价格表云主机
贵州点赞软件开发有限公司
魔幻厨房多久开一次服务器
网络安全需要高效管理制度
国家安全和网络安全宣传标语
南关区智能网络技术口碑推荐
移动网络技术怎么样
ae安装失败无法访问服务器
优的家庭服务器
2019上网网络安全案例
大宗商品平台软件开发
服务器linux多个网卡
方正证券研究报告服务器
九有数据库
网络技术在特殊教育的发展
杭州科技信息网数据库
电脑服务器更新地址
公安联考职位与网络安全与执法
星巴克数据库设计说明书
无人机更新数据库显示下载失败
网络技术利大于弊
江苏省公安厅网络安全大队
shell服务器信息
派出所网络安全宣传系列
网络安全好的建议英语
上海品牌软件开发电话多少