Disk, filesystem và kiểm tra dung lượng: lab df, du, mount, inode và xử lý đầy ổ an toàn

Disk, filesystem và kiểm tra dung lượng là chủ đề cực kỳ thực tế vì rất nhiều sự cố production bắt nguồn từ việc ổ đầy: database không ghi được, log phình to, backup fail, package update lỗi hoặc website trắng trang vì hết chỗ ghi session/cache.

Bài này giúp anh hiểu không chỉ dung lượng tổng, mà cả mount point, inode và cách truy ra thư mục nào đang chiếm chỗ.

1. Các lệnh đầu tiên

df -h
lsblk
mount | head
sudo du -sh /var/* 2>/dev/null | sort -h | tail -20

df -h cho biết filesystem nào đang đầy; du giúp truy tiếp thư mục nào chiếm dung lượng.

2. Hiểu mount point

Không phải mọi thư mục đều nằm cùng một phân vùng. Ví dụ /, /var, /home có thể tách riêng. Vì vậy, nhìn du một nơi mà kết luận cả máy còn chỗ hay không là chưa đủ.

3. Inode là gì và vì sao ổ còn dung lượng vẫn báo full?

Một filesystem có thể hết inode trước khi hết GB nếu chứa quá nhiều file nhỏ. Kiểm tra:

df -ih

Nếu inode 100%, anh phải xóa bớt file nhỏ, không phải mở rộng dung lượng ngay lập tức.

4. Kịch bản thực tế: log làm đầy /var

df -h /var
sudo du -sh /var/log/* 2>/dev/null | sort -h | tail -20

Nếu một file log tăng bất thường, cần tìm nguyên nhân và cấu hình logrotate thay vì chỉ xóa cho xong.

5. File bị xóa nhưng dung lượng chưa trả lại

Một process có thể vẫn giữ file đã xóa. Kiểm tra bằng:

sudo lsof | grep deleted | head

Đây là lỗi rất hay gặp với log file của ứng dụng đang mở.

6. Lab step-by-step

  1. Chạy df -h và ghi lại mount point nào quan trọng.
  2. Chạy df -ih để xem inode.
  3. Dùng du -sh để tìm thư mục lớn trong /var/home.
  4. Tạo thư mục lab chứa vài file lớn nhỏ khác nhau rồi quan sát bằng du -sh.
  5. Nếu có Docker hoặc logs lớn, quan sát thêm các thư mục chuyên biệt.

7. Lỗi thường gặp

  • chỉ nhìn df -h mà không truy đến thư mục chiếm chỗ
  • xóa log nhưng quên process vẫn giữ file open
  • không theo dõi inode
  • để backup local nằm mãi trên production

8. Tài liệu chính thống

9. Checklist production

  • theo dõi cả dung lượng và inode
  • biết mount point nào chứa log, data, backup
  • có logrotate và chính sách dọn dẹp backup local
  • biết dùng lsof khi xóa file mà disk chưa giảm
  • có cảnh báo khi filesystem vượt ngưỡng 80% hoặc 90%

10. Runbook xử lý disk full an toàn

  1. Xác định filesystem nào đầy bằng df -h và inode bằng df -ih.
  2. Xác định mount point bị ảnh hưởng: /, /var, /home, volume riêng hay container storage.
  3. Dùng du để truy dần thư mục chiếm chỗ, không xóa theo cảm giác.
  4. Nếu vừa xóa file mà disk chưa giảm, kiểm tra file deleted còn bị process giữ bằng lsof | grep deleted.
  5. Xác định thứ gì có thể dọn an toàn: cache, backup cũ, artifact cũ, log rotate lỗi, file tmp hết hạn.
  6. Xác minh lại ứng dụng và log sau khi giải phóng dung lượng.

11. Bốn thủ phạm rất hay gặp

  • log phình to: ứng dụng lỗi liên tục hoặc logrotate cấu hình sai
  • backup local tồn đọng: file tar/SQL dump để lại nhiều ngày
  • Docker/container artifacts: image, layer, volume hoặc container log
  • file tạm: cache, upload chưa xử lý xong, file build

12. Case thực tế: /var đầy do log tăng bất thường

df -h /var
sudo du -sh /var/log/* 2>/dev/null | sort -h | tail -20
sudo ls -lah /var/log

Nếu phát hiện một log file khổng lồ, đừng chỉ xóa nó cho xong. Hãy hỏi tiếp: ứng dụng nào đang spam lỗi, logrotate có chạy không, và nếu truncate/xóa thì process có cần reopen file không.

13. Case thực tế: inode full dù còn nhiều GB

Nếu df -h trông vẫn ổn nhưng hệ thống báo không tạo được file mới, hãy nhìn df -ih. Điều này thường xảy ra khi có quá nhiều file nhỏ như cache, mail queue, session file hoặc ảnh thumbnail sinh quá mức.

14. Những thứ không nên xóa bừa

  • file database đang dùng
  • binary hoặc thư mục ứng dụng active mà chưa hiểu rõ
  • toàn bộ /var/log chỉ vì thấy nhiều file
  • volume hoặc image container khi chưa biết service nào đang phụ thuộc

15. Lab mở rộng: truy dần thư mục lớn theo cây

sudo du -xhd1 / | sort -h
sudo du -xhd1 /var | sort -h
sudo du -xhd1 /home | sort -h

Tùy chọn -x giúp anh không nhảy sang filesystem khác khi đang truy nguyên nhân trong một phân vùng cụ thể.

Kết luận: nắm chắc Disk, filesystem và kiểm tra dung lượng giúp anh xử lý sự cố đầy ổ có phương pháp, tránh vừa xóa dữ liệu vừa gây thêm rủi ro.

Tác giả: Mạnh Hoàng

Tôi là Hoàng Mạnh, người sáng lập blog SysadminSkills.com. Tôi viết về quản trị hệ thống, bảo mật máy chủ, DevOps và cách ứng dụng AI để tự động hóa công việc IT. Blog này là nơi tôi chia sẻ những gì đã học được từ thực tế – đơn giản, ngắn gọn và áp dụng được ngay.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *