Hướng dẫn khắc phục lỗi full disk và đầy inode trên aaPanel

Để xử lý hiệu quả, bạn cần xác định chính xác nguyên nhân, kiểm tra dung lượng và số lượng inode đang sử dụng, sau đó dọn dẹp các tệp không cần thiết. Bài viết dưới đây hướng dẫn các bước kiểm tra và khắc phục thông qua giao diện aaPanel và dòng lệnh SSH.

 

Những điểm chính

 

  • Nhận biết lỗi full disk và inode: Phân biệt tình trạng hết dung lượng lưu trữ với tình trạng vượt giới hạn inode.

 

  • Kiểm tra tài nguyên máy chủ: Sử dụng giao diện aaPanel hoặc SSH để xác định phân vùng đang gặp vấn đề.

 

  • Tìm thư mục chiếm nhiều tài nguyên: Xác định các tệp log, cache, dữ liệu website và bản sao lưu đang sử dụng nhiều dung lượng.

 

  • Dọn dẹp dữ liệu: Xử lý các bản backup cũ và tệp tạm không còn cần thiết.

 

  • Khắc phục đầy inode: Tìm những thư mục chứa quá nhiều tệp nhỏ và loại bỏ dữ liệu không cần thiết.

 

  • Tự động hóa việc quản lý log: Thiết lập cơ chế quản lý log định kỳ để hạn chế tình trạng đầy ổ đĩa tái diễn.

 

Nguyên nhân gây đầy dung lượng ổ đĩa và inode trên aaPanel

 

Khi quản trị VPS bằng aaPanel, bạn có thể gặp hai tình trạng phổ biến:

 

  • Full disk: Phân vùng lưu trữ đã sử dụng gần hết hoặc toàn bộ dung lượng khả dụng.

 

  • Full inode: Số lượng inode đã đạt giới hạn của hệ thống tệp, khiến máy chủ không thể tạo thêm tệp hoặc thư mục dù vẫn còn dung lượng trống.

 

Một số dấu hiệu thường gặp gồm:

 

  • Xuất hiện thông báo No space left on device.

 

  • Không thể tải tệp lên hoặc ghi dữ liệu vào máy chủ.

 

  • Website phát sinh lỗi 500 Internal Server Error.

 

  • Cơ sở dữ liệu, tiến trình sao lưu hoặc dịch vụ email gặp sự cố.

 

  • Không thể tạo thêm tệp log hoặc tệp tạm.

 

Các nguyên nhân thường gặp là log tăng kích thước trong thời gian dài, cache chưa được dọn dẹp, quá nhiều tệp phiên làm việc, dữ liệu backup cũ hoặc ứng dụng tạo ra hàng nghìn tệp nhỏ.

 

Để khắc phục đúng cách, bạn cần xác định tài nguyên nào đang cạn kiệt trước khi xóa dữ liệu. Việc dọn dẹp không đúng thư mục có thể làm mất dữ liệu hoặc khiến dịch vụ đang hoạt động gặp lỗi.

 

Kiểm tra dung lượng ổ đĩa và inode

 

Cách 1: Kiểm tra bằng giao diện aaPanel

 

Trước tiên, đăng nhập vào aaPanel và mở trang tổng quan Dashboard.

 

Tại khu vực hiển thị trạng thái hệ thống, kiểm tra những thông số liên quan đến dung lượng ổ đĩa và inode. Tên mục có thể khác nhau tùy phiên bản aaPanel.

 

  • Disk Usage: Cho biết mức dung lượng lưu trữ đã sử dụng.

 

  • Inode Usage: Cho biết số lượng inode đã sử dụng so với giới hạn của hệ thống tệp, nếu phiên bản và giao diện hỗ trợ hiển thị thông số này.

 

Khi mức sử dụng tiến gần 90% hoặc cao hơn, bạn nên kiểm tra nguyên nhân và lên kế hoạch giải phóng tài nguyên. Đây là ngưỡng cảnh báo tham khảo, không phải giới hạn cố định cho mọi máy chủ.

 

Cách 2: Kiểm tra bằng SSH

 

Kết nối đến máy chủ thông qua SSH, sau đó chạy hai lệnh sau:

 

df -h

df -i

 

Ý nghĩa của từng lệnh:

 

  • df -h: Hiển thị dung lượng tổng, dung lượng đã dùng và dung lượng còn trống của các phân vùng.

 

  • df -i: Hiển thị số inode đã sử dụng và còn khả dụng trên từng hệ thống tệp.

 

Hãy chú ý cột Use% trong kết quả df -h và IUse% trong kết quả df -i. Nếu một trong hai đạt 100%, phân vùng tương ứng có thể không còn khả năng tiếp nhận dữ liệu hoặc tạo tệp mới.

 

Nếu dung lượng ổ đĩa vẫn còn nhưng website không thể tạo tệp, hãy kiểm tra inode trước khi tiến hành dọn dẹp.

 

Xác định thư mục đang chiếm nhiều dung lượng

 

Sau khi xác định phân vùng gặp vấn đề, bạn cần tìm những thư mục sử dụng nhiều dung lượng nhất để lựa chọn dữ liệu cần xử lý.

 

Kiểm tra dung lượng các thư mục cấp đầu tiên

 

Chạy lệnh:

 

sudo du -xhd1 / 2>/dev/null | sort -hr | head -10

 

Lệnh này thống kê dung lượng các thư mục cấp đầu tiên trên phân vùng gốc, sắp xếp theo dung lượng giảm dần và hiển thị 10 kết quả lớn nhất. Tùy phiên bản hệ điều hành, cú pháp của du có thể khác nhau.

 

Nếu muốn kiểm tra các website trong thư mục /www/wwwroot, sử dụng:

 

sudo du -sh /www/wwwroot/* 2>/dev/null | sort -hr | head -10

 

Kết quả giúp bạn xác định website hoặc thư mục nào đang sử dụng nhiều dung lượng. Sau đó, hãy kiểm tra sâu hơn để tìm các tệp log lớn, dữ liệu backup cũ hoặc cache không còn cần thiết.

 

Lưu ý rằng du thống kê dung lượng của các tệp và thư mục có thể truy cập được. Kết quả có thể không hoàn toàn trùng với df nếu có tệp đã bị xóa nhưng vẫn được tiến trình mở, hoặc do đặc điểm của hệ thống tệp.

 

Quản lý và dọn dẹp bản sao lưu trên aaPanel

 

Các bản sao lưu của aaPanel có thể chiếm nhiều dung lượng nếu được lưu trữ trong thời gian dài. Một vị trí thường gặp là:

 

/www/backup/

 

Tuy nhiên, vị trí thực tế có thể thay đổi tùy cấu hình. Hãy xác nhận thư mục lưu backup trước khi thực hiện thao tác xóa.

 

Cách 1: Xóa bản backup bằng giao diện aaPanel

 

  1. Đăng nhập vào aaPanel.

  2. Tìm khu vực quản lý bản sao lưu hoặc chức năng Backup Restore, tùy phiên bản.

  3. Kiểm tra danh sách bản backup của website, cơ sở dữ liệu hoặc hệ thống.

  4. Xác định những bản cũ không còn cần thiết và đảm bảo vẫn còn bản sao lưu phù hợp trước khi xóa.

  5. Thực hiện thao tác xóa theo hướng dẫn trên giao diện.

 

Cách 2: Kiểm tra bản backup bằng SSH

 

Để xem dung lượng thư mục backup, chạy:

 

sudo du -sh /www/backup

sudo du -ah /www/backup 2>/dev/null | sort -hr | head -20

 

Hai lệnh trên giúp kiểm tra tổng dung lượng và liệt kê những mục lớn nhất trong thư mục.

 

Không nên chạy ngay lệnh rm -rf /www/backup/* vì thao tác này có thể xóa toàn bộ bản sao lưu, kể cả những bản cần thiết để khôi phục website hoặc cơ sở dữ liệu. Chỉ xóa từng tệp đã xác định rõ là không còn sử dụng.

 

Dọn dẹp tệp tạm của aaPanel

 

Trong quá trình hoạt động, aaPanel và các ứng dụng có thể tạo tệp tạm tại những thư mục như:

 

/www/server/panel/tmp

/tmp

 

Đây là các vị trí cần kiểm tra khi máy chủ thiếu dung lượng hoặc inode. Tuy nhiên, không phải mọi tệp trong các thư mục này đều có thể xóa tùy ý vì một số tiến trình có thể vẫn đang sử dụng chúng.

 

Trước tiên, kiểm tra dung lượng:

 

sudo du -sh /www/server/panel/tmp /tmp 2>/dev/null

 

Để xem các tệp đang tồn tại trong thư mục tạm của aaPanel:

 

sudo find /www/server/panel/tmp -maxdepth 1 -type f -printf '%TY-%Tm-%Td %s %p\n' 2
>/dev/null | sort

 

Sau khi xác định được tệp tạm đã hết hạn và không còn được ứng dụng sử dụng, bạn có thể xóa từng tệp cụ thể bằng lệnh rm.

 

Không nên xóa toàn bộ nội dung của /www/server/panel/tmp hoặc /tmp một cách mù quáng. Nếu chưa xác định được tệp nào an toàn để loại bỏ, hãy kiểm tra tài liệu của ứng dụng hoặc nhờ bộ phận kỹ thuật hỗ trợ.

 

Cách khắc phục tình trạng đầy inode

 

Khi inode cạn kiệt, việc chỉ xóa một vài tệp dung lượng lớn thường không giải quyết được vấn đề. Bạn cần tìm và xử lý những thư mục chứa quá nhiều tệp nhỏ.

 

Bước 1: Kiểm tra số lượng tệp

 

Chạy lệnh:

 

sudo find / -xdev -type f 2>/dev/null | wc -l

 

Lệnh này đếm số tệp thông thường trên hệ thống tệp chứa thư mục gốc, không đi qua các hệ thống tệp khác. Kết quả chỉ mang tính tham khảo vì inode còn được sử dụng bởi thư mục và các đối tượng khác, không chỉ riêng tệp thông thường.

 

Để đánh giá chính xác tình trạng inode, hãy đối chiếu kết quả với lệnh:

 

df -i

 

Bước 2: Tìm thư mục chứa nhiều inode

 

Nếu hệ thống sử dụng phiên bản GNU du có hỗ trợ tùy chọn --inodes, bạn có thể chạy:

 

sudo du -x --inodes --max-depth=1 / 2>/dev/null | sort -nr | head -10

 

Lệnh này thống kê số inode theo từng thư mục cấp đầu tiên trên phân vùng gốc và sắp xếp từ cao xuống thấp.

 

Nếu kết quả cho thấy /www hoặc một thư mục website có số lượng inode lớn, hãy kiểm tra sâu hơn tại vị trí đó. Những nguyên nhân phổ biến gồm cache tạo quá nhiều tệp nhỏ, session cũ, thư mục upload hoặc log được chia thành nhiều tệp.

 

Bước 3: Xác định và loại bỏ tệp không cần thiết

 

Sau khi tìm được thư mục có số lượng tệp lớn, hãy kiểm tra loại dữ liệu và thời điểm tạo tệp trước khi xóa.

 

Ví dụ, để thống kê số tệp trong thư mục tạm:

 

sudo find /tmp -xdev -type f 2>/dev/null | wc -l

 

Để kiểm tra số lượng tệp trong các thư mục cache của website, có thể sử dụng:

 

sudo find /www/wwwroot -type d -name cache -print

 

Lệnh thứ hai chỉ liệt kê những thư mục có tên cache, không xóa dữ liệu.

 

Sau đó, bạn cần kiểm tra từng thư mục và xác định cache nào có thể tạo lại, tệp nào đã hết hạn hoặc không còn được sử dụng. Chỉ tiến hành xóa sau khi đã xác minh.

 

Bạn cũng có thể tham khảo các chức năng dọn dẹp tích hợp của aaPanel, nếu phiên bản đang dùng có hỗ trợ. Trước khi chạy lệnh quản trị như bt 15, hãy kiểm tra menu lệnh tương ứng trên phiên bản aaPanel của bạn thay vì mặc định rằng lệnh này có cùng chức năng trên mọi hệ thống.

 

Thiết lập quản lý log định kỳ để hạn chế đầy ổ đĩa

 

Log giúp theo dõi hoạt động của website và phát hiện lỗi máy chủ. Tuy nhiên, nếu log tăng liên tục mà không được quản lý, chúng có thể chiếm nhiều dung lượng và góp phần gây đầy ổ đĩa.

 

Thay vì tự động xóa hàng loạt log cùng tệp tạm bằng một lệnh rm -rf, bạn nên ưu tiên sử dụng cơ chế xoay vòng log (log rotation) để kiểm soát kích thước, thời gian lưu trữ và số lượng bản log.

 

Bước 1: Kiểm tra các thư mục log

 

Những vị trí thường gặp trên aaPanel gồm:

 

/www/wwwlogs

/www/server/panel/logs

 

Kiểm tra dung lượng hiện tại bằng lệnh:

 

sudo du -sh /www/wwwlogs /www/server/panel/logs 2>/dev/null

 

Nếu một thư mục chiếm nhiều dung lượng, hãy xác định tệp log lớn và kiểm tra xem dịch vụ nào đang sử dụng chúng trước khi xử lý.

 

Bước 2: Cấu hình cơ chế xoay vòng log

 

Bạn có thể sử dụng logrotate nếu hệ điều hành và cấu hình máy chủ hỗ trợ. Cơ chế này cho phép xoay vòng log theo thời gian hoặc kích thước, giữ lại số lượng bản nhất định và nén các bản cũ.

 

Trước khi áp dụng, hãy xác định đúng đường dẫn log, cách ứng dụng mở lại tệp sau khi xoay vòng và cấu hình hiện có. Không nên áp dụng một mẫu cấu hình chung cho tất cả log vì mỗi dịch vụ có thể có yêu cầu riêng.

 

Bước 3: Kiểm tra lịch chạy định kỳ

 

Nếu cần sử dụng Crontab để chạy một tác vụ bảo trì, hãy mở trình chỉnh sửa lịch tác vụ:

 

crontab -e

 

Bạn có thể thiết lập lịch chạy một tập lệnh bảo trì đã được kiểm tra trước. Ví dụ, để chạy tập lệnh lúc 02:00 mỗi ngày:

 

0 2 * * * /usr/local/sbin/maintenance-script.sh

 

Trong đó, /usr/local/sbin/maintenance-script.sh là đường dẫn ví dụ; bạn cần thay bằng tập lệnh thực tế đã tạo, kiểm tra quyền thực thi và xác minh nội dung trước khi kích hoạt.

 

Không nên sử dụng tác vụ định kỳ để xóa toàn bộ nội dung của /www/wwwlogs, /tmp hoặc /www/server/panel/logs mà không phân biệt tệp đang sử dụng và tệp đã hết hạn. Việc này có thể làm mất dữ liệu phục vụ chẩn đoán sự cố hoặc ảnh hưởng đến ứng dụng đang hoạt động.

 HỖ TRỢ TRỰC TUYẾN