Linux - Trợ giúp, tôi sắp hết mực!


16

Tôi có một hệ thống tập tin có rất nhiều tập tin nhỏ. Hiện tại khoảng 80% các nút được sử dụng (tôi đã kiểm tra df -i), tuy nhiên chỉ có 60% dung lượng đĩa được sử dụng. Làm cách nào tôi có thể 'tăng' số lượng nút? Nếu đó chỉ là dung lượng đĩa, tôi biết rằng tôi chỉ có thể tăng kích thước của đĩa (đĩa này nằm trên LVM). Nếu tôi tăng kích thước của đĩa, điều đó có khiến tôi có nhiều nút hơn không?

Tôi sẵn sàng phát triển hệ thống tập tin mà đĩa này được bật, nếu điều đó có ích.

Câu trả lời:


14

người đàn ông mke2fs

Bạn sẽ thấy một -N cho số lượng nút

Vì vậy, bạn có thể chỉ định nó khi bạn định dạng một phân vùng mới. Không hữu ích ngay bây giờ hả?

Tune2fs, điều chỉnh hệ thống tập tin, dường như không có cách nào để thêm nhiều nút.

Nhưng có lẽ ext3 hoặc 4 làm điều này, và ai đó biết ....?

Vì vậy, bây giờ bạn có một tùy chọn: sao lưu, định dạng lại phân vùng, khôi phục.


1
vâng, nó tốt, nhưng không phải vì nó reiserfs, mà bởi vì nó hỗ trợ phân bổ inode động (được hỗ trợ bởi mọi hệ thống tập tin mới)

1
Reiser là tuyệt vời cho hàng tấn các tập tin nhỏ bé. Tôi sẽ đi với điều đó.
Xorlev

Tuy nhiên tôi sẽ đảm bảo bạn có bản sao lưu khi sử dụng Reiser. Tôi (bản thân tôi) và những người khác đã mất dữ liệu do reiserFS trong những năm trước. Tôi không tin tưởng nó nữa.
Anony-Mousse -Reinstate Monica

ext3 dường như không có cách nào cho nó
kagali-san

15

Để trả lời câu hỏi ban đầu, mặc dù có lẽ đã muộn đối với người hỏi - vâng, tăng EXT2 / 3 trên LVM2 cũng sẽ tăng giới hạn inodes.

Chỉ cần có một phân vùng kích thước 1G với giới hạn 65k inodes. Sau

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

... giới hạn inodes của tôi bây giờ là 128k.


1
Wow, tôi gần như tuyệt vọng, nhưng tìm thấy câu trả lời của bạn và quyết định thử, và nó đã hoạt động. Đây chắc chắn là câu trả lời được chấp nhận! Hoạt động cho LVM cũng như cho các máy ảo :)
vadipp

12

Nếu bạn biết rằng các tệp nhỏ sẽ chiếm dung lượng ổ đĩa của bạn, bạn nên sử dụng một FS có phân bổ inode động, như ReiserFS hoặc bất kỳ FS hiện đại mới nào (XFS, JFS) thay vì EXT2 / 3/4 (mà tôi cho rằng bạn đang sử dụng , bạn không nói rằng).

Di chuyển hệ thống tập tin có lẽ là một lựa chọn tốt trong tình huống của bạn.


1
Nếu bạn biết rằng các tệp nhỏ sẽ ăn dung lượng đĩa của bạn, bạn nên thực hiện một số điều chỉnh . Mỗi hệ thống tập tin có ưu và nhược điểm.
Franklin Piat

3

Là một điểm dừng, gắn kết một hệ thống tập tin mới và cp / rm / ln-s một số phân cấp fs của bạn ở đó. Bây giờ bạn có một vài nút dự phòng! Bạn không thể mv tập tin giữa hai nút, vì vậy hãy cẩn thận phá vỡ những thứ cần làm điều đó, nhưng đối với nhiều ứng dụng, điều này có thể minh bạch.

Sau đó thực hiện một fs mới, theo lời khuyên của Paul, và di chuyển vào đó.


1
Tất nhiên bạn có thể mv tập tin giữa hai hệ thống tập tin - một mv là đường ngữ nghĩa hiệu quả cho cp + rm. Bạn không thể liên kết cứng giữa hai hệ thống tập tin. Có phải ý của bạn là thứ khác?
Daniel Lawson

@Daniel: Ý tôi là cuộc gọi hệ thống đổi tên () và tôi nghĩ rằng việc sử dụng mv làm đường cho cp / rm là một cách cẩu thả, vì vấn đề với ngữ nghĩa xung quanh các liên kết tượng trưng. Tôi nên chỉnh sửa câu trả lời này - có một vài nơi không rõ ràng lắm.
Charles Stewart

2

Ext4 gặp phải vấn đề tương tự, nếu bạn tạo một phân vùng nhỏ và có rất nhiều tệp nhỏ, bạn sẽ hết inodes và nếu bạn có flex_bgcác tính năng bạn không thể sử dụng tune2fsđể tăng inodes.

Cá nhân tôi sẽ đi với ext4 trên bất kỳ phiên bản rieserfs nào, chỉ cần làm như sau khi định dạng:

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

Định dạng theo cách này sẽ cung cấp cho bạn 33160 inodes trên phân vùng khởi động 512M.

Tôi nói điều này như một người đã sử dụng reiserfs trong nhiều năm, hỗ trợ kernel không tốt như ext * và hệ thống tập tin bị phân mảnh theo thời gian và bị chậm.


-1

Đi cho resiserfs hoặc bất kỳ fs khác không có giới hạn inode. Đặc biệt liên quan đến các tệp nhật ký, có lẽ bạn có thể gói một số tấn tệp nhỏ chưa sử dụng vào một tệp tar lớn hơn để giải phóng một lượng inodes khá lớn =)

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
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.