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
http://cmdschool.blog.51cto.com/2420395/1828450
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)范例
1
|
gluster volume
quota
gv0 limit-usage
/dir1
1GB
|
你可以在存储环境创建一个新的目录来配置磁盘限制或使用已存在的目录配置磁盘限制,以下演示对新建目录的限制:
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
quota
VolumeName list
|
2)范例
In GlusterH01:
1
|
gluster volume
quota
gv0 list
|
2.5.1 查看目录的磁盘限制信息
1)命令表达式
1
|
gluster volume
quota
VolumeName list DirectoryPath
|
2)范例
In GlusterH01:
1
|
gluster volume
quota
gv0 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.glusterfs 200G 82M 200G 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
|
注:以上如有错漏之处烦请指正,谢谢!