GFS分布式文件系统

一、GlusterFS概述

开源的分布式文件系统
由存储服务器、客户端以及NFS/Samba存储网关组成
无元数据服务器
模块化堆栈式架构
通过对模块的组合,实现复杂的功能

二、GlusterFS特点

扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议

三、GlusterFS术语

brick(块)
volume(卷)
fuse (引线,内核文件系统)
vfs(文件系统)
glusterd(分布式文件系统服务)

四、GlusterFS工作原理

弹性HASH算法
通过hash废得到一个32位的整数
划分为N个连续的子空间,每个空间对应一个brick
弹性hash算法的优点
保证数据平均分布在每一个brick中
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

五、GlusterFS的卷类型

1、分布式卷

没有对文件进行分块处理
通过扩展文件属性保存hash值
支持的底层文件系统有ext3、ext4、zfs、xfs等
分布式卷的特点
文件分布在不同的服务器中,不具备冗余性
更容易、廉价的扩展 卷的大小
单点故障会造成数据丢失
依赖底层的数据保护
创建分布式卷
创建一个名为dis-volume的分布式卷,文件将根据hash分布在server1:/dir1、server2:/dir2中
[root@localhost~]#gluster volume create dis-volume server1:/dir1 server2:/dir2

2、条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个brick server节点
存储大文件时,性能尤为突出
不具备冗余性,类似raid0
条带卷的特点
数据被分割成更小的块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余
创建条带卷
创建一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在server1:/dir2、server2:/dir2中
gluster voluster create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

3、复制卷

同一个文件保存一份或多份副本
因为要保存副本,所以磁盘利用效率低
若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为改卷的总容量
复制卷的特点
卷中所有的服务器均保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少有两个块服务器或更多的服务器
具备冗余性
创建复制卷
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在server1:/dir1、server2:/dir2中
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

4、分布式条带卷

兼顾分布式卷和条带卷的功能
主要用于大文件访问处理
至少最少需要4台服务器
创建分布式条带卷
创建名为dis-stripe的分布式条带卷,配置分布式的条带时,卷中brick所包含的存储服务器数必须是条带数的倍数(>=2倍)
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

5、分布式复制卷

兼顾分布式卷和复制卷的功能
用于需要冗余的情况
创建分布式复制卷
创建名为dis-rep的分布式条件带卷,配置分布式复制卷时,卷中brick所包含的存储服务器数必须是条带卷的倍数(>=2倍)
gluster voluster create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

六、部署集群环境

准备环境
新添加4块磁盘,并分区

分区脚本vim /opt/disk.sh
#!/bin/bash
echo "the new disk exist list:"
fdisk -l | grep '磁盘 /dev/sd[b-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
    sd[b-z])
      echo "n
                p



                 w" | fdisk /dev/$VAR
      mkfs.xfs -i size=512 /dev/${VAR}"1"  &>/dev/null
      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" ;;
  esac
done

chmod +x /opt/disk.sh
——————————————————————————————————
tar zxvf rarlinux-x64-5.9.1.tar.gz
make && make install
unrar e /opt/gfs/gfsrepo  
修改主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
   关闭防火墙和selinux
systemctl stop firewalld39
setenforce 0
   配置hosts文件
vim /etc/hosts
192.168.60.10 node1
192.168.60.20 node2
192.168.60.30 node3
192.168.60.40 node4

scp /etc/hosts root@192.168.60.20:/etc/hosts
scp /etc/hosts root@192.168.60.30:/etc/hosts
scp /etc/hosts root@192.168.60.40:/etc/hosts
scp /etc/hosts root@192.168.60.50:/etc/hosts

安装软件【在每个服务器上都配置,包括客户端】
unrar e gfsrepo.rar
cd /etc/yum.repos.d/
mkdir backup
mv C* backup
vim gfs.repo
[gfs]
name=gfs
baseurl=file:///opt/gfs
enabled=1
gpgcache=0
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
   启动glusterfs
systemctl start glusterd
时间同步
ntpdata ntp1.aliyun.com
   添加节点(添加入存储信任池只要在一台主机上添加其他节点即可)例如在节点1上面
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
   查看群集状态
//查看所有节点状态
gluster peer status
———————————————————————— 
//在服务端  
创建卷、部署客户端、测试文件系统
创建分布式卷
gluster volume create dis-vol node1:/sdb1 node2:/sdb1 force
systemctl start glusterd
创建条带卷
gluster volume create stripe-vol  stripe 2 node1:/sdb1 node2:/sdb1 force
systemctl start glusterd
创建复制卷
gluster volume create replica-vol replica 2 node1:/sdb1 node2:/sdb1 force
systemctl start glusterd
创建分布式条带卷
gluster volume create dis-str stripe 2  node1:/sdd1 node2:/sdd1 node3:/sdd1 node4:/sdd1 force
systemctl start glusterd
创建分布式复制卷
gluster volume create dis-rep replica 2  node1:/sdd1 node2:/sdd1 node3:/sdd1 node4:/sdd1 force
systemctl start glusterd

gluster volume list
gluster volume info dis-vol
gluster volume start dis-vol
如果要删除则是先停止再删除
gluster volume stop dis-vol
gluster volume delete dis-vol
————————————————————————————————
//在客户端

在客户端安装客户端软件
     创建挂载目录
     修改hosts文件
     挂载gluster文件系统
     修改fstab配置文件

卷中写入文件
    查看文件分布
    破坏性测试

systemctl stop firewalld
setenforce 0
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
     创建分布式卷
mkdir -p /opt/text/dis
mount.glusterfs node1:dis-vol /opt/text/dis
     创建条带卷
mkdir -p /opt/text/stripe
mount.glusterfs node2:stripe-vol /opt/text/stripe
     创建复制卷
mkdir -p /opt/text/replica
mount.glusterfs node2:replica-vol /opt/text/replica
     创建分布式条带卷
mkdir -p /opt/text/dis-str
mount.glusterfs node1:dis-str-vol /opt/text/dis-str
     创建分布式复制卷
mkdir -p /opt/text/dis-rep
mount.glusterfs node2:dis-rep-vol /opt/text/dis-rep
df -hT

dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40   

cp /opt/demo* /opt/text/dis
cp /opt/demo* /opt/text/stripe
cp /opt/demo* /opt/text/replica
cp /opt/demo* /opt/text/dis-str
cp /opt/demo* /opt/text/dis-rep
其他的维护命令
    查看glusterfs卷
    停止/删除卷
    设置卷的访问控制


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值