Một đứa trẻ mồ côi inode là gì? [đóng cửa]


16

Tôi hiểu thế nào là inode nhưng định nghĩa chính xác của inode mồ côi là gì? Tôi không thực sự hiểu điều đó có nghĩa là gì.

CẬP NHẬT

Đã có lúc một máy chủ mà tôi đang quản lý hết inodes nhưng khi tôi thực hiện một df -h nó cho tôi thấy rằng máy chủ chỉ có 60% dung lượng sử dụng hết. Tôi đoán điều này là do các cô gái mồ côi. Làm thế nào có thể sử dụng hết tất cả các nút nhưng vẫn còn "khoảng trống" trên máy chủ? Bạn có thể giải quyết điều này trong câu trả lời của bạn?


1
Cập nhật của bạn thực sự là một câu hỏi riêng biệt, liên quan đến sự khác biệt giữa dung lượng lưu trữ của hệ thống tệp và số lượng nút mà nó có thể chứa; bạn nên hỏi nó như một câu hỏi riêng biệt
Stephen Kitt

Chạy df -isẽ hiển thị thông tin tương ứng cho các nút.
Kusalananda

Ổ đĩa trống / không gian sử dụng chỉ tương quan một chút với các nút miễn phí / được sử dụng. Một đĩa có nhiều tệp nhỏ sẽ hết inodes trước khi hết dung lượng.
Kusalananda

Câu trả lời:


17

Một inode mồ côi là một inode không được gắn vào một mục nhập thư mục trong hệ thống tập tin, có nghĩa là nó không thể đạt được.

Inodes mồ côi có thể xuất hiện vì một số lý do:

  • các tệp tạm thời bị xóa nhưng vẫn mở (một thông lệ chung) chiếm các nút trên hệ thống tệp; nếu hệ thống khởi động lại mà không tắt đúng cách, các nút này vẫn còn và mồ côi
  • tham nhũng hệ thống tập tin có thể làm hỏng một thư mục mà không ảnh hưởng đến các nút của các tập tin mà thư mục chứa; các nút này sau đó mồ côi

fscktạo các mục thư mục mới cho inodes mồ côi lost+found.


Cảm ơn câu trả lời của bạn @ stephen-kitt. Đã có lúc một máy chủ mà tôi đang quản lý hết inodes nhưng khi tôi làm điều df -hđó thì nó cho tôi thấy rằng máy chủ chỉ còn 60% dung lượng sử dụng. Tôi đoán điều này là do các cô gái mồ côi. Làm thế nào có thể sử dụng hết tất cả các nút nhưng vẫn còn "khoảng trống" trên máy chủ?
ninjacoder

3

Một inode mồ côi là một tập tin có tên là Semi-xóa xóa: nó không có thêm mục nhập thư mục, nhưng nó vẫn mở trong một số quy trình, do đó dữ liệu vẫn còn trên đĩa. Khi quá trình cuối cùng mở tệp này sẽ đóng nó, tệp sẽ bị xóa hoàn toàn và inode mồ côi sẽ biến mất.

Một inode mồ côi sử dụng cả inode và không gian đĩa để lưu trữ tệp, vì vậy cả hai dfdf -itính nó là được sử dụng. Do đó, nếu đĩa được báo cáo là đầy đủ nhưng dfhiển thị một số khoảng trống còn lại, điều này không thể liên quan đến các nút in mồ côi. Các nút mồ côi là một trong những lý do tại sao việc sử dụng hệ thống tệp được báo cáo bởi dfvà tổng kích thước tệp được báo cáo ducó thể khác nhau; xem Tại sao có nhiều cách khác nhau để đo mức độ sử dụng đĩa? để biết thêm chi tiết về chủ đề này.

Nhiều hệ thống tệp dành riêng một số lượng nút cố định khi hệ thống tệp được tạo, có nghĩa là bạn có thể có nhiều nhất là nhiều tệp trên hệ thống tệp. Số lượng các nút là một sự thỏa hiệp giữa không gian được sử dụng bởi các nút và khả năng tạo nhiều tệp. Nếu không còn chỗ trống trên hệ thống tệp, thì bạn không thể phát triển các tệp hiện có hoặc tạo tệp mới (có lẽ bạn vẫn có thể tạo một số tệp trống trong các thư mục hiện có, miễn là chúng chỉ lấp đầy các khối được sử dụng một phần chứ không phải yêu cầu một khối mới được phân bổ). Nếu không còn inode miễn phí, bạn có thể phát triển các tệp hiện có nhưng bạn không thể tạo tệp mới.

Nhân báo cáo lỗi tương tự cho các ứng dụng cho dù hệ thống tập tin đã đầy do thiếu không gian dữ liệu hay do thiếu inodes. Vì vậy, bạn có thể nhận được một lỗi đĩa đầy đủ trên đĩa cứng ngay cả khi còn một khoảng trống dữ liệu, nếu thao tác yêu cầu một nút inode mới và bảng inode đã đầy. Chạy df -iđể biết có bao nhiêu nút được sử dụng và còn lại bao nhiêu.


1
  • Một inode mồ côi là một trong đó đã được bỏ liên kết nhưng vẫn mở trong một quy trình khác. Ví dụ, chạy tail -f {file}trong một vỏ tiếp theo trong một vỏ rm {file}khác. Hệ thống tập tin theo dõi những thứ này để chúng có thể được dọn sạch khi quá trình thoát.

  • Điều đó hoàn toàn bình thường bất cứ khi nào bạn có một cuộc tháo gỡ ô uế. Chúng chỉ đơn giản là các tệp đã bị xóa, nhưng vẫn mở khi fs được đọc lại chỉ đọc. Chúng không phải là nguyên nhân, mà chỉ là một triệu chứng.


Đối với vấn đề inode, hãy chạy truy vấn này để có được danh sách bao nhiêu inodes đang được sử dụng trong tất cả các thư mục

for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

Bạn có thể tham khảo cái nàycái này để biết thêm phương pháp để kiểm tra.


@ninjacoder bạn có thể kiểm tra câu trả lời được cập nhật của tôi cho vấn đề inode của bạn
Rahul
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.