GlusterFS 分布式文件系统原理和centos安装和配置(三)

一、概述

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

2、GlusterFS 常见术语

名称 解释
Brick 最基本的存储单元,表示为trusted storage pool中输出的目录,供客户端挂载用。
Volume 一个卷。在逻辑上由N个bricks组成。
FUSE Unix-like OS上的可动态加载的模块,允许用户不用修改内核即可创建自己的文件系统。
Glusterd Gluster management daemon,要在trusted storage pool中所有的服务器上运行。
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 moosefs VS lustre VS ceph):
比较维度

比较纬度 Glusterfs Moosefs Lustre Ceph
成熟度 2003发布第一个版本lustre1.0,2013年发布v2.4.0,相当成熟,在HPC领域占有绝大比例 2008年发布第一个开源版本v1.5,13年发布GA版v1.6.27,稳定,比较成熟的开源DFS 2003发布第一个版本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领域 Ceph
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 start

2)添加gluster节点服务器
gluster peer probe gluster-1-2
gluster peer probe gluster-1-3

3)查看节点服务器
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 testvol

3)查看卷
gluster volume info 

4)删除卷
gluster volume remove-brick testvol gluster-1-2:/brick1/b2
5、客户端测试

1)客户端挂载卷
mount -t glusterfs gluster-1-1:/testvol /mnt

2)测试
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 start

4)查看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 -c1

2)glusterfs集群节点配置信息不正确
恢复复制卷 brick
 故障现象:双副本卷中一个brick损坏
 恢复流程
a、重新建立故障brick目录
  mkdir b2
b、设置扩展属性(参考另一个复制 brick)
 getfattr -d -m . -e hex b1/  获取扩展属性
 setfattr -n trusted.glusterfs.volume-id -v 0x1fa96ed0a0624ccf9e4f07cb9d84296f b2
 setfattr -n trusted.gfid -v 0x00000000000000000000000000000001  b2
 setfattr -n trusted.glusterfs.dht -v 0x000000010000000000000000ffffffff b2
c、重启 glusterd服务
 /etc/init.d/glusterd restart
 gluster volume stop testvol
 gluster volume start testvol
d、触发数据自修复
 find /mntpoint -type f -print0 | xargs -0 head -c1 >/dev/null


3)修复磁盘数据(在使用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/b3
 
2、创建复制卷
 gluster volume create rep_vol replica 2 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

3、创建条带卷
 gluster volume create str_vol  stripe 3 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

4、创建分布条带卷
 gluster volume create dir_str_vol stripe 4  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

5、创建分布复制卷
 gluster volume create dir_rep_vol replica 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

6、创建分布条带复制
 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/b3

7、创建条带复制卷
 gluster volume create str_rep_vol stripe 2 replica 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

8、创建分散卷(不常用)
 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倍),兼顾分布式和复制式的功能。

其他资料:https://www.cnblogs.com/xingxiz/p/10615888.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容