glusterfs简介
Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端。是整合了许多存储块(server)通过Infiniband RDMA或者 Tcp/Ip方式互联的一个并行的网络文件系统。
特征:
容量可以按比例的扩展,且性能却不会因此而降低。
廉价且使用简单,完全抽象在已有的文件系统之上。
扩展和容错设计的比较合理,复杂度较低
适应性强,部署方便,对环境依赖低,使用,调试和维护便利
存储类型:
文件存储
通常支持POSIX接口(如glusterfs,但GFS、HDFS是非POSIX接口的),可以像普通文件系统(如ext4)那样访问,但又比普通文件系统多了并行化访问的能力和冗余机制。主要的分布式文件存储系统有TFS、cephfs、glusterfs和HDFS等。主要存储非结构化数据,如普通文件、图片、音视频等。可以采用NFS和CIFS等协议访问,共享方便。NAS是文件存储类型。
块存储
这种接口通常以QEMU Driver或者Kernel Module的方式存在,主要通过qemu或iscsi协议访问。主要的块存储系统有ceph块存储、sheepdog等。主要用来存储结构化数据,如数据库数据。数据共享不方便。DAS和SAN都是块存储类型。
对象存储
对象存储系统综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势。以对象作为基本的存储单元,向外提供RESTful数据读写接口,常以网络服务的形式提供数据访问。主要的对象存储系统有AWS、swift和ceph对象存储。主要用来存储非结构化数据。
Glusterfs
Glusterfs是一个开源分布式文件系统,具有强大的横向扩展能力,可支持数PB存储容量和数千客户端,通过Infiniband RDMA 或Tcp/Ip 方式将许多廉价的x86 主机,通过网络互联成一个并行的网络文件系统。具有可扩展性、高性能、高可用性等特点
作者:timothyue1
链接:https://www.jianshu.com/p/a33ff57f32df
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
安装glusterfs,全部机器都要装 这里指的是 node1和node2
[root@linux-node1 ~]#yum install centos-release-gluster
[root@linux-node1 ~]#yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
#启动gluster服务,gluster机器都要重启
[root@linux-node1 ~]# service glusterd start
[root@linux-node2 ~]# service glusterd start
Trusted Storage Pools创建
在开始创建ClusterFS卷之前,需要创建一个称之为Trusted Storage的池,是一个可信的网络存储服务器,可以理解为集群。为卷提供bricks。
gluster peer probe<主机名或者IP地址>,建议是IP地址,或者内网用DNS做主机名解析,或者在/etc/hosts做好绑定。
[root@linux-node1 ~]# gluster peer probe 10.0.0.16
peer probe: success
查资源池
[root@linux-node1 ~]# gluster peer status
Number of Peers: 1
Hostname: 10.0.0.16
Uuid: 87d88002-a9eb-43e4-8bee-5487d96046c5
State: Peer in Cluster (Connected)
把别人加进来
[root@linux-node1 ~]#gluster peer probe 10.0.0.16
GlusterFS Volumes创建
GlusterFS的卷共有三种基本类型,可以组合共7种类型,其中Distributed、Replicated、Strped、为基本类型。Distributed Striped、Distributed Replicated、Distributed Striped Replicated、Striped Replicated。为组合类型。
创建Volumes使用以下命令进行:
gluster volume create NEW-VOLNAME [stripe COUNT | replica COUNT]
[transport [tcp | rdma | tcp,rdma]] NEW-BRICK1 NEW-BRICK2 NEW-BRICK3
本文为了测试7种卷类型,需要在各个服务器分别创建7个目录。
[root@linux-node1 ~]# mkdir /data && cd /data && mkdir type{1,2,3,4,5,6,7}/exp{1,2,3,4,5,6,7} –p
[root@linux-node2 ~]# mkdir /data && cd /data && mkdir type{1,2,3,4,5,6,7}/exp{1,2,3,4,5,6,7} -p
分布式卷创建 有一个节点挂了。那个节点东西没有了
[root@linux-node1 data]# gluster volume create test1-volume 10.0.0.15:/data/type1/exp1 10.0.0.16:/data/type1/exp1 force
volume create: test1-volume: success: please start the volume to access data
查看卷信息
[root@linux-node1 data]# gluster volume info test1-volume
Volume Name: test1-volume
Type: Distribute
Volume ID: 29727033-5f07-401f-a592-554665dff248
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: 10.0.0.15:/data/type1/exp1
Brick2: 10.0.0.16:/data/type1/exp1
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
启动卷
[root@linux-node1 data]# gluster volume start test1-volume
volume start: test1-volume: success
创建挂载点
[root@linux-node1 data]# mkdir /mnt/glusterfs/ type1 –p
mount挂载
[root@linux-node1 data]# mount.glusterfs 10.0.0.16:/test1-volume /mnt/glusterfs/type1/
创建点文件
[root@linux-node1 type1]# touch {1…7}.txt
[root@linux-node1 type1]# ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt
模仿多快硬盘如下:
[root@linux-node2 type1]# gluster volume create test11-volume 10.0.0.15:/data/type1/exp2 10.0.0.15:/data/type1/exp3 10.0.0.16:/data/type1/exp2 10.0.0.16:/data/type1/exp3 force
volume create: test11-volume: success: please start the volume to access data
[root@linux-node2 type1]# gluster volume start test11-volume
volume start: test11-volume: success
[root@linux-node2 type1]# gluster volume info test11-volume
[root@linux-node1 exp1]# mkdir /mnt/glusterfs/type11
[root@linux-node1 exp1]# mount.glusterfs 10.0.0.16:/test11-volume /mnt/glusterfs/type11
[root@linux-node1 exp1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.1G 2.2G 5.6G 29% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 36M 145M 20% /boot
10.0.0.16:/test1-volume
17G 4.4G 12G 28% /mnt/glusterfs/type1
10.0.0.16:/test11-volume
17G 4.4G 12G 28% /mnt/glusterfs/type11
日常维护命令
#看下节点有没有在线
gluster volume status nfsp
#启动完全修复
gluster volume heal gv2 full
#查看需要修复的文件
gluster volume heal gv2 info
#查看修复成功的文件
gluster volume heal gv2 info healed
#查看修复失败的文件
gluster volume heal gv2 heal-failed
#查看主机的状态
gluster peer status
#查看脑裂的文件
gluster volume heal gv2 info split-brain
#激活quota功能
gluster volume quota gv2 enable
#关闭quota功能
gulster volume quota gv2 disable
#目录限制(卷中文件夹的大小)
gluster volume quota limit-usage /data/30MB --/gv2/data
#quota信息列表
gluster volume quota gv2 list
#限制目录的quota信息
gluster volume quota gv2 list /data
#设置信息的超时时间
gluster volume set gv2 features.quota-timeout 5
#删除某个目录的quota设置
gluster volume quota gv2 remove /data
备注:quota功能,主要是对挂载点下的某个目录进行空间限额。如:/mnt/gulster/data目录,而不是对组成卷组的空间进行限制。