Trong quá trình quản lý máy chủ sử dụng Directadmin, bạn có thể gặp phải lỗi “xfs_quota: cannot set limits: Function not implemented”. Lỗi này thường xảy ra khi bạn cố gắng thiết lập giới hạn dung lượng cho một tài khoản hoặc thư mục, hoặc hệ thống gặp sự cố trong quá trình cập nhật. Bài viết hôm nay của Vietnix sẽ cung cấp cho bạn những giải pháp cụ thể sửa lỗi xfs_quota: cannot set limits: Function not implemented trên Directadmin.
Dấu hiệu và nguyên nhân gây lỗi
Dấu hiệu của lỗi xfs_quota: cannot set limits: Function not implemented trên DirectAdmin thường xuất hiện khi bạn cố gắng thiết lập giới hạn dung lượng trên hệ thống tập tin XFS
.
Nguyên nhân chính của lỗi này có thể là do nhân Linux không hỗ trợ đầy đủ tính năng quản lý hạn ngạch trên XFS
, hoặc hệ thống tập tin chưa được gắn kết với tùy chọn hạn ngạch. Để khắc phục, bạn cần kiểm tra xem nhân Linux và hệ thống tập tin đã được cấu hình đúng cách để hỗ trợ hạn ngạch chưa.
Có thể bạn quan tâm một số bài viết khác liên quan đến DirectAdmin:
2 trường hợp xử lý lỗi xfs_quota: cannot set limits: Function not implemented trên DirectAdmin
Để bắt đầu, bạn cần truy cập vào VPS hoặc máy chủ của mình. Nếu bạn chưa quen với việc kết nối qua SSH, Vietnix có một hướng dẫn chi tiết dành cho bạn.
Để khắc phục sự cố, bước đầu tiên là xác minh loại hệ thống tệp đang được sử dụng trên máy chủ của bạn. Hệ thống tệp có thể là EXT4
hoặc XFS
. Để kiểm tra, hãy chạy lệnh sau:
mount | grep ' / '
Kết quả của lệnh trên sẽ cho biết chính xác loại hệ thống tệp mà máy chủ của bạn đang sử dụng.
Tùy thuộc vào kết quả kiểm tra, bạn sẽ có 2 phương án để xử lý. Theo đó máy chủ của bạn sẽ phù hợp với một trong hai phương án dưới đây:
Trường hợp 1: /dev/sda3 on / type ext4 (rw,usrquota,grpquota)
Trường hợp 2: /dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
Hệ thống tệp của bạn có thể thuộc hai loại phổ biến là EXT4
hoặc XFS
. Tùy theo loại hệ thống tệp mà bạn đang sử dụng, các giải pháp khắc phục sẽ khác nhau.
Trường hợp là EXT4
Nếu hệ thống tệp của bạn là EXT4
, việc giải quyết lỗi “xfs_quota: cannot set limits: Function not implemented Directadmin” sẽ trở nên dễ dàng hơn. Bạn chỉ cần chạy 4 lệnh dưới đây:
cd /usr/sbin
mv setquota setquota.old
touch setquota
chmod 755 setquota
Bằng cách thực hiện các lệnh trên, bạn đã thành công trong việc khắc phục lỗi này cho hệ thống EXT4
.
Trường hợp là XFS
Hệ thống tệp XFS
có cơ chế quản lý khác so với EXT3
hoặc EXT4
. Vì vậy, trước khi tiến hành sửa lỗi, bạn cần xác nhận lại loại hệ thống tệp mà máy chủ của mình đang sử dụng.
Bước 1: Kiểm tra phân vùng trên Linux
Để xác nhận lại cấu trúc phân vùng, bạn cần sử dụng lệnh df -h
.
Như bạn thấy, /home
không xuất hiện trong danh sách các phân vùng. Do /home
là một thư mục con của /
, không phải một phân vùng độc lập.
Bước 2: Xác nhận rằng / thực sự đang sử dụng hệ thống tệp XFS
Để xác định xem phân vùng gốc (/) đang sử dụng hệ thống tệp nào, bạn thực hiện lệnh dưới đây để kiểm tra.
mount | grep ' / '
Dưới đây là kết quả
[root@sv3 ~]# mount | grep ' / '
/dev/mapper/centos_sv3-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
Trường hợp, kết quả là noquota thì bạn có thể chuyển sang bước 3.
Bước 3: Khắc phục lỗi “xfs_quota: cannot set limits: Function not implemented Directadmin” với hệ thống xfs
Do noquota là tùy chọn mount của kernel mặc định nên bạn cần thay đổi nó tại tùy chọn khởi động kernel.
Để thực hiện thay đổi bạn sử dụng lệnh dưới đây:
vi /etc/default/grub
Kết quả sẽ xuất hiện một vài dòng cấu hình hệ thống kernel, tùy hệ thống sẽ có kết quả khác nhau. Dưới đây là nội dung file của VPS được sử dụng cho ví dụ:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
Đến đây bạn tìm dòng với nội dung “GRUB_CMDLINE_LINUX“. Sau đó bạn di chuyển dấu nháy đến cuối dòng này, lưu ý không vượt quá dấu nháy kép. Để thay đổi thông tin dòng, bạn cần chọn biểu tượng “i
“. Tại đây, hãy nhập thêm đoạn mã “rootflags=uquota,pquota
” vào cuối dòng. Dưới đây là nội dung giúp bạn hình dung rõ hơn về sự thay đổi.
Trước: GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet"
Sau : GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_sv3/root rd.lvm.lv=centos_sv3/swap rhgb quiet rootflags=uquota,pquota"
Tiếp tục bạn nhớ lưu lại khi thay đổi thành công. Sau đó bạn gõ 2 lệnh sau đây:
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig
grub2-mkconfig -o /boot/grub2/grub.cfg
Giải thích các lệnh:
- Lệnh 1: Sao chép file “grub.cfg” vào một file mới mang tên “grub.cfg.orig” để lưu trữ.
- Lệnh 2: Khôi phục lại tệp cấu hình grub.
Đường dẫn có thể thay đổi trên một số hệ điều hành:
/boot/efi/EFI/centos/grub.cfg
Tiếp theo, khởi động lại VPS hoặc Server của bạn bằng cách sử dụng lệnh “reboot”. Sau khi đăng nhập lại, kiểm tra xem tùy chọn “noquota” có còn hay không bằng cách dùng lại lệnh trước đó.
mount | grep ' / '
Đến đây, noquota đã không còn nữa. Để đảm bảo hệ thống tệp XFS được kích hoạt trong cấu hình DirectAdmin, hãy thực thi hai lệnh kiểm tra sau:
cd /usr/local/directadmin
./directadmin c | grep use_xfs_quota
Giải thích chi tiết về 2 lệnh:
- Lệnh 1: Dùng để di chuyển đến nơi chứa tệp tin cấu hình Directadmin.
- Lệnh 2: Dùng để xem Directadmin use_xfs_quota đang cấu hình với thông số nào.
Nếu kết quả xuất hiện như bên dưới đây. Bạn có thể tiến hành bước cuối cùng.
use_xfs_quota=1
Bước cuối cùng là thực hiện khôi phục lại hạn ngạch mức sử dụng dung lượng cho từng user đã được khởi tạo:
echo "action=rewrite&value=quota" >> /usr/local/directadmin/data/task.queue
Kiểm tra xem xfs_quota: cannot set limits: Function not implemented Directadmin đã được khắc phục hay chưa. Để xác nhận, bạn hãy thử điều chỉnh dung lượng cho một tài khoản người dùng và nhấn “Save”. Nếu quá trình lưu diễn ra thành công mà không gặp lỗi, tức là vấn đề đã được giải quyết.
Lời kết
Bài viết đã hướng dẫn cách sửa lỗi xfs_quota: cannot set limits: Function not implemented trên DirectAdmin một cách chi tiết và hiệu quả. Hy vọng thông tin này hữu ích và giúp bạn giải quyết vấn đề trên server của mình một cách nhanh chóng. Nếu gặp khó khăn, đừng ngần ngại để lại bình luận bên dưới, Vietnix sẵn sàng hỗ trợ bạn.