Chinaunix首页 | 论坛 | 博客

x86

  • 博客访问: 61465
  • 博文数量: 14
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-28 14:12
个人简介

虚拟化和分布式文件系统交流群239539006

文章分类

全部博文(14)

文章存档

2015年(14)

我的朋友

分类: 服务器与存储

2015-04-23 17:38:43

当你通过添加brick和删除brick进行扩容和收缩卷后,需要在服务器之间重新平衡数据,
一般平衡数据有如下两种场景
1、Fix Layout:重新定位layout,原来的layout不变,(新)数据写入新的节点
2、Fix Layout and Migrate Data:重新定位layout的修改,并且迁移已经存在的数据
Rebalancing Volume to Fix Layout Changes
对于一个给定的目录来说,布局(layout)结构是静态的,所以定位布局是必要的。
如果将一个新的brick加入到一个已经存在的卷,在现有目录中创建新的文件,该文件将会仍旧保存到原来的brick中。
使用#gluster volume rebalance fix-layout命令将会重新定位布局信息,以便文件可以加入新的节点,当使用了该命令,所有已缓存的文件信息将会进行重新验证。
GlusterFS3.6分配文件到bricks将会考虑到bricks的大小,例如一个20T的brick相对于其他10T的brick来说将会分配到两倍多的文件。在3.6之前的版本,所有birck无论大小是否相同,文件是被平均分配的。
fix-layout rebalance 仅仅只重新定位布局的改变,不进行文件的迁移,而#gluster volume rebalance start 命令相会在服务器之间平衡数据
rebalance命令只要在任何一台服务器上执行即可:
# gluster volume rebalance test-volume fix-layout start
Starting rebalance on volume test-volume has been successful
Rebalancing Volume to Fix Layout and Migrate Data
添加和收缩卷后(使用了add-brick和remove-brick)你必须在服务器之间重新平衡数据
在任何一台服务上执行
# gluster volume rebalance test-volume start
Starting rebalancing on volume test-volume has been successful
Rebalance选项
显示rebalance卷的状态,例如:
gluster volume rebalance test-volume status
                               Node                      Rebalanced-files  size  scanned       status
                          ---------                         ----------------    ----   -------         -----------
617c923e-6450-4065-8e33-865e28d9428f               416  1463      312        in progress
平衡的时间取决于卷中文件和大小,如果继续检查rebalance的状态,验证或扫描的文件的数量将会不断增加。
# gluster volume rebalance test-volume status
                               Node                     Rebalanced-files  size  scanned       status
                          ---------                       ----------------     ----   ------          -----------
617c923e-6450-4065-8e33-865e28d9428f               498  1783      378       in progress
停止rebalance操作
# gluster volume stop test-volume
Stopping volume will make its data inaccessible. Do you want to continue? (y/n)
按“Y”停止操作
在复制时触发Self-Heal
在复制模块,以前在brick离线后重新在线时必须手动触发自我治疗,把所有副本进行同步,现在积极的self-heal守护进程将在后台运行,并每隔10分钟对需要修复的文件进行诊断并自动修复。
你可以查看需要修复的文件列表,可以查看自我修复目前/以前的文件列表,脑裂状态的文件列表,可以手动触发整个卷或者单个文件的自我修复
触发需要修复的文件自我修复
# gluster volume heal test-volume
Heal operation on volume test-volume has been successful
触发卷上所有文件的自我修复
# gluster volume heal test-volume full
Heal operation on volume test-volume has been successful
查看需要修复的文件列表
# gluster volume heal test-volume info
Brick :/gfs/test-volume_0
Number of entries: 0

Brick :/gfs/test-volume_1
Number of entries: 101
/95.txt
/32.txt
/66.txt
/35.txt
/18.txt
/26.txt
/47.txt
/55.txt
/85.txt
...
查看被修复的文件列表
# gluster volume heal test-volume info healed
查看自我修复失败的信息
# gluster volume heal test-volume info failed
查看脑裂状态的文件列表
# gluster volume heal test-volume info split-brain
非均匀文件队列Non Uniform File Allocation
NUFA被设计用以在HPC(高性能计算机)使用本地磁盘时提高新能。它可用于分发和副本翻译;在后一种情况下,如果空间允许它可确保一个拷贝来自本地。
当一个服务器上的客户端创建的文件,这些文件根据文件名被分配给卷中的brick。这种分配可能不是理想的,因为对一个非本地的brick或者出口目录(exportdirectory)进行网络流量进行读/写操作有更高的延迟或者是不必要的。NUFA确保了文件在服务器中的本地出口目录中创建,减少访问该文件的等待时间和带宽,对运行于挂载点在于存储服务器上的应用也有好处。
如果本地的brick空间已经用完或者达到最小保留限制容量,NUFA将会分发文件到相同卷中的其他brick
在卷中添加任何文件之前,NUFA就不许被启动
# gluster volume set VOLNAME cluster.nufa enable on
重要信息
UNFA的必要条件
卷在每个服务器上只有一个brick
不支持NFS和SMB客户端
挂载NUFA的客户端必须有可靠的存储


阅读(4412) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~