一、概述

1、GlusterFS是集群式NAS存储系统,分布式文件系统(POSIX兼容),Tcp/Ip方式互联的一个并行的网络文件系统,通过原生 GlusterFS 协议访问数据,也可以通过 NFS/CIFS 协议访问数据,没有元数据服务器,实现整个系统的性能、可靠性和稳定性。

2、GlusterFS 常见术语

名称 解释
Brick 最基本的存储单元,表示为trusted storage pool中输出的目录,供客户端挂载用。
Volume 一个卷。在逻辑上由N个bricks组成。
Glusterd Gluster management daemon,要在trusted storage pool中所有的服务器上运行。
FUSE Unix-like OS上的可动态加载的模块,允许用户不用修改内核即可创建自己的件系统。
POSIX 一个标准,GlusterFS兼容。

3、GlusterFS卷类型

基本卷:

(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:分布式条带复制卷

基本卷:
哈希卷(distributed volume,文件通过hash算法在所有brick上分布,文件级raid0,不具有容错能力);

复制卷(replicated volume,生产常用,文件同步复制到多个brick上,文件级raid1,具有容错能力,w性能下降r性能提升);

条带卷(striped volume,不建议使用,单个文件分布到多个brick上,支持超大文件,类似raid0,rr方式round-robin,通常用于HPC(high performance compute)中的超大文件(>10G的单个文件)及高并发环境(多人同时访问同一个文件));

复合卷:
哈希复制卷(distributed replicated volume,生产常用,同时具有哈希卷和复制卷的特点);

哈希条带卷(distributed striped volume);

复制条带卷(replicated striped vlume);

哈希复制条带卷(distributed replicated striped volume);


4、开源并行FS比较(glusterfs VS ceph):

比较维度GlusterfsMoosefsLustreCeph成熟度2005年发布第一个GA版1.2.3,2013年GA版3.3.2,具有成熟的系统架构和完整的工程代码2008年发布第一个开源版本v1.5,13年发布GA版v1.6.27,稳定,比较成熟的开源DFS2003发布第一个版本lustre1.0,2013年发布v2.4.0,相当成熟,在HPC领域占有绝大比例2013年发布v0.71,并已添加到linux kernel中作实验内核,目前不成熟有较多bug,更新稳定都是实验版稳定性较稳定,无重大bug,已有较多组织或机构应用于生产环境较稳定,无重大bug很稳定,在HPC领域应用很多核心组件RADOS较稳定,每3个月更新一次稳定版,有部分企业用于生产环境复杂度简单,无元数据服务,用户空间实现,架构清晰,xlator树形结构简单,用户空间实现,代码规模较小,高度模块化复杂度较高,依赖内核实现较复杂,c++实现,功能较多高性能解除元数据瓶颈,并行化数据访问元数据单点瓶颈高性能,HPC领域表现卓越数据分布均衡,并行化度高扩展性弹性hash代替元数据服务,线性扩展,可轻松扩展到数百PB量级,支持动态扩容可增加存储server,不能增加MDS高扩展性,容量可达数百PB,可在不打断任何操作的情况下,通过增加新的OSS来实现动态扩展高扩展性,支持10-1000台server,支持TB到PB的扩展,当组件发生变化时(添加或删除),自动进行数据的重分布可用性多元数据服务设计,数据分布提供三种方式的分割:AFR、DHT、stripe,支持自动复制和自动修复元数据+日志服务器,保障元数据server,运行时元数据放内存,可设置副本元数据集群,可部署主备切换工作方式,无副本设计,OSS之间可利用共享存储实现自动故障恢复元数据集群,没有单点故障,多数据副本,自动管理、自动修复,monitor监控集群中所有节点状态,且可有多个monitor保证可靠性可管理性部署简单,易于管理和维护,使用底层FS,ext3/zfs,客户端负载增加;提供管理工具,如卷的扩容、数据LB、目录配额及相关监控等部署简单,提供web gui监控界面,元数据恢复,文件恢复,回收站功能,快照部署复杂,需升级kernel等,提供管理工具,如设置目录stripe部署较复杂,提供工具对集群进行监控管理,包括集群状态,各组件状态等研发成本用户空间实现,模块化堆栈式架构用户空间实现,小规模高,内核空间实现,且代码规模大较高,代码规模大,功能多适用性适用以文件为对象的存储体系,适合大文件存储小规模集群,元数据瓶颈,内存消耗大大文件,HPC领域NAS兼容支持NFS、CIFS、HTTP、FTP、gluster原生协议,与POSIX标准兼容支持CIFS、NFS,支持标准POSIX接口支持CIFS、NFS,支持标准POSIX接口支持CIFS、NFS,支持标准POSIX接口采用指数☆☆☆☆☆☆☆☆☆☆☆☆

二、配置安装

1、环境

192.168.1.11 gluster-1-1

192.168.1.12 gluster-1-2

192.168.1.13 gluster-1-3

注意:hosts文件添加解析,时间同步,关闭iptables和SELinux,三台各加10G硬盘做存储数据。

2、下载gluster相关软件包

vim /etc/yum.repos.d/gfs.repo
http://bits.gluster.org/pub/gluster/glusterfs/3.4.2/x86_64
依赖包:rpcbind    libaio   lvm2-devel
服务端:yum  install   glusterfs-server glusterfs glusterfs-cli   glusterfs-fuse  glusterfs-libs glusterfs-api
客户端:yum  install    glusterfs    glusterfs-fuse  glusterfs-libs
磁盘分区:mkfs.ext4  -L /brick1  /dev/sdb   分区、标签、格式化

3、部署

1)创建目录并启动服务
mkdir /brick1
/etc/init.d/glusterd start2)添加gluster节点服务器
gluster peer probe gluster-1-2
gluster peer probe gluster-1-33)查看节点服务器
gluster  peer  status

4、创建卷

1)创建testvol卷(默认是哈希卷)
gluster volume create testvol gluster-1-1:/brick1/b1 哈希卷
gluster volume create gs2 replica 2 gluster-1-1:/brick1/b1  gluster-1-2:/brick1/b2 复制卷2)启动卷
gluster volume start testvol3)查看卷
gluster volume info 4)删除卷
gluster volume remove-brick testvol gluster-1-2:/brick1/b2
5、客户端测试1)客户端挂载卷
mount -t glusterfs gluster-1-1:/testvol /mnt2)测试
df -h   mount    等
touch  {1..9}.txt
rm 4.txt

6、节点操作

1)删除节点服务器
gluster peer detach gluster-1-2 不能删除自己2)添加节点服务器
gluster peer probe gluster-1-2
gluster volume add-brick testvol gluster-1-2:/brick1/b2 (b2下面不能有文件)3)重新LB,要在闲时做,分两步,先fix-layout将hash算法重分配,再将数据重分配
gluster volume rebalance testvol fix-layout start
gluster volume rebalance testvol start4)查看rebalance平衡状态
gluster volume rebalance testvol status

7、删除卷

1)卸载挂载点
umount /mnt -lf
2)删除卷
gluster volume stop testvol
gluster volume delete testvol (卷删除后,内容还在)
rm -rf /brick1/b1

8、恢复卷信息

1)卷信息的目录
ll /var/lib/glusterd/vols/testvol/2)恢复命令
gluster volume sync gluster-1-1  all

9、其他

1)允许可信任客户端IP
gluster volume set testvol auth.allow 192.168.1.*2)关闭gluster的nfs功能
ps -ef | grep nfs
gluster volume set testvol nfs.disable on

10、故障

1)复制卷数据不一致
故障现象:双副本卷数据出现不一致
故障模拟:删除其中一个brick数据
修复方法cat 文件触发自修复:遍历并访问文件find /mnt -type f -print0 | xargs -0 head -c12)glusterfs集群节点配置信息不正确
恢复复制卷 brick故障现象:双副本卷中一个brick损坏恢复流程
a、重新建立故障brick目录mkdir b2
b、设置扩展属性(参考另一个复制 brick)getfattr -d -m . -e hex b1/  获取扩展属性setfattr -n trusted.glusterfs.volume-id -v 0x1fa96ed0a0624ccf9e4f07cb9d84296f b2setfattr -n trusted.gfid -v 0x00000000000000000000000000000001  b2setfattr -n trusted.glusterfs.dht -v 0x000000010000000000000000ffffffff b2
c、重启 glusterd服务/etc/init.d/glusterd restartgluster volume stop testvolgluster volume start testvol
d、触发数据自修复find /mntpoint -type f -print0 | xargs -0 head -c1 >/dev/null3)修复磁盘数据(在使用server1时宕机,使用server2替换,执行数据同步)
gluster volume replace-brick testvol server1:/brick1/b1 server2:/brick1/b1 commit force
gluster volume heal testvol full

GlusterFS 客户端常用命令

命令   功能
gluster peer probe  添加节点
gluster peer detach 移除节点
gluster volume create   创建卷
gluster volume start    启动卷
gluster volume stop 停止卷
gluster volume delete   删除卷
gluster volume quota enable 开启卷配额
gluster volume quota enable 关闭卷配额
gluster volume quota limit-usage    设定卷配额

创建卷

1、创建分布卷gluster volume create dis_vol  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2   gluster-1-3:/brick1/b32、创建复制卷gluster volume create rep_vol replica 2 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b33、创建条带卷gluster volume create str_vol  stripe 3 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b34、创建分布条带卷gluster volume create dir_str_vol stripe 4  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b35、创建分布复制卷gluster volume create dir_rep_vol replica 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b36、创建分布条带复制gluster volume create dis_str_rep_vol stri  2 repl 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b37、创建条带复制卷gluster volume create str_rep_vol stripe 2 replica 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b38、创建分散卷(不常用)gluster volume create disperse_vol disperse 4 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

资源定义

Brick: 存储的基本单元,表现为服务器上可信存储池的导出目录
Volume: 卷是bricks的逻辑集合
Cluster: 一组计算机组成的集群
Distributed File System: 允许多个客户端通过网络并发访问的文件系统
GFID: 每个GlusterFs中的文件或者目录都有一个128bit的数字标识称为GFID
glusterd: 管理守护进程需要运行在所有的提供授信存储池的服务器上
Namespace: 名称空间是被创建的一个抽象容器或环境用来保存唯一标识符号
Quorum: 设置一个可信的存储池中最多失效的主机节点数量
Quota: 允许通过目录或者卷设置对磁盘空间使用的限制
Posix: 可移植操作系统接口是IEEE定义的一系列相关api标准
Vol File: Vol文件是glusterfs进程使用的配置文件
Distributed: 分布卷
Replicated: 复本卷
Distributed Replicated: 分布式复制卷
Geo-Replication: 异地备份为站点通过局域网、广域网、互联网提供一个连续的异步的和增量复制服务
Metedata: 元数据定义为关于数据的数据描述信息,在GlusterFs没有专用的元数据存储内容
Extended Attributes: 扩展属性是文件系统的一个特性
FUSE: 用户空间的文件系统是一个用于类Unix操作系统的可加载内核模块,以允许非特权用户在适用内核代码的情况下创建自己的文件系统。实现了在用户空间下运行文件系统代码

创建volume

Distributed:分布式卷,文件通过hash算法随机的分布到由bricks组成的卷上。
Replicated:复制式卷,类似raid1,replica数必须等于volume中brick所包含的存储服务器数,可用性高。
Striped:条带式卷,类似与raid0,stripe数必须等于volume中brick所包含的存储服务器数,文件被分成数据块,以Round Robin的方式存储在bricks中,并发粒度是数据块,大文件性能好。
Distributed Striped:分布式的条带卷,volume中brick所包含的存储服务器数必须是stripe的倍数(>=2倍),兼顾分布式和条带式的功能。
Distributed Replicated:分布式的复制卷,volume中brick所包含的存储服务器数必须是 replica 的倍数(>=2倍),兼顾分布式和复制式的功能。

GlusterFS介绍及安装部署相关推荐

  1. Storm介绍及安装部署

    本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...

  2. Kylin快速入门系列(1) | Kylin的简单介绍及安装部署

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  3. Ansible简单介绍及安装部署详解

    ansible简单介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  4. NoSQL数据库之Redis数据库:Redis的介绍与安装部署(redis-2.8.19/3.2.5)

     NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的w ...

  5. day95-容器编排-kubernetes介绍与安装部署

    kubernetes 一.容器编排工具 docker machine docker compose docker swarm docker service docker stack kubernete ...

  6. jenkins持续集成介绍及安装部署

    目录 一,jekins介绍 1,什么是jekins? 2,jekins可以为我们解决什么问题? 3,什么是持续集成? 4, 持续集成的操作流程 二,jenkins部署 1,jenkins基本配置部署( ...

  7. Zabbix介绍及安装部署

    .    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定 ...

  8. Redis学习一Redis的介绍与安装部署

    NoSql 介绍 NoSql 是key-value形式存储,和传统的数据库不一样,不一定遵循传统数据库的一些基本要求,比如遵循SQL标准(insert\update\delete\select).AC ...

  9. netdata mysql_Netdata介绍及安装部署

    Netdata 是一款 Linux 性能实时监测工具.Netdata是Linux系统实时性能监测工具,提供web界面的界面视角. 它用可视化的手段,将被监测者最细微的细节,展现了出来.这样,你便可以清 ...

最新文章

  1. 小黑小波比.404 (Not Found)
  2. sencha touch 组件选择器getCmp和ComponentQuery.query()的效率解析
  3. ERP实施成功与否,企业文化是致命因素?
  4. STM32 基础系列教程 12 – ADC 中断
  5. VTK:小部件之CompassWidget
  6. 软件开发打败了80%的程序员
  7. java final 详解_java中Final详解
  8. 【渝粤教育】电大中专电商运营实操 (16)作业 题库
  9. 创建CocoaPods的Framework Swift组件化之路(下)
  10. coreseek java_coreseek 安装及使用方法详解
  11. H3CSE园区-MSTP
  12. 利用Google翻译实现网站国际化——js插件
  13. win10专业版无法安装更新解决方法
  14. NextCloud如何共享文件
  15. test1asfd 按时收费的水电费阿萨德阿斯蒂芬啊
  16. ​NeurIPS 2022 | IPMT:用于小样本语义分割的中间原型挖掘Transformer
  17. App中英文切换简单好用
  18. 还在找怎么修复老照片?火爆全网的老照片修复技术方法其实很简单
  19. ballerina 学习二十八 快速grpc 服务开发
  20. 谈新手Java SE JDK 下载那个版本好!

热门文章

  1. arcgis导入市级政区图_CityBuilder——导入GIS数据创建三维城市地图
  2. 英语学习录——12月
  3. 《现代控制理论》第一章常见题型及解法
  4. python解析xml存入字典_Python将XML同级放入字典
  5. Git在添加目录时遇到了Fatal: unpopulated submodule的解决办法
  6. vue3前端js通过navigator.serial直接连接地磅仪串口显示重量
  7. 【气动学】外弹道仿真系统含Matlab源码
  8. linux下串口gps应用
  9. 几个电子书籍检索利器
  10. Android 动画和过渡