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

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

注:以上如有错漏之处烦请指正,谢谢!










本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1832781,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
24天前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
57 4
|
28天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
61 8
|
3月前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
3年前的云栖大会,我们发布分布式云容器平台ACK One,随着3年的发展,很高兴看到ACK One在混合云,分布式云领域帮助到越来越多的客户,今天给大家汇报下ACK One 3年来的发展演进,以及如何帮助客户解决分布式领域多云多集群管理的挑战。
阿里云容器服务 ACK One 分布式云容器企业落地实践
|
4月前
|
存储 分布式计算 Hadoop
【揭秘Hadoop背后的秘密!】HDFS读写流程大曝光:从理论到实践,带你深入了解Hadoop分布式文件系统!
【8月更文挑战第24天】Hadoop分布式文件系统(HDFS)是Hadoop生态系统的关键组件,专为大规模数据集提供高效率存储及访问。本文深入解析HDFS数据读写流程并附带示例代码。HDFS采用NameNode和DataNode架构,前者负责元数据管理,后者承担数据块存储任务。文章通过Java示例演示了如何利用Hadoop API实现数据的写入与读取,有助于理解HDFS的工作原理及其在大数据处理中的应用价值。
126 1
|
4月前
|
机器学习/深度学习 人工智能 负载均衡
【AI大模型】分布式训练:深入探索与实践优化
在人工智能的浩瀚宇宙中,AI大模型以其惊人的性能和广泛的应用前景,正引领着技术创新的浪潮。然而,随着模型参数的指数级增长,传统的单机训练方式已难以满足需求。分布式训练作为应对这一挑战的关键技术,正逐渐成为AI研发中的标配。
214 5
|
4月前
|
存储 Kubernetes 监控
深入浅出分布式事务:理论与实践
在数字化时代的浪潮中,分布式系统如同星辰大海般浩瀚而深邃。本文将带你航行于这片星辰大海,探索分布式事务的奥秘。我们将从事务的基本概念出发,逐步深入到分布式事务的核心机制,最后通过一个实战案例,让你亲自体验分布式事务的魅力。让我们一起揭开分布式事务的神秘面纱,领略其背后的科学与艺术。
98 1
|
4月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
4月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
115 0
|
4月前
|
机器学习/深度学习 TensorFlow 数据处理
分布式训练在TensorFlow中的全面应用指南:掌握多机多卡配置与实践技巧,让大规模数据集训练变得轻而易举,大幅提升模型训练效率与性能
【8月更文挑战第31天】本文详细介绍了如何在Tensorflow中实现多机多卡的分布式训练,涵盖环境配置、模型定义、数据处理及训练执行等关键环节。通过具体示例代码,展示了使用`MultiWorkerMirroredStrategy`进行分布式训练的过程,帮助读者更好地应对大规模数据集与复杂模型带来的挑战,提升训练效率。
117 0