存储之一glusterfs文件系统

GlusterFS(GNU Cluster File System)是一种全对称的开源分布式文件系统。
GlusterFS配置方便,稳定性好,可轻松达到PB级容量,数千个节点。通俗点来讲:数据随便存!!!
支持多种卷类型(类似RAID0/1/5/10/01)
常用卷类型:
分布(distributed)
复制(replicate)
条带(striped)

基本卷:
(1) distribute volume:分布式卷
(2) stripe volume:条带卷
(3) replica volume:复制卷

复合卷:
(1) distribute stripe volume:分布式条带卷
(2) distribute replica volume:分布式复制卷
(3) stripe replica volume:条带复制卷
(4) distribute stripe replicavolume:分布式条带复制卷

下面我们来看各种卷具体如何使用。
环境:
准备3台主机分别为node1-node3,并且为每块主机添加3块20G硬盘。
准备一台测试主机node4,并且为每台主机安装web服务

关闭node1-node4上的防火墙和selinux

systemctl stop firewalld; systemctl disable firewalld
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

时间同步:
cat /etc/ntp.conf

ntpdate 0.centos.pool.ntp.org	//三台都以这个校时

设置主机名解析

vim /etc/hosts   //三台主机都解析了
192.168.131.153 node1
192.168.131.157 node2
192.168.131.158 node3

格式化已添加的硬盘:

mkfs.xfs /dev/sdb
mkfs.xfs /dev/sdc
mkfs.xfs /dev/sdd

创建挂载目录

mkdir /gv1
mkdir /gv2
mkdir /gv3

添加磁盘自动挂载

vim /etc/fstab
/dev/sdb /gv1 defaults 0 0
/dev/sdc /gv2 defaults 0 0
/dev/sdd /gv3 defaults 0 0

配置yum源:

vim /etc/yum.repo/glusterfs.repo

[gluster]
name=g
baseurl=https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-4.1/
enabled=1
gpgcheck=0

安装glusterfs集群软件:

yum install -y glusterfs-server  //三台都装

安装好之后,启动glusterd

systemctl enable glusterd; systemctl start glusterd //三台都启动
systemctl status glusterd    //开启后查看状态

启动glusterd之后,在三台服务器中添加伙伴:

gluster peer probe node2
gluster peer probe node3
注意:在一台服务器上添加即可
查看伙伴的状态
gluster peer status

gluster peer detach node2	//删除伙伴

至此,我们的gluster集群就创建成功了!!!

创建分布式卷:(默认不写类型就是分布式卷)
分布式卷可以把所有存储到客户端的文件分到三块砖上去
缺点:如果一块砖上的数据丢失,那这块砖上的数据永远找不回来了,文件级为单位

用三块砖创建分布式卷:
gluster volume create dis_vol node1:/gv1/dv1 node2:/gv1/dv1 node3:/gv1/dv1
注意:dv1是随便起的砖的名字
此时会提示你启动,启动之前查看砖的信息:
gluster volume info dis_vol

劵的信息
启动这个卷

gluster volume start dis_vol   //启动这个分布式卷

node4上需要yum安装客户端软件去使用:

yum install -y glusterfs glusterfs-fuse attr
同样去/etc/hosts文件解析node1-3的ip:略
创建挂载目录:
mkdir /guazai
mount -t glusterfs node1:/dis_vol /guazai/       //也可以挂载node2或者node3,结果都一样

查看磁盘容量
现在就可以开始使用了!!!
如果在node4上的挂载目录上(/guazai)写入三个文件,那么这三个文件将会被分配到node1/2/3上各自的/gv1/dv1上。

创建条带卷(类似RAID0)
将一个文件分成条带,存放在多个brick上,默认条带大小128K
应用场景:大文件
优点: 适合存储大文件
缺点: 可靠性低,brick(砖)故障会导致数据全部丢失
下面我们来创建一个条带卷:

gluster volume create str_vol stripe 3 node1:/gv2/sv1 node2:/gv2/sv1 node3:/gv2/sv1
gluster volume start str_vol    //启动条带卷

查看卷的信息
同样node4需要挂载使用:

mkdir /sv1   //创建一个挂载目录
mount -t glusterfs node2:/str_vol /sv1	//挂载条带卷(node几都行)
df -h  //查看磁盘过来没

创建复制卷(类似RAID1)
多个文件在多个砖上复制多份,brick的数目与需要复制的份数相等,建议brick分布在不同的服务器上(3块砖只有1块砖的空间可以使用,其余两块用来复制,比较浪费空间)
应用场景:对可靠性和读性能要求高的场景
优点: 读性能好
缺点: 写性能差

创建一个复制卷:

gluster volume create rep_vol replica 3 node1:/gv1/rv1 node2:/gv1/rv1 node3:/gv1/rv1 force //创建复制卷(如果一块硬盘上有多块砖需要加force)
gluster volume start rep_vol

node4上挂载使用:

mount -t glusterfs node1:/rep_vol /rv1

创建分散卷(类似RAID5,推荐使用)
分散卷基于校验码,基于条带编码,并分布到多个brick上存储
应用场景:对冗余和磁盘空间都敏感的场景
优点: 在冗余和磁盘空间上取得平衡
缺点: 要求消耗额外的资源验证,对性能有一定影响
4块砖最多只允许1个brick故障而不丢失数据,5块砖最多允许2个brick故障不丢失数据

创建分散卷:

gluster volume create disperse_vol disperse 4 node1:/gv3/dispv1 node2:/gv3/dispv1 node3:/gv3/dispv1 node1:/gv1/dispv1 force
gluster volume start disperse_vol   //启动一下

分散卷
node4客户端去挂载使用:

mkdir /dispv1
mount -t glusterfs node3:/disperse_vol /dispv1

磁盘空间查看

创建分布式分散卷(类似RAID6)
分布分散卷(类似RAID6)
分布分散卷,多个文件在多个节点上哈希分布存储,存储的时候基于条带校验码并有冗余度设置
应用场景: 对冗余和磁盘空间都敏感的场景
优点: 在冗余、磁盘空间、读/写性能上取得平衡
缺点: 要求消耗额外的资源进行验证,对性能有一定的影响

5个brick分布分散卷,最多允许2个brick故障而不数据丢失
创建分布分散卷:

gluster volume create disperse_vol disperse 3 node1:/gv1/disp1 node2:/gv1/disp1 node3:/gv1/disp1 node1:/gv2/disp1 node2:/gv2/disp1 node3:/gv2/disp1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值