CentOS6.6 Glusterfs详解
来源:互联网 发布:linux查询当前时间 编辑:程序博客网 时间:2024/06/14 19:24
CentOS6.6 安装Glusterfs,从原理到实践。
五、一些设计与讨论
6、主要模块介绍
Gluterfs总体采用堆栈式架构,模仿的函数调用栈,各个功能模块耦合度低,且非常多模块可自由结合形成不同的功能。
以下主要介绍一下Glusterfs的主要模块:
1 DHT模块
该xlator主要实现了文件的哈希分布,将0到2的32次方依据子卷的个数平均划分若干个区间,文件到达DHT时,会依据文件名称计算所得的哈希值所在的区间,来决定该文件落在哪个子卷上。当中各个子卷的哈希区间记录在父文件夹的扩展属性中。此外,该模块还实现了数据迁移和扩容功能。
gluster volume create mamm-volume node1:/media node2:/media node3:/media ...
2 AFR模块
该xlator主要实现了文件级别的镜像冗余功能,类似raid1功能,只是不是块级别的。数据到达AFR时,会将ChangeLog加1,然后写数据,待所有子卷所有写成功后,再将ChangeLog减1。若须要修复时,依据ChangeLog推断哪个是source卷。实际的修复流程很复杂,包含meta,entry等。冗余卷没有主从之分,不论什么一个子卷都能够保证上层的读写请求,可在不影响上层应用的情况下运行修复功能。
gluster volume create mamm-volume repl 2 node1:/media node2:/media
3 Stripe模块
该xlator主要实现了文件的写条带,即文件到达Stripe时,会将文件按固定大小的条带写入各个子卷,类似raid0功能。在高版本号中,有两种模式:写空洞文件模式和聚合模式。该模块原理和实现都较DHT和AFR模块简单,且代码量较少。
gluster volume create mamm-volume stripe 2 node1:/media node2:/media
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7、Glusterfs安装相关软件包下载地址:http://pan.baidu.com/s/1kVCBmxp
1.安装相关依赖包
yum install -y libibverbs librdmacm xfsprogsnfs-utils rpcbind libaio liblvm2app lvm2-devel
2.安装服务器端软件包
glusterfs-3.4.6-1.el6.x86_64.rpm
glusterfs-api-3.4.6-1.el6.x86_64.rpm
glusterfs-cli-3.4.6-1.el6.x86_64.rpm
glusterfs-fuse-3.4.6-1.el6.x86_64.rpm
glusterfs-libs-3.4.6-1.el6.x86_64.rpm
glusterfs-server-3.4.6-1.el6.x86_64.rpm
3.安装客户端软件包
glusterfs-3.4.6-1.el6.x86_64.rpm
glusterfs-fuse-3.4.6-1.el6.x86_64.rpm
glusterfs-libs-3.4.6-1.el6.x86_64.rpm
强制安装:
rpm -ivh * --force --nodeps
4.磁盘配置
磁盘分区:
1)EXT4格式化工具目前最大支持16TB
2)使用parted进行磁盘分区
3)分区格式化
4)每个服务器上面都需要至少添加一块硬盘 我们这边是用的1块1.5T硬盘 现在每台都格式化
# mkfs.ext4 -L brick01 /dev/sdb
#mkdir share_disk
4)自动挂载分区
# vim /etc/fstab
LABEL=brick01 /share_disk ext4 defaults 0 0
#mount -a
5)安装成功启动GlusterFS
# service glusterd start
Starting glusterd: [ OK ]
# chkconfig glusterd on
5.组建集群扩展
在GlusterFS-01服务器上面操作 选择192.168.56.35 作为当前集群节点
添加另外一台台服务器
# gluster peer probe 192.168.56.35
peer probe: success
gluster peer status
6.创建卷
#gluster
>volume create qianzhi_disk replica 2 192.168.56.34:/share_disk/qianzhi_disk 192.168.56.35:/share_disk/qianzhi_disk
7.根据卷限制
gluster> volume start
gluster> volume quota qianzhi_disk enable
gluster> volume quota qianzhi_disk limit-usage /qianzhi_disk 100GB
8.访问限制
gluster volume setqianzhi_disk allth.allow 192.168.56.30
9.查看卷信息
gluster> volume info
10.客户端挂载
# mkdir /data1
# mount -t glusterfs 192.168.56.34:/qianzhi_disk(卷名称) /data1
---------------------------------------------------------------------------------------------------------------------------------------
还有个小问题,如何一个客户端同时挂在两个服务端,当第一个服务端故障,可以自动切换?
手动配置主备挂载
mount -t glusterfs -o backupvolfile-server=192.168.56.35,fetch-attempts=3 192.168.56.34:/yingyong_disk /test
自动配置主备挂载
vi /etc/fstab
192.168.56.34:/yingyong_disk /MemberCardDir glusterfs defaults,_netdev,backupvolfile-server=192.168.56.35,fetch-attempts=3 0 0
这篇命令解释的不错,可以参看下
https://fossies.org/linux/glusterfs/doc/mount.glusterfs.8
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上述这种方式,当客户端挂载时,看到的全部是一块磁盘的大小,虽然有限额,可是看不到使用的真实大小;不如说你的一块整盘是1T ,你给用某客户机分配100G,客户端挂载完毕后,看到的大小还是1T,尽管使用的时候只能用到100G。
换种方式实现,使客户端看到的就是真实使用大小:
服务端配置:
fdisk /dev/sdb
然后创建LVM,针对不同的客户端,分配不同的文件大小,这里的LVM相当于磁盘限额。
pvcreate /dev/sdb5
vgcreate share_disk /dev/sdb5
lvcreate -L 100G -n qianzhi_disk share_disk
lvcreate -L 300G -n yingyong_disk share_disk
mkfs.ext4 /dev/share_disk/qianzhi_disk
mkfs.ext4 /dev/share_disk/yingyong_disk
vi /etc/fstab
/dev/mapper/share_disk-qianzhi_disk /qianzhi_disk ext4 defaults 0 0
/dev/mapper/share_disk-yingyong_disk /yingyong_disk ext4 defaults 0 0
mount -a
volume create yingyong_disk replica 2 192.168.56.34:/yingyong_disk/yy_disk 192.168.56.35:/yingyong_disk/yy_disk
volume start yingyong_disk
接下来再有不同客户端挂载,就在服务器上创建逻辑卷,然后格式化,然后服务器把盘挂载,最后创建VOL。
当然原磁盘需要扩展,可以使用逻辑卷扩展方式实现。
附
问题解决
如果创建了一个卷,删掉了,再次创建,会报错
volume create: nfsp: failed: /glusterfs/nfsp or a prefix of it is already part of a volume
因为创建volume时,在brick对应的存储目录上,增加了"trusted.glusterfs.volume-id"和"trusted.gfid"两个扩展属性,在删除volume时并未移除这两个属性,再次创建时,对brick的存储目录进行校验,发现已经有了扩展属性,因此会有brick已经是volume的一部分的提示。
在改卷涉及的所有节点执行以下操作
# setfattr -x trusted.glusterfs.volume-id /glusterfs/nfsp
# setfattr -x trusted.gfid /glusterfs/nfsp
# rm -rf /glusterfs/nfsp/.glusterfs
# /etc/init.d/glusterd restart
文章最后提几款测试工具:atop, iperf, iozone, fio, 链接如下
atop http://blog.csdn.net/miltonzhong/article/details/9167419
iperf http://man.linuxde.net/iperf
iozone http://blog.sina.com.cn/s/blog_667725170100ttet.html
fio http://michaelkang.blog.51cto.com/1553154/1640479/
【完】
- CentOS6.6 Glusterfs详解
- centos6.3部署glusterfs-3.4
- centOS6.3下安装mysql5.6详解
- Centos6.6下安装配置Redmine详解
- CentOS6.6下的Nagios安装配置详解(一)
- CentOS6.6下的Nagios安装配置详解(二)
- CentOS6.6下的Nagio安装配置详解(三)
- Centos6.6搭建nginx服务及配置文件详解
- 虚拟机VMware下CentOS6.6安装教程图文详解
- Centos6.6下Hadoop2.2.0版本安装部署详解
- 硬盘安装CentOS6.2详解
- Centos6.5 iptables配置详解
- CentOS6.5系统安装详解
- CentOS6.5安装MongoDB详解
- GlusterFS分析
- GlusterFs文件系统
- Glusterfs介绍
- GlusterFS基础知识
- 安全圈info
- 用JavaIO,正则表达式,HashMap统计一个文本单词数量
- JavaIO统计一个文件夹,文件,文件夹,所有字节的大小
- Eclipse-WTP什么意思?
- Socket/TCP粘包、多包和少包, 断包
- CentOS6.6 Glusterfs详解
- 过滤器显示一个路径下特定的文件
- Spring Cloud Eureka
- 读取文件的目录结构和统计文件的代码信息
- vue.js中修饰符.stop的用法。
- 进程和线程关系及区别
- cartographer对应论文的琢磨(2)
- crontab定时hadoop任务没有执行
- 1 欢迎来到 Racket