设为首页 收藏本站
查看: 2004|回复: 0

[经验分享] 分布式存储系统GlusterFS初体验

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-9 14:30:17 | 显示全部楼层 |阅读模式
  过去一直以为GlusterFS和GFS为同一个东西,真是惭愧。昨天一同事用到才发现它是个好东西!
  安装很简单,在所有存储服务器上执行:

  yum -y install glusterfs glusterfs-server
  chkconfig glusterd on
  service glusterd start

  将存储节点组合成一个集群,笔者以18节点为例。只需要在任一个节点执行:

  gluster peer probe agent21.kisops.org
gluster peer probe agent22.kisops.org      
gluster peer probe agent23.kisops.org      
gluster peer probe agent24.kisops.org      
gluster peer probe agent25.kisops.org      
gluster peer probe agent26.kisops.org      
gluster peer probe agent27.kisops.org      
gluster peer probe agent28.kisops.org      
gluster peer probe agent29.kisops.org      
gluster peer probe agent30.kisops.org      
gluster peer probe agent31.kisops.org      
gluster peer probe agent32.kisops.org      
gluster peer probe agent33.kisops.org      
gluster peer probe agent34.kisops.org      
gluster peer probe agent35.kisops.org      
gluster peer probe agent36.kisops.org      
gluster peer probe agent37.kisops.org      
gluster peer probe agent38.kisops.org # 加入新节点
  gluster peer status # 查看集群的节点信息

  以/data/glusterfs为共享目录,创建一个名为gfs的存储卷,数据复制2份:

  gluster volume create gfs replica 2 agent{21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38}.kisops.org:/data/glusterfs  # 创建卷
  gluster volume start gfs # 启动卷
  gluster volume info # 查看卷信息
  gluster volume set gfs auth.allow 10.20.* # 授权访问

DSC0000.png
  OK,此时服务端已配置完毕,过程简单明了!客户端就更简单了:

  yum -y install glusterfs glusterfs-fuse
  mount -t glusterfs agent38.kisops.org:/gfs /mnt/gfs # 挂载任一节点即可(推荐)
  mount.nfs agent38.kisops.org:/gfs /mnt/nfs -o nfsvers=3,proto=tcp # 使用NFS挂载,注意远端的rpcbind服务必须开启
  mount -t nfs -o rw,nfsvers=3,proto=tcp,port=38465,nolock,noacl,nocto,noatime,nodiratime,rsize=131072,wsize=524288,async,soft,bg,acregmin=3,acregmax=10,acdirmin=1,acdirmax=5 agent21.kisops.org:/gfs /mnt/nfs # 标准挂法
  # 若需要开机自动挂载,请更新/etc/fstab,追加:
  agent38.kisops.org:/gfs /mnt/gfs glusterfs defaults,_netdev 0 1
  

DSC0001.png
  环境配置完成就开始测试吧。
  一、检查文件正确性

  dd if=/dev/urandom of=/tmp/testfile bs=1M count=100 # 在挂载客户端生成测试文件
  cp –v /tmp/testfile /mnt/gfs/testfile # 文件拷贝到统一存储
  md5sum /tmp/testfile /mnt/gfs/testfile # 在查看客户端检查文件哈希
  md5sum /data/glusterfs/testfile # 存储集群的某2个节点上会有此文件,检查其哈希

  二、宕机测试。使用glusterfs-fuse挂载,即使目标服务器故障,也完全不影响使用。用NFS则要注意挂载选项,否则服务端故障容易导致文件系统halt住而影响服务!
  三、文件测试。

  # 将其中一个节点停止存储服务
  service glusterd stop
  service glusterfsd stop
  # 在挂载客户端删除测试文件
  rm -fv /mnt/nfs/testfile
  # 此时在服务端查看,服务被停止的节点上testfile并未被删除。此时启动服务:
  service glusterd start
  # 数秒后,testfile就被自动删除了。新增文件效果相同!

  四、目录测试。方法和文件测试类似,由于目录每个节点都会生成,所以测试更容易。
  
  以下为运维过程常用的指令:

  # 删除卷     
gluster volume stop gfs      
gluster volume delete gfs      
# 将机器移出集群      
gluster peer detach agent22.kisops.org      
# 卷扩容(由于副本数设置为2,至少要添加2(4、6、8..)台机器)      
gluster peer probe agent23.kisops.org # 加节点      
gluster peer probe agent24.kisops.org # 加节点      
gluster volume add-brick gfs agent23.kisops.org:/data/glusterfs agent24.kisops.org:/data/glusterfs # 合并卷      
# 收缩卷(收缩卷前gluster需要先移动数据到其他位置)      
gluster volume remove-brick gfs agent23.kisops.org:/data/glusterfs agent24.kisops.org:/data/glusterfs start # 开始迁移      
gluster volume remove-brick gfs agent23.kisops.org:/data/glusterfs agent24.kisops.org:/data/glusterfs status # 查看迁移状态      
gluster volume remove-brick gfs agent23.kisops.org:/data/glusterfs agent24.kisops.org:/data/glusterfs commit # 迁移完成后提交      
# 迁移卷      
gluster peer probe agent25.kisops.org # 将agent31.kisops.org的数据迁移到agent25.kisops.org,先将agent25.kisops.org加入集群      
gluster volume replace-brick gfs agent31.kisops.org:/data/glusterfs agent25.kisops.org:/data/glusterfs start # 开始迁移      
gluster volume replace-brick gfs agent31.kisops.org:/data/glusterfs agent25.kisops.org:/data/glusterfs status # 查看迁移状态      
gluster volume replace-brick gfs agent31.kisops.org:/data/glusterfs agent25.kisops.org:/data/glusterfs commit # 数据迁移完毕后提交      
gluster volume replace-brick gfs agent31.kisops.org:/data/glusterfs agent22.kisops.org:/data/glusterfs commit -force # 如果机器agent31.kisops.org出现故障已经不能运行,执行强制提交      
gluster volume heal gfs full # 同步整个卷

  本文介绍的是GlusterFS最基础的用法,感觉它的最大优点就是文件使用哈希散列,而不需要单独去维护MetaData以避开单点问题,而目录则是所有节点都一致的。节点信息会在变化过程中自动同步!不过增删节点,需要做Rebalance数据才会重新分布。另外,GlusterFS命令行还提供了很多强大功能,比如查看哪个文件读写最频繁:
DSC0002.png
  基本调优,示例:



gluster volume start file-backup
gluster volume quota file-backup enable
gluster volume quota file-backup limit-usage / 800TB
gluster volume set file-backup auth.allow 192.168.10.31,192.168.12.27
gluster volume set file-backup performance.cache-size 4GB
gluster volume set file-backup performance.flush-behind on
gluster volume info file-backup
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-111586-1-1.html 上篇帖子: GlusterFS常用translators(中继) 下篇帖子: GlusterFS常用命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表