如何实现GlusterFS文件锁功能?

GlusterFS

1 理论部分

1.1 锁的作用

分布式存储的锁类似于MySQL的行锁和表锁,可防止多个客户端同时编辑对数据造成损坏,故本章解决数据写入冲突问题。

1.2 语法格式

gluster volume set  locks.mandatory-locking 

off – 为指定的卷禁用强制锁
file – 启用Linux内核风格的强制锁语义和位模式的帮助(没有充分测试)
forced – 为卷检查字节范围锁定每个数据编辑操作
optimal – 混合模式下在POSIX客户端可以与咨询锁共存;在类似于SMB的其他客户端,语义将仍然尊重取得强制锁。
注意:以上命令适用于含gluster-3.8及以上版本

2 实践部分

2.1 环境配置

扩展存储需要使用含Gluster 3.8及以上版本,
配置参阅:http://www.cmdschool.org/archives/92

2.2 开启强制锁

gluster volume set gv0 locks.mandatory-locking optimal

2.3 检查

gluster volume info

显示如下:

Volume Name: gv0
Type: Distributed-Replicate
Volume ID: 96b06e32-deb5-487a-aa00-afd6624dcb97
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: GlusterH01.sae.com.hk:/data/brick1/gv0
Brick2: GlusterH02.sae.com.hk:/data/brick1/gv0
Brick3: GlusterH03.sae.com.hk:/data/brick1/gv0
Brick4: GlusterH04.sae.com.hk:/data/brick1/gv0
Options Reconfigured:
locks.mandatory-locking: optimal
performance.readdir-ahead: on
features.quota: on
features.inode-quota: on
features.quota-deem-statfs: on
cluster.entry-self-heal: on

注意:第14行表示强制锁已经开启并且模式是“optimal”
===========================================================
参阅文档
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Mandatory%20Locks/
https://github.com/gluster/glusterfs-specs/blob/master/done/GlusterFS%203.8/Mandatory%20Locks.md

没有评论

发表回复

GlusterFS
如何在RHEL8 部署Gluster客户端?

1 基础知识 1.1 Gluster卷的客户端类型 1.1.1 Gluster Native Cli …

GlusterFS
如何在RHEL8 部署Gluster服务端?

1 基础知识 1.1 Gluster的简介 – Gluster是一个可扩展的分布式文件系 …

GlusterFS
如何在RHEL8 编译安装Gluster?

1 前言 笔者之前使用yum部署过Gluster的服务,但最近笔者发现官方已经不再提供旧版本的rpm …