Quản lý Định mức Dữ liệu trên Linux

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.

Thẻ: linux quota disk management filesystem Storage

Đăng vào ngày 26 tháng 6 lúc 19:28