# 对于基于Debian的系统
sudo apt-get install quota
# 对于基于RPM的系统
sudo yum install quota
编辑/etc/fstab
文件,在需要配额的分区选项中添加usrquota,grpquota
:
/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
mount -o remount /home
quotacheck -cugm /home
quotaon -avug
# 安装DRBD
sudo apt-get install drbd8-utils # Debian/Ubuntu
sudo yum install drbd kmod-drbd # CentOS/RHEL
# 配置DRBD资源
resource r0 {
protocol C;
startup {
wfc-timeout 15;
degr-wfc-timeout 60;
}
disk {
on-io-error detach;
}
on node1 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.1:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.2:7788;
meta-disk internal;
}
}
# 安装集群软件
sudo apt-get install pacemaker corosync # Debian/Ubuntu
sudo yum install pacemaker corosync # CentOS/RHEL
# 配置Corosync
auth {
authfile /etc/corosync/authkey
}
totem {
version: 2
cluster_name: mycluster
transport: udpu
interface {
ringnumber: 0
bindnetaddr: 192.168.1.0
mcastport: 5405
ttl: 1
}
}
sudo crm configure primitive drbd_r0 ocf:linbit:drbd \
params drbd_resource="r0" \
op monitor interval="15" role="Master" \
op monitor interval="30" role="Slave"
sudo crm configure ms ms_drbd_r0 drbd_r0 \
meta master-max="1" master-node-max="1" \
clone-max="2" clone-node-max="1" \
notify="true"
# 安装GFS2工具
sudo yum install gfs2-utils
# 创建GFS2文件系统
mkfs.gfs2 -p lock_dlm -j 2 -t mycluster:mygfs2 /dev/drbd0
# 挂载时启用配额
mount -o quota=on /dev/drbd0 /shared
# 初始化配额
quotacheck -cug /shared
quotaon -avug
edquota -u username
edquota -g groupname
repquota -a # 查看所有配额
quota -u username # 查看特定用户配额
#!/bin/bash
DATE=$(date +%Y%m%d)
REPORT="/var/log/quota/quota_report_$DATE.log"
repquota -a > $REPORT
# 每周一早上6点运行配额检查
0 6 * * 1 /usr/local/bin/quota_check.sh
# 创建自定义监控项
UserParameter=quota.usage[*],quota -u $1 | awk '/^\/dev/ {print $2}'
# 当用户使用超过90%配额时发送邮件
#!/bin/bash
THRESHOLD=90
for user in $(cut -d: -f1 /etc/passwd); do
usage=$(quota -u $user | awk '/^\/dev/ {print $3}')
limit=$(quota -u $user | awk '/^\/dev/ {print $2}')
if [ $usage -gt $(($limit*$THRESHOLD/100)) ]; then
mail -s "配额警告: $user" admin@example.com <<< "用户 $user 的磁盘使用量已超过 $THRESHOLD%"
fi
done
aquota.user
和aquota.group
文件)通过以上配置,您可以建立一个高可用的磁盘配额系统,确保在节点故障时配额设置和限制能够无缝转移。