iyuytre 发表于 2016-8-2 09:52:08

GlusterFS磁盘配额的总结与实践

1 理论基础
1.1 概念
GlusterFS目录限额,允许你根据目录或卷配置限制磁盘空间的使用量
1.2 配额的分类
1.2.1 目录级别(Director level)
根据目录级别去限制空间使用量

1.2.2 卷级别(Volume level)
根据GlusterFS卷级别去限制空间使用量
1.3 关于路径的说明1)Gluster的路径概念如果你将卷挂载到某系统的/mnt目录
1
mount -t glusterfs GlusterH01.cmdschool.org:/gv0 /mnt




如上所示,被挂载的接口目录或被挂载目录视为Gluster磁盘的根,故Gluster根(“/”)是指:
1
GlusterH01.cmdschool.org:/gv0 #或挂载点(/mnt)




2)在多层次目录结构,严格的磁盘限制将被强制执行。2 实践

2.1 环境配置
请参阅下文配置分布式存储的一种并创建Gluster卷gv0

2.2 开启限额1)命令表达式
1
gluster volume quota VolumeName enable




2)范例In GlusterH01:
1
gluster volume quota gv0 enable




2.3 关闭限额
1)命令表达式
1
gluster volume quota VolumeName disable




2)范例In GlusterH01 :
1
gluster volume quota gv0 disable




2.4 设置或替换磁盘限制2.4.1 根据卷限制
1)命令表达式
1
gluster volume quota VolumeName limit-usage / size




2)范例In GlusterH01:
1
gluster volume quota gv0 limit-usage / 10GB




2.4.2 根据目录限制1)命令表达式
1
gluster volume quota VolumeName limit-usage DirectoryPath LimitSize




2)范例你可以在存储环境创建一个新的目录来配置磁盘限制或使用已存在的目录配置磁盘限制,以下演示对新建目录的限制:In GlusterH01:step1 挂载卷
1
mount -t glusterfs GlusterH01.cmdschool.org:/gv0 /mnt




step2 挂载目录下创建文件夹
1
mkdir /mnt/dir1




step3 卸载挂载
1
umount /mnt




step4 检查本机目录
1
ls /dir1




显示如下:
1
ls: cannot access /dir1: No such file or directory




step5 配置目录限制
1
gluster volume quota gv0 limit-usage /dir1 1GB




显示如下:
1
volume quota : success




注:故以上/dir1表示的是“GlusterH01.cmdschool.org:/gv0/dir1”而不是系统目录/dir1。2.4.3 辅助挂载点当第一次配置配额限制,通过以下命令可以查看Gluster卷的辅助挂载点:
1
ls -l /var/run/gluster/gv0/




2.5 查看磁盘限制信息2.5.1 查看全局磁盘限制信息1)命令表达式
1
gluster volume quotaVolumeName list




2)范例In GlusterH01:
1
gluster volume quotagv0 list




2.5.1 查看目录的磁盘限制信息1)命令表达式
1
gluster volume quotaVolumeName list DirectoryPath




2)范例In GlusterH01:
1
gluster volume quotagv0 list /dir1




2.6 配置df工具显示磁盘限制信息2.6.1 开启df工具显示限额1)命令表达式
1
gluster volume set VolumeName quota-deem-statfs on




2)范例In GlusterH01:
1
gluster volume set gv0 quota-deem-statfs on




测试:In GlusterH01 & GlusterGW:
1
df -hT




显示包含如下行:
1
localhost:gv0      fuse.glusterfs   10G   49M   10G   1% /var/run/gluster/gv0




2.6.2 关闭df工具显示限额1)命令表达式
1
gluster volume set VolumeName features.quota-deem-statfs off




2)范例In GlusterH01:
1
gluster volume set gv0 features.quota-deem-statfs off




测试:In GlusterH01 & GlusterGW:
1
df -hT




显示包含如下行:
1
localhost:gv0      fuse.glusterfs200G   82M200G   1% /var/run/gluster/gv0




2.7 更新内存缓存大小
2.7.1 设置超时

基于性能考量,配额缓存在客户端的目录容量里,你可以配置超时缓存目录容量的最大有效时间,这个时间从目录被保护的那一刻算起。如果多个客户端都往同一个目录写数据,可能有一种可能是,某些客户端会一直写入数据到目录直到超出配额限制。但是,这种新的文件大小直到缓存由于超时而变得过时,客户端上都没有反应过来。
在此期间,即使超出目录的磁盘容量限制,客户端上依然允许写入数据,因为缓存大小和真实的大小是不同步的。当出现超时,服务器会更新缓存大小,然后同步,才不会允许进一步的数据写入。1)命令表达式
1
gluster volume set VolumeName features.quota-timeout time




注:时间为秒2)范例In GlusterH01:
1
gluster volume set gv0 features.quota-timeout 5




2.7.2 设置提醒时间
提醒时间是一个当你的使用信息达到软限制写入日志后的提醒频率
1)配置表达式

1
gluster volume quota VolumeName alert-time time




注:默认为一周
2)范例
In GlusterH01:

1
gluster volume quota gv0 alert-time 1d




2.8 删除磁盘限制
1)配置表达式
1
gluster volume quota VolumeName remove DirectoryPath




2)范例In GlusterH01:
1
gluster volume quota gv0 remove /dir1




注:以上如有错漏之处烦请指正,谢谢!
----------------------------------------------------------
参阅文献:
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Directory%20Quota/
鸣谢:娇总的部分翻译

页: [1]
查看完整版本: GlusterFS磁盘配额的总结与实践