glusterfs分布式存储架构集群【分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷】创建

gluster分布式存储架构集群

一、glusterfs认识

【1】GlusterFS概述

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

【2】GlusterFS特点

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

【3】GlusterFS术语

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

【4】GlusterFS工作原理

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

【5】GlusterFS的卷类型
(1) 分布式卷

没有对文件进行分块处理
通过扩展文件属性保存hash值
支持的底层文件系统有ext3、ext4、zfs、xfs等

(2)分布式卷的特点

文件分布在不同的服务器中,不具备冗余性
更容易、廉价的扩展 卷的大小
单点故障会造成数据丢失
依赖底层的数据保护

(3)创建分布式卷

创建一个名为dis-volume的分布式卷,文件将根据hash分布在server1:/dir1、server2:/dir2中

[root@localhost~]#gluster volume create dis-volume server1:/dir1 server2:/dir2
(4)条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个brick server节点
存储大文件时,性能尤为突出
不具备冗余性,类似raid0

(5) 条带卷的特点

数据被分割成更小的块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余

(6)创建条带卷

创建一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在server1:/dir2、server2:/dir2中

gluster voluster create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
(7) 复制卷

同一个文件保存一份或多份副本
因为要保存副本,所以磁盘利用效率低
若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为改卷的总容量

(8) 复制卷的特点

卷中所有的服务器均保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少有两个块服务器或更多的服务器
具备冗余性

(9) 创建复制卷

创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在server1:/dir1、server2:/dir2中

gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
(10)分布式条带卷

兼顾分布式卷和条带卷的功能
主要用于大文件访问处理
至少最少需要4台服务器

(11) 创建分布式条带卷

创建名为dis-stripe的分布式条带卷,配置分布式的条带时,卷中brick所包含的存储服务器数必须是条带数的倍数(>=2倍)

gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
(12) 分布式复制卷

兼顾分布式卷和复制卷的功能
用于需要冗余的情况

(13) 创建分布式复制卷

创建名为dis-rep的分布式条件带卷,配置分布式复制卷时,卷中brick所包含的存储服务器数必须是条带卷的倍数(>=2倍)

gluster voluster create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

————————————————————————————————

二、部署集群环境

【1】准备环境

关闭防火墙和selinux

systemctl stop firewalld
setenforce 0

————————————————————————————
新添加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
source /opt/disk.sh

——————————————————————————————————

【2】上传gfsrepo软件包并解压

因为是rar格式的压缩包,Linux系统默认没有解压工具,所以要安装rar软件包获取unrar解压工具

tar zxvf rarlinux-x64-5.9.1.tar.gz
make && make install
unrar e /opt/gfs/gfsrepo  
【3】修改主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
【4】 配置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
【5】安装软件【在每个服务器上都配置,包括客户端】
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

————————————————————————

【6】在服务端 创建卷、部署客户端、测试文件系统
(1)创建分布式卷
gluster volume create dis-vol node1:/sdb1 node2:/sdb1 force
systemctl start glusterd
(2)创建条带卷
gluster volume create stripe-vol  stripe 2 node1:/data/sdb1 node2:/data/sdb1 force
systemctl start glusterd
(3)创建复制卷
gluster volume create replica-vol replica 2 node1:/data/sdb1 node2:/data/sdb1 force
systemctl start glusterd
(4)创建分布式条带卷
gluster volume create dis-str stripe 2  node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
systemctl start glusterd
(5)创建分布式复制卷
gluster volume create dis-rep replica 2  node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
systemctl start glusterd
(6)查看分布式卷的信息和删除
gluster volume list
gluster volume info dis-vol
gluster volume start dis-vol

如果要删除则是先停止再删除

gluster volume stop dis-vol
gluster volume delete dis-vol

————————————————————————————————

【7】在客户端安装客户端软件
systemctl stop firewalld
setenforce 0
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
(1) 创建挂载目录
mkdir -p /opt/text/dis
mkdir -p /opt/text/stripe
mkdir -p /opt/text/replica
mkdir -p /opt/text/dis-str
mkdir -p /opt/text/dis-rep
(2)修改hosts文件
vim /etc/hosts
192.168.60.10 node1
192.168.60.20 node2
192.168.60.30 node3
192.168.60.40 node4
(3)挂载gluster文件系统
分布式卷
mount.glusterfs node1:dis-vol /opt/text/dis
df -hT
条带卷
mount.glusterfs node2:stripe-vol /opt/text/stripe
df -hT
复制卷
mount.glusterfs node2:replica-vol /opt/text/replica
df -hT
分布式条带卷
mount.glusterfs node1:dis-str-vol /opt/text/dis-str
df -hT
分布式复制卷
mount.glusterfs node2:dis-rep-vol /opt/text/dis-rep
df -hT
(4)修改fstab配置文件
vim /etc/fstab
node1:dis-vol    /opt/text/dis    xfs   defaults 0 0
node2:stripe-vol   /opt/text/stripe   xfs   defaults 0 0
node2:replica-vol    /opt/text/replica    xfs   defaults 0 0
dis-str-vol    /opt/text/dis-str    xfs   defaults 0 0
node2:dis-rep-vol    /opt/text/dis-rep    xfs   defaults 0 0
(5)卷中写入文件

//创建文件到opt目录下

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
(6)在服务端查看文件分布【以分布式查看为例】

在node1节点服务器上面查看

cd /data/sdb1 
ls -lh
demo1.log   demo2.log  demo3.log  demo4.log

在node2节点服务器上面查看

cd /data/sdb1
ls -h
demo5.log
(7)破坏性测试【宕机某一台node2节点】

在node1节点服务器上面查看

cd /data/sdb1 
ls -lh
demo1.log   demo2.log  demo3.log  demo4.log

在node2节点服务器上面查看

cd /data/sdb1
ls -h   //什么都查不到

(8)其他的维护命令
设置卷的访问控制
gluster volume set dis-vol auth.reject 192.168.60.50    //仅拒绝
gluster volume set dis-vol auth.allow 192.168.60.50    //仅允许
查看卷的信息
gluster volume list
gluster volume info dis-vol
gluster volume start dis-vol
卷的停止和删除
gluster volume stop dis-vol
gluster volume delete dis-vol
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值