Bài viết này giới thiệu các bạn về cách cấu hình disk quota trong hệ điều hành Linux.
1. Giới thiệu disk quota
Disk quota là công cụ để phục vụ cho việc quản lý tài nguyên đĩa cứng. Disk quota được dùng để hiện thị việc sử dụng và giới hạn đĩa cứng đối với người dùng.
Đối với disk quota cho tên người dùng hoặc nhóm sử dụng ba yếu tố quan trọng sau đây:
Giới hạn cứng(Hard Limit) dung lượng đĩa cứng tối đa mà người dùng có thể sử dụng.
Ví dụ: Nếu chúng ta được chỉ định 5GB là giới hạn cứng, thì chúng ta sẽ không tạo được tệp mới có dung lượng lớn hơn 5GB.
Giới hạn mềm(Soft Limit) dung lượng đĩa cứng tối đa mà người dùng có thể sử dụng. Nhưng không giống như giới hạn cứng giới hạn mềm cho phép người dùng có thể sử dụng vượt dung lượng cho phép trong một khoảng thời gian cụ thể. Thời gian này được xác định trước và gọi là thời gian gia hạn(grace period). Khi người dùng vượt quá dung lượng cho phép, hệ thống sẽ gửi cảnh báo trước.
Ví dụ: Nếu chúng ta được chỉ định dung lượng 2GB là giới hạn mềm, khi chúng ta sử dụng vượt giới hạn mềm thì sẽ nhận được thông báo cảnh báo đĩa vượt quá giới hạn. Nhưng, chúng ta vẫn có thể tạo các tệp mới cho đến khi đạt đến giới hạn cứng trong một khoản grace period.
Grace Period là thời gian cho phép người dùng vượt quá dung lượng đĩa cứng được cấp phép trong giới hạn mềm
Ví dụ: Nếu chỉ định 15 ngày là Grace Period, sau khi người dùng đạt đến giới hạn cứng, họ sẽ được phép thêm 15 ngày để tạo tệp mới.
Lưu ý: chỉ chạy quotacheck giờ thấp điểm vì nó có khả năng ảnh hưởng hiệu năng hệ thống.
2. Thiết lập disk quota
2.1. Kích hoạt kiểm tra disk quota trên filesystem
2.1.1. Kích hoạt kiểm tra disk quota trên filesystem chuẩn ext4
Để có thể kích hoạt disk quota trên file system chúng ta thực hiện các bước sau:
Tạo 1 thư mục tên /data:
mkdir /data/
Thực hiện mount
thư mục:
mount /dev/sdb1 /data/
Mở và sửa đổi tập tin /etc/fstab
bằng việc thêm các từ khóa usrquota
(cho người dùng) và grpquota
(cho nhóm).
Ví dụ: Bật kiểm tra quota cả người dùng và nhóm trên filesystem /data
UUID=XAmRdQ-f5GC-57ZW-XMb3-QzDS-43rE-4PZPbx /data ext4 defaults,usrquota,grpquota 1 1
Sau đó thực hiện mount
lại phân vùng /data
mount -o remount /data
2.1.2. Kích hoạt kiểm tra disk quota trên filesystem chuẩn xfs
Để bật quota cho người dùng trên hệ thống tệp XFS chúng ta chạy lệnh:
mount –o quota /dev/sdb1 /xfs
Để bật quota cho các nhóm trên hệ thống tệp XFS chúng ta chạy lệnh:
mount –o gquota /dev/sdb1 /xfs
Chúng ta có thể gắn kết quota trong tệp /etc/fstab
.
Ví dụ: Các mục trong tệp /etc/fstab
bật quota cho người dùng, nhóm và dự án, tương ứng trên hệ thống tệp XFS. Những ví dụ này cũng gắn kết hệ thống tệp với quyền đọc/ghi:
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue May 29 15:56:03 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=d2450d5e-83bc-4712-b9dd-af2bc461a018 / xfs defaults 0 0
UUID=f884bab5-86fe-4ecd-8054-78451181f0b9 /xfs xfs rw,defaults,quota,gquota,prjquota 0 0
Lấy UUID của đĩa /dev/sdb1 chúng ta thực hiện như bên dưới:
[root@localhost ~]# blkid /dev/mapper/LVMGroup1-www
/dev/mapper/LVMGroup1-www: UUID="f884bab5-86fe-4ecd-8054-78451181f0b9" TYPE="xfs"
2.2. Kiểm tra quotacheck ban đầu trên hệ thống tệp Linux
Khi chúng ta đã bật kiểm tra dung lượng đĩa trên hệ thống tệp, Để kiểm tra tất cả thông tin sử dụng cú pháp sau:
quotacheck -avug
Trong đó ý nghĩa các tùy chọn là:
a
: Kiểm tra tất cả các hệ thống tập tin kích hoạtv
: Chế độ dài dòngu
: Kiểm tra dung lượng đĩa người dùngg
: Kiểm tra dung lượng đĩa nhóm
Lệnh trên sẽ tạo một tệp aquota cho người dùng và nhóm trong thư mục hệ thống.
[root@localhost ~]# ls -l /data/
total 32
-rw------- 1 root root 6144 Mar 19 13:47 aquota.group
-rw------- 1 root root 7168 Mar 19 13:47 aquota.user
drwx------ 2 root root 16384 Mar 19 13:33 lost+found
2.3. Gán disk quota cho người dùng
Sử dụng lệnh edquota
để chỉnh sửa thông tin quota cho một người dùng.
Ví dụ: Thay đổi disk quota cho người dùng 'test', sử dụng lệnh edquota
, sẽ mở các giá trị giới hạn cứng, giới hạn mềm trong trình chỉnh sửa như dưới đây.
Disk quotas for user ramesh (uid 1002):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 0 0 0 0 0
Lệnh edquota
mở cài đặt quota cho người dùng cụ thể trong trình chỉnh sửa, bạn có thể đặt các giới hạn sau:
- Giới hạn mềm và giới hạn cứng cho kích thước disk quota cho người dùng cụ thể.
- Giới hạn mềm và giới hạn cứng cho tổng số lượng inodes được phép cho người dùng cụ thể.
2.4. Báo cáo việc sử dụng disk quota cho người dùng và nhóm
Sử dụng lệnh repquota
để báo cáo việc sử dụng hạn ngạch đĩa cho người dùng và nhóm.
repquota /data
*** Report for user quotas on device /dev/sdb
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
2.5. Thêm quotacheck vào công việc định kỳ hàng ngày
Thêm quotacheck vào công việc định kỳ hàng ngày.
Tạo một tệp trong thư mục /etc/cron.daily
, sẽ chạy lệnh quotacheck
hàng ngày. Khi thực hiện lệnh sẽ gửi đầu ra của lệnh quotacheck
đến địa chỉ email.
[root@localhost ~]# cat /etc/cron.daily/quotacheck
quotacheck -avug