在Linux系统中,磁盘配额是限制用户或用户组磁盘使用量的有效手段,在多用户共享存储、云服务器等场景下应用广泛。而高可用配置可以避免单节点故障导致配额服务失效,确保磁盘使用限制持续生效。本文将基于CentOS系统,结合Pacemaker高可用集群和XFS文件系统的配额功能,讲解完整的配置流程。

环境准备
本次配置需要两台配置相同的Linux服务器,假设主机名分别为node1和node2,系统版本为CentOS 7,使用XFS文件系统的共享存储设备/dev/sdb,需要提前完成以下准备工作:
- 两台节点配置好主机名解析,确保可以通过主机名互相访问
- 关闭防火墙和SELinux,或者配置对应的放行规则
- 配置好共享存储,确保两个节点都能正常识别
/dev/sdb设备 - 安装Pacemaker、Corosync高可用集群组件和quota相关工具
安装依赖组件的命令如下:
# 两台节点都执行 yum install -y pacemaker corosync pcs quota xfsprogs
基础磁盘配额配置
首先需要在单个节点上完成XFS文件系统的磁盘配额基础配置,再将其同步到高可用集群中。
格式化并挂载支持配额的XFS文件系统
在node1节点执行以下操作,对共享存储设备进行格式化并挂载:
# 格式化/dev/sdb为XFS文件系统,开启用户配额和组配额 mkfs.xfs -i usrquota,grpquota /dev/sdb # 创建挂载目录 mkdir -p /data # 挂载设备,指定配额相关挂载选项 mount -o usrquota,grpquota /dev/sdb /data # 查看挂载是否生效 mount | grep /data
如果需要开机自动挂载,需要修改/etc/fstab文件,添加如下内容:
/dev/sdb /data xfs defaults,usrquota,grpquota 0 0
配置用户磁盘配额
使用xfs_quota工具为用户配置磁盘配额,以下示例为用户testuser设置软限制10G、硬限制12G,文件数量软限制1000个、硬限制1200个:
# 创建测试用户 useradd testuser # 初始化配额数据库 xfs_quota -x -c "report -ug" /data # 设置用户配额 xfs_quota -x -c "limit -u bsoft=10g bhard=12g isoft=1000 ihard=1200 testuser" /data # 查看配额配置是否生效 xfs_quota -x -c "report -u" /data
高可用集群配置
接下来配置Pacemaker+Corosync高可用集群,确保配额服务在节点故障时可以自动切换。
集群初始化
在node1节点执行以下命令初始化集群:
# 启动pcsd服务并设置开机自启 systemctl start pcsd systemctl enable pcsd # 设置hacluster用户密码,两个节点密码需要一致 passwd hacluster # 认证集群节点 pcs cluster auth node1 node2 -u hacluster -p 设置的密码 # 创建集群,名称为quota_cluster pcs cluster setup --name quota_cluster node1 node2 # 启动集群 pcs cluster start --all pcs cluster enable --all
配置集群资源
需要配置三个核心资源:存储挂载资源、配额服务资源、虚拟IP资源,同时配置资源约束确保资源运行在同一节点。
# 配置存储挂载资源,设备为/dev/sdb,挂载点为/data pcs resource create fs_quota ocf:heartbeat:Filesystem device="/dev/sdb" directory="/data" fstype="xfs" options="usrquota,grpquota" --group quota_group # 配置配额服务资源,确保xfs_quota服务正常运行 pcs resource create quota_service ocf:heartbeat:quota --group quota_group # 配置虚拟IP资源,用户通过虚拟IP访问存储服务 pcs resource create vip_quota ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=24 --group quota_group # 配置资源粘性,避免资源频繁切换 pcs resource meta quota_group resource-stickiness=100
故障切换验证
完成配置后,可以验证高可用功能是否生效:
- 查看当前集群资源运行状态,确认所有资源都运行在node1节点
- 模拟node1节点故障,执行
pcs cluster stop node1停止node1的集群服务 - 查看资源是否自动切换到node2节点,检查
/data目录是否正常挂载,配额配置是否生效 - 恢复node1节点后,资源不会自动回切,除非node2节点出现故障
验证配额是否生效的测试命令如下:
# 切换到testuser用户 su - testuser # 尝试写入超过12G的文件,会被限制 dd if=/dev/zero of=/data/testfile bs=1G count=13
注意事项
- 共享存储需要支持多节点同时识别,建议使用iSCSI、FC等共享存储方案
- 配额配置数据保存在XFS文件系统的元数据中,共享存储下配额配置会自动同步到所有节点
- 生产环境中建议开启SELinux的配额相关策略,而不是直接关闭SELinux
- 定期使用
xfs_quota -x -c "report -ug" /data命令检查配额使用情况,避免用户磁盘使用量超过限制