Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh quota
của Linux để thiết lập và quản lý hạn ngạch đĩa cho người dùng trên một hệ thống tập tin. Lab này bao gồm các khái niệm chính về hạn ngạch đĩa, bao gồm giới hạn mềm và giới hạn cứng, và cách theo dõi và quản lý việc sử dụng đĩa. Bạn sẽ học cách thiết lập hạn ngạch đĩa cho một người dùng và cách theo dõi và quản lý việc sử dụng hạn ngạch. Lab này cung cấp các ví dụ thực tế để giúp bạn hiểu và áp dụng lệnh quota
một cách hiệu quả trong môi trường Linux.
Hiểu khái niệm về hạn ngạch đĩa
Trong bước này, chúng ta sẽ khám phá khái niệm về hạn ngạch đĩa trong Linux. Hạn ngạch đĩa là một hệ thống cho phép các systemadmin đặt giới hạn về lượng dung lượng đĩa mà một người dùng hoặc nhóm có thể sử dụng trên một hệ thống tập tin.
Để hiểu khái niệm về hạn ngạch đĩa, trước tiên hãy kiểm tra mức sử dụng đĩa hiện tại trên hệ thống:
df -h
Ví dụ đầu ra:
Filesystem Size Used Avail Use% Mounted on
overlay 39G 15G 22G 41% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/sda1 39G 15G 22G 41% /
tmpfs 3.9G 0 3.9G 0% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
Như bạn có thể thấy, hệ thống tập tin có tổng dung lượng là 39GB, với 15GB đã sử dụng và 22GB khả dụng. Đây là mức sử dụng đĩa tổng thể trên hệ thống.
Bây giờ, giả sử chúng ta muốn giới hạn mức sử dụng dung lượng đĩa cho một người dùng cụ thể. Đây là lúc hạn ngạch đĩa phát huy tác dụng. Hạn ngạch đĩa cho phép chúng ta đặt giới hạn về lượng dung lượng đĩa mà một người dùng hoặc nhóm có thể sử dụng.
Các khái niệm chính của hạn ngạch đĩa là:
-
Giới hạn mềm (Soft Limit): Giới hạn mềm là lượng dung lượng đĩa tối đa mà người dùng có thể sử dụng trước khi nhận được cảnh báo. Nếu người dùng vượt quá giới hạn mềm, họ sẽ có thể tiếp tục sử dụng hệ thống tập tin, nhưng họ sẽ nhận được cảnh báo định kỳ.
-
Giới hạn cứng (Hard Limit): Giới hạn cứng là lượng dung lượng đĩa tối đa tuyệt đối mà người dùng có thể sử dụng. Nếu người dùng đạt đến giới hạn cứng, họ sẽ không thể cấp phát thêm bất kỳ dung lượng đĩa nào và mọi nỗ lực tiếp theo để thực hiện việc đó sẽ thất bại.
-
Inode: Ngoài việc giới hạn lượng dung lượng đĩa, hạn ngạch đĩa cũng có thể giới hạn số lượng tập tin (inode) mà người dùng có thể tạo. Điều này hữu ích để ngăn người dùng tạo ra một số lượng lớn các tập tin nhỏ, điều này cũng có thể tiêu tốn một lượng đáng kể dung lượng đĩa.
Bằng cách hiểu các khái niệm này, bạn sẽ có thể quản lý hiệu quả việc sử dụng dung lượng đĩa trên hệ thống Linux của mình bằng lệnh quota
, mà chúng ta sẽ khám phá trong bước tiếp theo.
Thiết lập hạn ngạch đĩa cho người dùng
Trong bước này, chúng ta sẽ học cách thiết lập hạn ngạch đĩa cho một người dùng trên hệ thống Linux.
Đầu tiên, hãy tạo một người dùng mới có tên là quota_user
và thêm họ vào nhóm sudo
:
sudo useradd -m quota_user
sudo usermod -aG sudo quota_user
Bây giờ, chúng ta cần kích hoạt hạn ngạch đĩa cho hệ thống tập tin nơi đặt thư mục chính của người dùng. Trong trường hợp này, đó là hệ thống tập tin root (/
):
sudo quotacheck -cug /
sudo quotaon /
Lệnh quotacheck
quét một hệ thống tập tin, xây dựng một bảng về mức sử dụng đĩa hiện tại và kích hoạt tính năng kế toán hạn ngạch. Lệnh quotaon
sau đó bật tính năng thực thi hạn ngạch cho hệ thống tập tin.
Tiếp theo, chúng ta sẽ đặt giới hạn mềm và giới hạn cứng cho quota_user
:
sudo setquota -u quota_user 500M 1G 0 0 /
Lệnh này đặt giới hạn mềm thành 500MB và giới hạn cứng thành 1GB cho quota_user
trên hệ thống tập tin root (/
). Hai giá trị 0 cuối cùng dành cho giới hạn mềm và giới hạn cứng của inode (số lượng tập tin), mà chúng ta không đặt trong ví dụ này.
Để xác minh cài đặt hạn ngạch cho quota_user
, chúng ta có thể sử dụng lệnh repquota
:
sudo repquota /
Ví dụ đầu ra:
*** Report for user quotas on device /
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 15360 0 0 1 0 0
quota_user 0 500M 1G 0 0 0
Như bạn có thể thấy, quota_user
có giới hạn mềm là 500MB và giới hạn cứng là 1GB cho việc sử dụng dung lượng đĩa.
Bây giờ, hãy kiểm tra hạn ngạch bằng cách đăng nhập với tư cách là quota_user
và cố gắng tạo một tập tin lớn hơn giới hạn mềm:
sudo -u quota_user touch ~/large_file.txt
sudo -u quota_user dd if=/dev/zero of=~/large_file.txt bs=1M count=600
Lệnh đầu tiên tạo một tập tin trống có tên là large_file.txt
và lệnh thứ hai điền vào tập tin 600MB dữ liệu. Vì điều này vượt quá giới hạn mềm là 500MB, người dùng sẽ nhận được một thông báo cảnh báo.
Theo dõi và quản lý việc sử dụng hạn ngạch đĩa
Trong bước cuối cùng này, chúng ta sẽ học cách theo dõi và quản lý việc sử dụng hạn ngạch đĩa trên hệ thống Linux.
Đầu tiên, hãy kiểm tra mức sử dụng hạn ngạch đĩa hiện tại cho quota_user
:
sudo repquota /
Ví dụ đầu ra:
*** Report for user quotas on device /
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 15360 0 0 1 0 0
quota_user 600M 500M 1G 0 0 0
Như bạn có thể thấy, quota_user
hiện đang sử dụng 600MB dung lượng đĩa, vượt quá giới hạn mềm là 500MB.
Để theo dõi việc sử dụng hạn ngạch đĩa, chúng ta có thể sử dụng lệnh quota
:
sudo -u quota_user quota
Ví dụ đầu ra:
Disk quotas for user quota_user (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/ 614400 512000 1048576 [EXCEEDED] 0 0 0
Lệnh này hiển thị mức sử dụng đĩa hiện tại, giới hạn mềm và giới hạn cứng cho quota_user
trên hệ thống tập tin root (/
).
Nếu người dùng vượt quá giới hạn mềm, họ sẽ nhận được thông báo cảnh báo định kỳ. Để quản lý việc sử dụng hạn ngạch đĩa, chúng ta có thể:
- Tăng giới hạn mềm và/hoặc giới hạn cứng bằng lệnh
setquota
, như chúng ta đã làm ở bước trước. - Yêu cầu người dùng xóa một số tập tin để giảm mức sử dụng đĩa của họ.
Hãy thử tăng giới hạn mềm cho quota_user
:
sudo setquota -u quota_user 1G 2G 0 0 /
Lệnh này đặt giới hạn mềm thành 1GB và giới hạn cứng thành 2GB cho quota_user
trên hệ thống tập tin root (/
).
Bây giờ, hãy xác minh cài đặt hạn ngạch đã cập nhật:
sudo repquota /
Ví dụ đầu ra:
*** Report for user quotas on device /
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 15360 0 0 1 0 0
quota_user 600M 1G 2G 0 0 0
Như bạn có thể thấy, giới hạn mềm cho quota_user
đã được tăng lên 1GB và giới hạn cứng đã được tăng lên 2GB.
Tóm tắt
Trong lab này, trước tiên chúng ta đã khám phá khái niệm về hạn ngạch đĩa trong Linux, cho phép các systemadmin đặt giới hạn về lượng dung lượng đĩa mà người dùng hoặc nhóm có thể sử dụng trên hệ thống tập tin. Chúng ta đã tìm hiểu về các khái niệm chính của hạn ngạch đĩa, bao gồm giới hạn mềm, giới hạn cứng và inode. Sau đó, chúng ta tiến hành thiết lập hạn ngạch đĩa cho người dùng, theo dõi và quản lý việc sử dụng hạn ngạch đĩa của họ. Cách tiếp cận thực tế này cung cấp sự hiểu biết thực tế về cách triển khai và quản lý hiệu quả hạn ngạch đĩa trong môi trường Linux.