Thiết lập hạn mức sử dụng ổ đĩa – Disk Quota – LINUX

bởi | LPI

Home » LPI » Thiết lập hạn mức sử dụng ổ đĩa – Disk Quota – LINUX

Giới hạn mức sử dụng ổ đĩa hay thiết lập Disk Quota cho user local và group local

– Install Quota tools: yum -y install quota
– Thêm user 1: adduser quotauser
– Đơn vị dung lượng đĩa: 1 GB= 1 048 576 Kilobyte [kB], 1 Megabyte [MB] = 1024 Kilobyte [kB]

Đặt hạn ngạch trên /home được định dạng XFS

Enable Quota để thêm các mount options

+ Xem đường dẫn ổ đĩa của /home

[root@linux ~]# cat /etc/fstab
UUID=fe6ce026-dcd3-4b53-aad3-20378b942b0e /home xfs defaults 0 0

=> Do ổ cứng được chia theo LVM định dạng xfs nên đường dẫn ổ đĩa của /home là UUID=fe6ce026-dcd3-4b53-aad3-20378b942b0e /home

+ Sửa file /etc/fstab

[root@linux ~]# vi /etc/fstab

# thêm options uquota,gquota

UUID=fe6ce026-dcd3-4b53-aad3-20378b942b0e /home xfs defaults,uquota,gquota 0 0

+ unmount và remount:

[root@linux ~]# umount /home
[root@linux ~]# mount -o uquota,gquota UUID=fe6ce026-dcd3-4b53-aad3-20378b942b0e /home

Đặt hạn ngạch người dùng. Ví dụ: Áp dụng hạn ngạch cho người dùng “quotauser”.

+ chạy quota tool với mode chuyên gia

[root@linux ~]# xfs_quota -x /home

+ hiển thị trạng thái hiện tại

xfs_quota> state
User quota state on /home (/dev/sda3)
Accounting: ON
Enforcement: ON
Inode: #71 (2 blocks, 2 extents)
Group quota state on /home (/dev/sda3)
Accounting: ON
Enforcement: ON
Inode: #72 (2 blocks, 2 extents)
Project quota state on /home (/dev/sda3)
Accounting: OFF
Enforcement: OFF
Inode: #72 (2 blocks, 2 extents)
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]

+ hiển thị báo cáo sử dụng

xfs_quota> report -h
User quota on /home (/dev/sda3)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 0 0 0 00 [------]
quotauser 12K 0 0 00 [------]

Group quota on /home (/dev/sda3)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 0 0 0 00 [------]
quotauser 12K 0 0 00 [------]

+ đặt Giới hạn mềm (Soft Limit) 8M, Giới hạn cứng (Hard Limit) 9M (mặc đinh là kilo bytes) cho user “quotauser”

xfs_quota> limit bsoft=8m bhard=9m quotauser

+ hiển thị báo cáo

xfs_quota> report -h -u
User quota on /home (/dev/sda3)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 0 0 0 00 [------]
quotauser 12K 8M 9M 00 [------]

set group quota hay đặt giới hạn ổ đĩa /home cho nhóm người dùng quotauser

– Có thể set ở chế độ bình thường. đặt Soft Limit 9G, Hard Limit 10G

[root@linux ~]# xfs_quota -x -c 'limit -g bsoft=9g bhard=10g quotauser' /home

– Hiển thị báo cáo:

[root@linux ~]# xfs_quota -x -c 'report -h -g' /home
Group quota on /home (/dev/sda3)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 0 0 0 00 [------]
quotauser 12K 9G 10G 00 [------]

Kiểm tra chung và thay đổi thời gian gia hạn

[root@linux ~]# ls -lah /home
-rw-------   1 root      root      7.0K Jun 24 23:06 aquota.group
-rw-------   1 root      root      7.0K Jun 24 22:55 aquota.user

=> sẽ thấy file aquota.user và aquota.group mới tạo

[root@centos7 ~]# repquota -aug
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 0 0 0 3 0 0
quotauser -- 12 8192 9216 4 0 0

*** Report for group quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 0 0 0 3 0 0
quotauser -- 12 9437184 10485760 4 0 0

– thử tạo file vượt quá dung lượng bằng user userquota

[quotauser@centos7 ~]$ seq 1000000 > 1trieu.txt
[quotauser@centos7 ~]$ seq 1000000 > 2trieu.txt
seq: write error: Disk quota exceeded
[quotauser@centos7 ~]$ ls -lh
total 9.0M
-rw-rw-r-- 1 quotauser quotauser 6.6M Jun 24 21:44 1trieu.txt
-rw-rw-r-- 1 quotauser quotauser 2.5M Jun 24 21:44 2trieu.txt

=> quotauser đã tạo file vượt quá hạn cứng

– thay đổi thời gian gia hạn. Sau thời gian này user bị giới hạn quota, bị vượt quá giới hạn soft thì phải xóa bớt file hoặc hệ điều hành sẽ tự xóa những file mới tạo của user để đảm bảo bằng giới hạn soft. Mặc định thời gian này là 7days, muốn thay đổi thì phải sửa “file edquota -t” sử phần “Block grace period”

[root@vmlinux ~]# edquota -t
Filesystem Block grace period Inode grace period
/dev/sda3 8days 7days

Đặt hạn ngạch trên /home được định dạng EXT4

Enable Quota để thêm các mount options

+ Xem đường dẫn ổ đĩa của /home

[root@linux ~]# cat /etc/fstab
/dev/mapper/centos-home /home ext4 defaults 1 2

=> Do ổ cứng được chia theo LVM định dạng đường dẫn ổ đĩa của /home là /dev/mapper/centos-home /home

+ Sửa file /etc/fstab

[root@linux ~]# vi /etc/fstab

# thêm options usrquota,grpquota

/dev/mapper/centos-home /home ext4 defaults,usrquota,grpquota 1 2

+ unmount và remount:

[root@linux ~]# umount /home
[root@linux ~]# mount -o usrquota,grpquota /dev/mapper/centos-home /home

Đặt hạn ngạch người dùng. Ví dụ: Áp dụng hạn ngạch cho người dùng “quotauser”.

– Tạo quota config

[root@linux ~]# quotacheck -um /home

– enable quota

[root@linux ~]# quotaon -uv /home
/dev/mapper/centos-home [/home]: user quotas turned on

– show status

[root@linux ~]# quotaon -ap
group quota on /home (/dev/mapper/centos-home) is off
user quota on /home (/dev/mapper/centos-home) is on

– set quota cho user “quotauser”

[root@linux ~]# edquota -u quotauser

+ set Soft Limit 8M, Hard Limit 9M (đơn vị là kilo bytes)

Filesystem blocks soft hard inodes soft hard
/dev/mapper/centos-home 16 8192 9216 4 0 0

– show status

[root@linux ~]# repquota -au
*** Report for user quotas on device /dev/mapper/centos-home
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 2 0 0
quotauser -- 16 8192 9216 4 0 0

set group quota cho group user là “userquota”

– tạo quota config

[root@linux ~]# quotacheck -gm /home

– enable quota
[root@linux ~]# quotaon -gv /home
/dev/mapper/centos-home [/home]: group quotas turned on

– show status

[root@linux ~]# quotaon -ap
group quota on /home (/dev/mapper/centos-home) is on
user quota on /home (/dev/mapper/centos-home) is on

– set quota cho group “quotauser”

[root@linux ~]# edquota -g quotauser

+ set Soft Limit 4G, Hard Limit 5G (đơn vị tính là kilo bytes)

Filesystem blocks soft hard inodes soft hard
/dev/mapper/centos-home 16 4096000 5120000 4 0 0

– show status

[root@linux ~]# repquota -ag
*** Report for group quotas on device /dev/mapper/centos-home
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 2 0 0
quotauser -- 16 4096000 5120000 4 0 0

Kiểm tra chung và thay đổi thời gian gia hạn

Giống như với phần Set Quota on /home với định dạng ext4.