Hướng dẫn fix lỗi không cập nhật dung lượng trên VPS sử dụng Directadmin
Mình có con VPS cài Directadmin, cài xong thì tạo hosting và sử dụng cơ mà cũng chả để ý gì cả, đến một ngày đẹp trời vô xem thì hosting nó cũng chỉ báo dung lượng đã sử dụng là 0MB mặc dù đã upload cả mấy GB. Akay phết nhể :v Nay cũng có 1 bạn bị và đặc điểm là khi tạo hosting (end-user) thì có hiện thêm thông báo xfs_quota: cannot set limits: Function not implemented.
May thay con VPS của mình và VPS của bạn kia sử dụng 2 định dạng khác nhau là ext4 và xfs nên có cơ hội để viết bài hướng dẫn này một cách hoàn chỉnh.
Lan man thế thôi, bắt tay vào việc nhé.
1: Đăng nhập SSH (điều này chắc khỏi phải nói cơ mà mình cứ nhắc cho vui)
2: Kiểm tra phân vùng
Chạy lệnh
df -h
Kết quả
Filesystem Size Used Avail Use% Mounted on /dev/sda1 30G 4.6G 24G 17% / devtmpfs 474M 0 474M 0% /dev tmpfs 484M 20K 484M 1% /dev/shm tmpfs 484M 6.6M 477M 2% /run tmpfs 484M 0 484M 0% /sys/fs/cgroup tmpfs 97M 0 97M 0% /run/user/0
Chúng ta sẽ chú ý đến dòng thứ 2 và cụ thể là ký tự cuối cùng /
/dev/sda1 30G 4.6G 24G 17% /
Có một số VPS thì là /home nên các bạn để ý nhé.
Bài này mình sẽ làm ví dụ /. Còn bạn nào đang sử dụng /home thì thay thế vào nha :v
Chạy lệnh
mount | grep ' / '
Kết quả sẽ ra tương tự 1 trong 2 dòng bên dưới, các bạn để ý xem mình đang nằm ở dòng nào.
Dòng 1 là bạn đang sử dụng định dạng ext4 còn dòng 2 là bạn đang sử dụng định dạng xfs
/dev/sda1 on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered) /dev/sda1 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
3.1: Đối với định dạng ext4
Kiểm tra xem xfs có đang bật trong file directadmin.conf hay không bằng lệnh:
cd /usr/local/directadmin ./directadmin c | grep use_xfs_quota
Nếu kết quả trả về use_xfs_quota=1 thì cần sửa lại use_xfs_quota=0
Chạy lệnh để sửa file fstab (các bạn có thể dùng nano nếu quen tay, cá nhân mình cũng hay dùng nano cơ mà một số bạn mới dùng VPS chưa cài đặt nano sẽ không chạy được nên mình sử dụng vi)
vi /etc/fstab
Tìm dòng (tương tự)
/dev/sda1 / ext4 errors=remount-ro,discard 1 1
Thêm usrquota,grpquota vào dòng vừa tìm (nếu đã có thì bỏ qua không cần thêm), kết quả:
/dev/sda1 / ext4 errors=remount-ro,discard,usrquota,grpquota 1 1
Tiếp tục chạy lệnh để sửa file grub
vi /etc/default/grub
Tìm dòng (tương tự)
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
Thêm rootflags=uquota,pquota vào sau, kết quả:
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet rootflags=uquota,pquota"
3.2: Đối với định dạng xfs
Kiểm tra xem xfs được bật trong file directadmin.conf hay chưa bằng lệnh:
cd /usr/local/directadmin ./directadmin c | grep use_xfs_quota
Kết quả nếu đã bật sẽ trả về (nếu không có hoặc =0 thì cần sửa lại)
use_xfs_quota=1
Tiếp theo chạy lệnh để sửa file grub
vi /etc/default/grub
Tìm dòng (tương tự)
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200"
Thêm rootflags=uquota,pquota vào sau, kết quả:
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200 rootflags=uquota,pquota"
Backup và tạo mới file grub.cfg bằng lệnh (CentOS 7 thì bạn chạy luôn lệnh bên dưới)
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig grub2-mkconfig -o /boot/grub2/grub.cfg
Đường dẫn trên một số HĐH đã được thay đổi thành
/boot/efi/EFI/centos/grub.cfg
4. Tiến hành reboot VPS (bắt buộc nhé)
5. Chạy lại quota bằng lệnh sau
/sbin/quotaoff -a; /sbin/quotacheck -avugm; /sbin/quotaon -a;
Bây giờ chúng ta có thể kiểm tra lại kết quả sau khi đã hoàn thành việc sửa lỗi bằng lệnh
/usr/sbin/repquota /
Kết quả trả về như bên dưới là đã xong.
Để cập nhật dung lượng trên các hosting đã được tạo trước đó thì các bạn chạy thêm lệnh, nếu VPS mới chưa tạo hosting thì không cần.
echo "action=rewrite&value=quota" >> /usr/local/directadmin/data/task.queue
Các bạn có thêm thắc mắc có thể bình luận bên dưới.
Chúc các bạn thành công.