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,如需转载请自行联系原作者
目录
相关文章
|
9月前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
1713 98
|
9月前
|
关系型数据库 Apache 微服务
《聊聊分布式》分布式系统基石:深入理解CAP理论及其工程实践
CAP理论指出分布式系统中一致性、可用性、分区容错性三者不可兼得,必须根据业务需求进行权衡。实际应用中,不同场景选择不同策略:金融系统重一致(CP),社交应用重可用(AP),内网系统可选CA。现代架构更趋向动态调整与混合策略,灵活应对复杂需求。
|
11月前
|
数据采集 消息中间件 监控
单机与分布式:社交媒体热点采集的实践经验
在舆情监控与数据分析中,单机脚本适合小规模采集如微博热榜,而小红书等大规模、高时效性需求则需分布式架构。通过Redis队列、代理IP与多节点协作,可提升采集效率与稳定性,适应数据规模与变化速度。架构选择应根据实际需求,兼顾扩展性与维护成本。
409 2
|
人工智能 安全 应用服务中间件
阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
本文分享了阿里巴巴内部将大规模HSF服务快速转换为MCP Server的实践经验,通过Higress网关实现MCP协议卸载,无需修改代码即可接入MCP生态。文章分析了MCP生态面临的挑战,如协议快速迭代和SDK不稳定性,并详细介绍了操作步骤及组件功能。强调MCP虽非终极解决方案,但作为AI业务工程化的起点具有重要意义。最后总结指出,MCP只是AI原生应用发展的第一步,未来还有更多可能性值得探索。
1713 49
|
10月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
4084 57
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
1160 35
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
1476 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
人工智能 运维 监控
领先AI企业经验谈:探究AI分布式推理网络架构实践
当前,AI行业正处于快速发展的关键时期。继DeepSeek大放异彩之后,又一款备受瞩目的AI智能体产品Manus横空出世。Manus具备独立思考、规划和执行复杂任务的能力,其多智能体架构能够自主调用工具。在GAIA基准测试中,Manus的性能超越了OpenAI同层次的大模型,展现出卓越的技术实力。

热门文章

最新文章