No space left on device

Hoàng Tuấn
2 min readJul 24, 2018

Vào một ngày làm việc đẹp trời, khi bạn đang phăm phăm lướt những ngón tay điêu luyện của mình trên bàn phím laptop với những câu lệnh thần thánh như $ cd /home/projec... ( with Tab completion) thông qua giao diện SSH Terminal của Linux Dev Server thì bỗng nhiên nhận được một thông báo thân thiện, đại loại như “You cannot create temp file for here-document: No space left on device”.

Ngay lập tức bạn nhớ ra hôm qua mình vừa download 8GB dữ liệu full — không che về Server, không lẽ ổ cứng sắp hết dung lượng? Không chút chần chừ, bạn kiểm tra dung lượng ổ đĩa cứng máy chủ với lệnh $ df -h.

Đậu phộng! kết quả câu lệnh trên cho thấy phân vùng root mới chỉ sử dụng hết 85% thôi mà. Chuyện gì đang xảy ra vậy?

Ngần ngừ hồi lâu, bạn đành kìm nén sự tiếc nuối để xóa sạch 8GB dữ liệu vừa download hôm qua đi… nhưng kết quả vẫn nhận được thông báo thân thương “…No space left on device”…

Đậu xanh! đến nước này thì đành nhờ anh GuGờ vậy. May quá, vừa trao đổi với anh ấy một lúc thì bạn nhận được từ khóa inode và câu lệnh $ df -i

Chạy thử câu lệnh check inode luôn và ngay, bạn nhận được kết quả có phân vùng đã chiếm 100% số lượng inode khả dụng của hệ thống. Kiểm tra sâu hơn bạn phát hiện ra sự tồn tại của một folder maps nào đó tuy disk size không chiếm là bao, nhưng inode lại chiếm đến hơn 80%.

Inode là cái quái gì vậy? Bạn lại quay sang hỏi anh GuGờ, và không để bạn phải chờ lâu, anh ấy phán một câu xanh rờn: “chú vào đây mà tìm hiểu”. Đọc thì dài dòng, nhưng bạn tổng hợp ra được mấy ý sau:

  • Inode is a data structure in a Unix-style file system that describes a filesystem object such as a file or a directory
  • Each inode stores the attributes (owner, size, access mode, permissions, file type…) and disk block location(s) of the object’s data

Từ đó, bạn suy ra mệnh đề:

Một file/folder rỗng có thể không chiếm dung lượng disk, nhưng nó vẫn có các thuộc tính cần lưu trữ, do vậy nó vẫn chiếm dụng inode của hệ thống.

So cool! giờ là lúc action, bạn thẳng tay rm -rf thư mục maps nói trên và kiểm tra lại số inode khả dụng trên hệ thống.

Wow! số inode chiếm dụng đã giảm đi còn 40%, và nỗi ám ảnh “…No space left on device” cũng biết mất từ đó…

--

--