Cách Kiểm Tra & Dọn Dẹp Dung Lượng VPS Khi Bị Đầy Ổ Cứng

Đang chạy bình thường nhưng VPS bất ngờ báo “No space left on device”? Website không upload được ảnh, mail không gửi đi được, trong khi bạn chắc chắn mình không tải thêm quá nhiều dữ liệu.

Vấn đề có thể không nằm ở những dữ liệu bạn chủ động lưu. VPS có thể đầy do log, cache, backup cũ hoặc thậm chí đã chạm giới hạn inode dù dung lượng ổ đĩa vẫn còn trống.

Trong bài viết này, chúng ta sẽ lần lượt kiểm tra dung lượng đang bị chiếm ở đâu, dọn rác VPS đúng chỗ để giải phóng dung lượng và kiểm tra giới hạn inode. Từ đó, bạn có thể xác định nên tự dọn dẹp hay đã đến lúc cần nâng cấp gói VPS.

Cách xem dung lượng VPS

Trước khi xóa bất kỳ dữ liệu nào, việc đầu tiên cần làm là xác định dung lượng đang được sử dụng ở đâu.

Trên VPS Linux, lệnh nhanh nhất để kiểm tra là:

df -h

Lệnh này cho biết ngay phân vùng nào đang gần đầy. Đây mới chỉ là bước đầu. Cách đọc kết quả chính xác, cách khoanh vùng thư mục đang chiếm nhiều dung lượng, cũng như cách kiểm tra dung lượng VPS kết hợp với RAM, CPU và băng thông đã được hướng dẫn đầy đủ tại [LINK: Cách Kiểm Tra Tài Nguyên VPS], nên không nhắc lại ở đây.

Cách dọn rác, xóa Log để giải phóng dung lượng

Nhiều người thường mặc định rằng ổ đĩa đầy là do có quá nhiều dữ liệu như ảnh, video hoặc file khách hàng. Tuy nhiên, trên CentOS, nguyên nhân thực tế thường đến từ những loại dữ liệu “rác” âm thầm tích lũy theo thời gian.

Có ba nguồn phổ biến cần kiểm tra.

Đầu tiên là log hệ thống trong /var/log, đặc biệt là log của httpd/nginx và maillog. Nếu VPS không có chính sách xoay vòng log hợp lý, các file này sẽ lớn dần theo từng ngày, thậm chí có thể lên tới vài GB chỉ sau vài tháng vận hành.

Tiếp theo là cache của package manager. Mỗi lần cài đặt hoặc cập nhật package, CentOS tải các gói cài đặt về và giữ lại trong cache. Nếu không được dọn dẹp định kỳ, lượng dữ liệu này sẽ tích lũy theo số lần thao tác.

Cuối cùng là snapshot hoặc các file backup cũ do chính bạn hoặc công cụ tự động tạo ra rồi quên xóa. Đây thường là nguồn dữ liệu âm thầm nhất, bởi các file backup có thể nằm trong những thư mục ít được kiểm tra định kỳ.

Khi cộng dồn cả ba nguồn trên, một VPS gần như không upload thêm dữ liệu mới vẫn có thể VPS full ổ cứng chỉ sau vài tháng vận hành bình thường. Đây cũng là một trong những nguyên nhân của hiện tượng VPS CentOS nhanh đầy dung lượng.

Với cache của package manager, có thể dọn bằng lệnh sau. CentOS 7 sử dụng yum, còn CentOS 8 trở lên sử dụng dnf:

yum clean all

Với log hệ thống, trước khi xóa nên xác định thư mục nào đang chiếm nhiều dung lượng. Có thể kiểm tra nhanh bằng:

du -sh /var/log/

Việc xóa nhật ký VPS bằng journalctl cũng như các lệnh dọn dẹp toàn diện hơn, chẳng hạn package không còn sử dụng hoặc dữ liệu Docker, đã được hướng dẫn chi tiết trong phần xóa một phần dữ liệu tại [LINK: Cách Reset/Khôi Phục Cài Đặt Gốc VPS], nên không lặp lại các lệnh ở đây.

Với backup hoặc snapshot cũ, việc cần làm khá đơn giản: rà lại thư mục lưu backup định kỳ và xóa những bản đã quá thời hạn lưu trữ theo chính sách của riêng bạn.

Nếu đã dọn dẹp nhưng chỉ vài tuần sau ổ đĩa lại đầy, thì vấn đề không còn đơn giản là “quên dọn”. Đây có thể là dấu hiệu lượng dữ liệu thực tế đã vượt quá dung lượng của gói VPS đang thuê. Khi đó, nâng cấp dung lượng sẽ hợp lý hơn nhiều so với việc phải lặp lại thao tác dọn dẹp mỗi tháng.

Giới hạn Inode trên VPS là gì?

Đây là phần dễ gây bối rối nhất, bởi nó hoạt động khác với cách chúng ta thường nghĩ về dung lượng ổ đĩa.

Một tình huống khá phổ biến là VPS vẫn còn trống 20GB. Kiểm tra bằng df -h cho thấy dung lượng vẫn còn rất nhiều, nhưng khi tạo file mới lại xuất hiện lỗi “No space left on device”, giống hệt trường hợp ổ đĩa đã hết dung lượng.

Nguyên nhân có thể là VPS đã chạm một giới hạn khác: inode.

Hiểu đơn giản, hệ thống không chỉ giới hạn theo dung lượng dữ liệu tính bằng byte mà còn giới hạn theo số lượng file. Mỗi file hoặc thư mục trên hệ thống, dù chỉ có dung lượng 1KB hay lên tới 1GB, đều chiếm một inode.

Mỗi VPS được cấp một số lượng inode cố định, tùy thuộc vào dung lượng ổ đĩa và định dạng filesystem khi khởi tạo. Khi số inode này đã được sử dụng hết, hệ thống không thể tạo thêm file mới, dù dung lượng tính theo byte vẫn còn trống rất nhiều.

Đây chính là VPS giới hạn inode, một vấn đề mà nhiều người quản trị chỉ biết đến khi VPS bắt đầu báo lỗi.

Trường hợp thường gặp nhất là hàng loạt file nhỏ tích lũy theo thời gian. Ví dụ như cache hoặc session file, trong đó mỗi phiên truy cập website tạo ra một file session nhỏ; mail queue tồn đọng, khi mỗi email chưa gửi được tương ứng với một file riêng; hoặc thư mục cache của CMS/plugin sinh ra hàng trăm nghìn file nhỏ nhưng không có cơ chế tự dọn.

Để kiểm tra inode, sử dụng lệnh:

df -i

Chú ý đến cột IUse%. Nếu chỉ số này gần 100% trong khi cột Use% về dung lượng byte vẫn còn thấp, thì VPS đã hết inode chứ không phải hết dung lượng ổ đĩa.

Cách xử lý là xóa hàng loạt các file nhỏ đang chiếm inode. Nên ưu tiên hai nhóm thường gây ra nhiều file nhất: cache/session file và mail queue tồn đọng.

Với cache/session, hãy dọn định kỳ các thư mục cache của ứng dụng hoặc CMS. Với mail queue, xử lý các email chưa gửi được nếu những email này không còn cần giữ.

Vì đây là thao tác xóa hàng loạt file hệ thống, cần xác định chính xác thư mục trước khi xóa và áp dụng các lưu ý đã nêu ở phần xóa dữ liệu tại [LINK: Cách Reset/Khôi Phục Cài Đặt Gốc VPS].

Về lâu dài, nếu đặc thù ứng dụng của bạn như mail server, website có nhiều lượt truy cập hoặc hệ thống sinh ra nhiều file nhỏ khiến VPS liên tục chạm ngưỡng inode dù dung lượng byte vẫn còn dư dả, đây là dấu hiệu nên nâng cấp lên gói VPS có hạn mức inode cao hơn.

Cách này hợp lý hơn so với việc liên tục lặp lại thao tác dọn dẹp thủ công, bởi vấn đề lúc này nằm ở nhu cầu sử dụng thực tế đã vượt quá cấu hình hiện tại.

Với người quản lý nhiều VPS cùng lúc, việc phải nhớ kiểm tra định kỳ cả dung lượng lẫn inode trên từng máy rất dễ bị bỏ sót.

Một hướng đáng chú ý gần đây là các nền tảng giám sát tập trung như OneDash, cho phép theo dõi dung lượng ổ đĩa trên nhiều VPS cùng lúc từ một dashboard duy nhất, thay vì phải SSH vào từng máy rồi chạy lệnh kiểm tra riêng lẻ.

Tuy nhiên, cần cân nhắc rằng nền tảng này còn khá mới và chưa có nhiều đánh giá dài hạn từ cộng đồng. Nếu bạn chỉ quản lý một vài VPS, việc kiểm tra thủ công định kỳ vẫn hoàn toàn đủ dùng và chưa nhất thiết phải sử dụng thêm công cụ.

Ba việc trên – xem đúng dung lượng đang chiếm ở đâu, dọn rác đúng chỗ và hiểu rõ giới hạn inode – đủ để xử lý phần lớn trường hợp VPS báo đầy ổ cứng.

Nếu đã dọn dẹp đúng cách mà dung lượng hoặc inode vẫn liên tục chạm ngưỡng chỉ sau một thời gian ngắn, đó là tín hiệu rõ ràng cho thấy nhu cầu thực tế đã vượt quá cấu hình VPS đang thuê.

Lúc này, nâng cấp lên gói VPS dung lượng cao hơn sẽ hợp lý hơn nhiều so với việc phải dọn dẹp thủ công lặp đi lặp lại mỗi tháng.

Leave a Reply