GFS分布式文件系统

理论

分布式文件系统
组成:文件系统接口,对象管理的软件集合,对象以及属性
文件系统作用:是对文件储存空间进行组织的分配,负责文件储存,他负责为用户建立文件,存入,独处,修改,转出文件,控制的存取。
FUSE:用户空间文件系统,这个一个为文件系统

工作流程

客户端在本地发出读写请求,然后交由VFS 的API接受请求,接受请求后会交给FUSE(内核伪文件系统),
FUSE可以模拟操作系统,所以可以对文件系统进行转存,转存的设备位置为:/dev/fuse(用于传输的设备-虚拟设备文件)——》交给GFS客户端,client 会根据配置文件对数据进行处理,然后再通过TCP/ib/rdma 网络发送到GFS服务端,并且将数据写到服务器存储设备上

基本券与符合券

基本卷:

(1) distribute volume:分布式卷

(2) stripe volume:条带卷

(3) replica volume:复制卷

复合卷:

(4) distribute stripe volume:分布式条带卷

(5) distribute replica volume:分布式复制卷

(6) stripe replica volume:条带复制卷

(7) distribute stripe replicavolume:分布式条带复制卷

分布式卷(默认):文件通过 HASH 算法分布到所有 Brick Server 上, 这种卷是 Glusterfs 的基础;以文件为单位根据 HASH 算法散列到不同的 Brick,其实 只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的 RAID 0, 不具有容错能力。

条带卷(默认):类似 RAID0,文件被分成数据块并以轮询的方式分布到多个 Brick Server 上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高。
100 50 + 50
分布式条带卷(Distribute Stripe volume):Brick Server 数量是条带数(数据块分布 的 Brick 数量)的倍数,兼具分布式卷和条带卷的特点。
分布式复制卷(Distribute Replica volume):Brick Server 数量是镜像数(数据副本 数量)的倍数,兼具分布式卷和复制卷的特点

实验,gfs集群部署

第一步:实验环境
将4台服务器添加4块硬盘,网络互通
第二步,对4台服务器进行环境设置,磁盘分区,格式化

vim /opt/disk.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 disk.sh
sh -x disk.sh
df -Th
在这里插入图片描述
所有几点完成挂载

第三步,修改主机名。配置文件

echo "192.168.17.10 node1" >> /etc/hosts
echo "192.168.17.20 node2" >> /etc/hosts
echo "192.168.17.30 node3" >> /etc/hosts
echo "192.168.17.40 node4" >> /etc/hosts
echo "192.168.17.50 client" >> /etc/hosts

第四步,安装,启动GFS文件
首先配置yum源
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak
vim /etc/yum.repos.d/glfs.repo

[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all && yum makecache
yum -y install centos-release-gluster
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd.service

第五步,gfs集群创建

[root@node1 yum.repos.d]# gluster peer probe node1
peer probe: success. Probe on localhost not needed
[root@node1 yum.repos.d]# gluster peer probe node2
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer probe node3
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer probe node4
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer status
'//其他三台node节点相同操作,不在赘述'

第六步,创建分布式券
1,创建分布式券

[root@node4 yum.repos.d]# gluster volume create dis-volume node1:/e6 node2:/e6 force	'//创建分布式卷'
volume create: dis-volume: success: please start the volume to access data
[root@node4 yum.repos.d]# gluster volume info dis-volume	'//查看分布式卷信息'
[root@node4 yum.repos.d]# gluster volume start dis-volume	'//开启分布式卷'
volume start: dis-volume: success

2,创建条带券

[root@node1 yum.repos.d]# gluster volume create stripe-volume stripe 2 node1:/d5 node2:/d5 force
volume create: stripe-volume: success: please start the volume to access data
[root@node1 yum.repos.d]# gluster volume info stripe-volume
[root@node1 yum.repos.d]# gluster volume start stripe-volume
volume start: stripe-volume: success

3,创建复制券

[root@node1 yum.repos.d]# gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
volume create: rep-volume: success: please start the volume to access data
[root@node1 yum.repos.d]# gluster volume info rep-volume
[root@node1 yum.repos.d]# gluster volume start rep-volume
volume start: rep-volume: success

4,创建分布式条带券

[root@node1 yum.repos.d]# gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force
volume create: dis-stripe: success: please start the volume to access data
[root@node1 yum.repos.d]# gluster volume info dis-stripe
[root@node1 yum.repos.d]# gluster volume start dis-stripe

5,创建条带式复制券

[root@node1 yum.repos.d]# gluster volume create dis-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force
volume create: dis-rep: success: please start the volume to access data
[root@node1 yum.repos.d]# gluster volume info dis-rep
[root@node1 yum.repos.d]# gluster volume start dis-rep
volume start: dis-rep: success

第七步,部署客户端测试
同样创建yum源,安装软件
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
配置hosts文件
临时挂载文件

mount.glusterfs node1:dis-volume /test/dis
mount.glusterfs node1:stripe-volume /test/stripe
mount.glusterfs node1:rep-volume /test/rep
mount.glusterfs node1:dis-stripe /test/dis_stripe
mount.glusterfs node1:dis-rep /test/dis_rep

写入

[root@client yum.repos.d]# dd if=/dev/zero of=/demo1.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.103023 秒,407 MB/秒
[root@client yum.repos.d]# dd if=/dev/zero of=/demo2.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.434207 秒,96.6 MB/秒
[root@client yum.repos.d]# dd if=/dev/zero of=/demo3.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.388875 秒,108 MB/秒
[root@client yum.repos.d]# dd if=/dev/zero of=/demo4.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.465817 秒,90.0 MB/秒
[root@client yum.repos.d]# dd if=/dev/zero of=/demo5.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.437829 秒,95.8 MB/秒

查看,测试

当我们关机node2 在客户端上查看文件是否正常
分布式券查看

-rw-r--r--. 1 root root 41943040 217 22:55 demo1.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo2.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo3.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo4.log
drwx------. 2 root root     4096 217 20:52 lost+found
'//原本存储在node2上的demo5.log文件消失了'

条带券查看

[root@client stripe]# ll
总用量 0
'//因为数据分片的,所以node2关机后,数据都消失了'

分布式条带券

[root@client dis_and_stripe]# ll
总用量 40964
-rw-r--r--. 1 root root 41943040 217 22:55 demo5.log
'//发现分布式的方式存储的demo5没有消失(存储在node3和node4上的

分布式复制券

-rw-r--r--. 1 root root 41943040 217 22:55 demo1.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo2.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo3.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo4.log
-rw-r--r--. 1 root root 41943040 217 22:55 demo5.log
drwx------. 2 root root     4096 217 20:59 lost+found
'//发现断点测试对于分布式复制卷没有影响'

总结:带复制数据的比较安全,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值