1. Điều kiện để sử dụng Định mức Dữ liệu
Kernel hệ thống phải hỗ trợ định mức dữ liệu
[root@centos2 ~]# cd /boot/
[root@centos2 /boot]# ll
Tổng dung lượng 192980
-rw-r--r--. 1 root root 153068 10 tháng 19 01:19 config-3.10.0-1062.4.1.el7.x86_64
-rw-r--r--. 1 root root 152976 8 tháng 8 02:11 config-3.10.0-1062.el7.x86_64
drwx------. 3 root root 17 11 tháng 9 2018 efi
drwxr-xr-x. 2 root root 27 11 tháng 1 23:00 grub
drwx------. 5 root root 97 11 tháng 1 23:53 grub2
-rw-------. 1 root root 78623773 11 tháng 1 23:08 initramfs-0-rescue-85901032a744483ebe559e0551c923f4.img
-rw-------. 1 root root 31429453 11 tháng 1 23:53 initramfs-3.10.0-1062.4.1.el7.x86_64.img
-rw------- 1 root root 13878466 11 tháng 7 23:16 initramfs-3.10.0-1062.4.1.el7.x86_64kdump.img
-rw-------. 1 root root 31432689 11 tháng 1 23:52 initramfs-3.10.0-1062.el7.x86_64.img
-rw-------. 1 root root 13874408 11 tháng 1 23:14 initramfs-3.10.0-1062.el7.x86_64kdump.img
-rw-r--r--. 1 root root 318846 10 tháng 19 01:19 symvers-3.10.0-1062.4.1.el7.x86_64.gz
-rw-r--r--. 1 root root 318717 8 tháng 8 02:12 symvers-3.10.0-1062.el7.x86_64.gz
-rw-------. 1 root root 3597450 10 tháng 19 01:19 System.map-3.10.0-1062.4.1.el7.x86_64
-rw-------. 1 root root 3594971 8 tháng 8 02:11 System.map-3.10.0-1062.el7.x86_64
-rwxr-xr-x. 1 root root 6734016 11 tháng 1 23:08 vmlinuz-0-rescue-85901032a744483ebe559e0551c923f4
-rwxr-xr-x. 1 root root 6734016 10 tháng 19 01:19 vmlinuz-3.10.0-1062.4.1.el7.x86_64
-rwxr-xr-x. 1 root root 6734016 8 tháng 8 02:12 vmlinuz-3.10.0-1062.el7.x86_64
[root@centos2 /boot]# grep CONFIG_QUOTA config-3.10.0-1062.el7.x86_64
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
[root@centos2 /boot]# grep CONFIG_QUOTA config-3.10.0-1062.4.1.el7.x86_64
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
Hệ thống phải cài đặt công cụ quota, Linux mặc định đã cài đặt công cụ quota
[root@centos2 ~]# rpm -qa|grep quota
quota-nls-4.01-19.el7.noarch
quota-4.01-19.el7.x86_64
Phân vùng cần hỗ trợ định mức dữ liệu phải được bật tính năng định mức, tính năng này cần được bật thủ công, không còn mặc định bật
2. Khái niệm
Định mức người dùng và định mức nhóm
Giới hạn dung lượng đĩa và giới hạn số lượng tệp
Giới hạn mềm và giới hạn cứng
Thời gian miễn trừ
Nếu dung lượng không gian của người dùng nằm giữa giới hạn mềm và giới hạn cứng, hệ thống sẽ cảnh báo người dùng khi đăng nhập rằng đĩa sắp đầy, thời gian này là thời gian miễn trừ, mặc định là 7 ngày. Nếu đạt đến thời gian miễn trừ và dung lượng đĩa của người dùng vẫn cao hơn giới hạn mềm, thì giới hạn mềm sẽ được nâng lên giới hạn cứng.
3. Lên kế hoạch Định mức Dữ liệu
4. Tạo nhóm và người dùng
groupadd data_team
useradd -G data_team analyst1
useradd -G data_team analyst2
useradd -G data_team analyst3
passwd analyst1
passwd analyst2
passwd analyst3
5. Bật tính năng Định mức Dữ liệu trên phân vùng
mount -o remount,usrquota,grpquota /storage1
#vim /etc/fstab
#/dev/sdb1 /storage1 ext4 defaults,usrquota,grpquota 0 0
#mount -o remount /storage1
6. Tạo tệp cấu hình Định mức Dữ liệu
quotacheck [tùy chọn] [tên phân vùng]
-a Quét tất cả các phân vùng đã bật định mức dữ liệu trong tệp /etc/mtab. Nếu thêm tham số này, không cần thêm tên phân vùng sau lệnh
-c Bỏ qua tệp cấu hình hiện có, quét lại và tạo tệp cấu hình mới
-u Tạo tệp cấu hình định mức người dùng, tạo tệp aquota.user
-g Tạo tệp cấu hình định mức nhóm, tạo tệp aquota.group
-v Hiển thị quá trình quét
-m Bắt buộc quét hệ thống tệp ở chế độ đọc-ghi, tương tự như -M. Thường dùng khi quét phân vùng gốc
-f Bắt buộc quét hệ thống tệp và ghi tệp cấu hình mới. Thường dùng khi quét phân vùng đĩa cứng mới được thêm
quotacheck -avug
Cần tắt SELinux
[root@centos2 ~]# ll /storage1
Tổng dung lượng 32
-rw------- 1 root root 6144 11 tháng 7 23:50 aquota.group
-rw------- 1 root root 6144 11 tháng 7 23:50 aquota.user
drwx------ 2 root root 16384 11 tháng 7 18:25 lost+found
7. Đặt giới hạn định mức cho người dùng và nhóm
edquota [tùy chọn] [tên người dùng hoặc tên nhóm]
-u tên người dùng Đặt định mức người dùng
-g tên nhóm Đặt định mức nhóm
-t Đặt thời gian miễn trừ
-p Sao chép định mức. Nếu đã đặt giới hạn định mức cho một người dùng, giới hạn định mức của người dùng khác nếu giống người dùng này, có thể sao chép trực tiếp giới hạn định mức mà không cần chỉ định thủ công
[root@centos2 ~]# edquota -u analyst1
Disk quotas for user analyst1 (uid 1002):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 40000 50000 0 6 9
[root@centos2 ~]# edquota -u analyst2
Disk quotas for user analyst2 (uid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 100000 200000 0 10 15
7.2 Sao chép Định mức
[root@centos2 ~]# edquota -p analyst1 -u analyst3
#lệnh -p người dùng nguồn -u người dùng đích
7.3 Chỉnh sửa thời gian miễn trừ
[root@centos2 ~]# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sdb1 8days 8days
7.4 Bật và tắt Định mức
Sau khi cấu hình định mức xong, chỉ cần bật định mức là được.
quotaon [tùy chọn] [tên phân vùng]
-a Dựa trên tệp /etc/mtab để bật tất cả các phân vùng định mức. Nếu không có -a, sau đó phải chỉ định tên phân vùng
-u Bật định mức người dùng
-g Bật định mức nhóm
-v Hiển thị thông tin quá trình bật
[root@centos2 ~]# quotaon -vug /storage1
/dev/sdb1 [/storage1]: group quotas turned on
/dev/sdb1 [/storage1]: user quotas turned on
Tắt định mức
quotaoff [tùy chọn] [tên phân vùng]
-a Dựa trên tệp /etc/mtab để tắt tất cả các phân vùng định mức. Nếu không có -a, sau đó phải chỉ định tên phân vùng
-u Tắt định mức người dùng
-g Tắt định mức nhóm
[root@centos2 ~]# quotaoff -vug /storage1
/dev/sdb1 [/storage1]: group quotas turned off
/dev/sdb1 [/storage1]: user quotas turned off
8. Truy vấn Định mức Dữ liệu
quota truy vấn định mức người dùng hoặc nhóm
quota [tùy chọn] [tên người dùng hoặc tên nhóm]
-u tên người dùng Truy vấn định mức người dùng
-g tên nhóm Truy vấn định mức nhóm
-v Hiển thị chi tiết
-s Hiển thị dung lượng theo đơn vị quen thuộc
[root@centos2 ~]# quota -uvs analyst1
Disk quotas for user analyst1 (uid 1002):
Filesystem space quota limit grace files quota limit grace
/dev/sdb1 0K 40000K 50000K 0 6 9
repquota truy vấn định mức hệ thống tệp
repquota [tùy chọn] [tên phân vùng]
-a Dựa trên tệp /etc/mtab để truy vấn định mức. Nếu không có tùy chọn -a, phải thêm tên phân vùng
-u Truy vấn định mức người dùng
-g Truy vấn định mức nhóm
-v Hiển thị chi tiết
-s Hiển thị dung lượng theo đơn vị quen thuộc
[root@centos2 ~]# repquota -avugs
*** Report for user quotas on device /dev/sdb1
Block grace time: 8days; Inode grace time: 8days
Space limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20K 0K 0K 2 0 0
analyst1 -- 0K 40000K 50000K 0 6 9
analyst2 -- 0K 100000K 196M 0 10 15
analyst3 -- 0K 40000K 50000K 0 6 9
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 4
Used average: 4.000000
*** Report for group quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
Space limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20K 0K 0K 2 0 0
data_team -- 0K 100000K 196M 0 10 20
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000
9. Kiểm tra
[root@centos2 ~]# dd if=/dev/zero of=/storage1/testfile bs=1M count=60
#Tạo tệp testfile, chỉ định kích thước 60M
10. Đặt Định mức Dữ liệu người dùng không tương tác
[root@localhost ~]# setquota -u tên người dùng dung lượng giới hạn mềm dung lượng giới hạn cứng số lượng giới hạn mềm số lượng giới hạn cứng tên phân vùng
[root@localhost ~]# useradd analyst4
[root@localhost ~]# passwd analyst4
[root@localhost ~]# setquota -u analyst4 10000 20000 5 8 /storage1
#Đặt giới hạn mềm dung lượng 10MB, giới hạn cứng 20MB cho người dùng trên phân vùng /storage1. Giới hạn mềm số tệp 5, giới hạn cứng 8.