Hạn chế của việc tăng số lượng nút trong EXT4


8

Tôi hiện đang sử dụng backintimeđể chụp "ảnh chụp nhanh" của hệ thống tệp của mình. Nó tương tự như rsnapshottrong đó, làm cho các liên kết cứng đến các tệp không thay đổi. Gần đây tôi đã hết inodes trên EXT4hệ thống tập tin của tôi . df -hitiết lộ tôi đã sử dụng 9,4 triệu inodes. Số lượng lớn các thư mục hiện tại nhân với số lượng ảnh chụp nhanh cộng với số lượng tệp hiện tại cho thấy rằng trên thực tế tôi có thể đang sử dụng 9,4 triệu nút.

Từ những gì tôi hiểu, EXT4hệ thống tập tin có thể hỗ trợ khoảng 2 ^ 32 nút. Tôi đang xem xét việc định dạng lại phân vùng để sử dụng tất cả 4 tỷ hoặc hơn, nhưng tôi lo ngại rằng đây là một ý tưởng tồi. Những nhược điểm của việc có quá nhiều nút trong một EXT4hệ thống tập tin là gì? Có sự lựa chọn tốt hơn về hệ thống tập tin cho một ứng dụng như thế này không?


Lưu ý rằng các liên kết cứng không sử dụng hết các nút, vì vậy đây có thể không phải là lỗi của backintime.
Jakob

Câu trả lời:


6

Đó là một ý tưởng thực sự tồi tệ. Mỗi inode tiêu thụ 256 byte (có thể được cấu hình là 128). Do đó, chỉ các nút sẽ tiêu tốn 1TiB không gian.

Các hệ thống tệp khác như btrfs có thể tạo ra các nút động. Sử dụng một trong số họ thay thế.


Tôi hơi miễn cưỡng khi sử dụng btrfs cho các bản sao lưu của mình vì nó vẫn không ổn định về mặt kỹ thuật. Là btrfs về cơ bản tốt hơn reiserfs hoặc xfs cho loại sử dụng này?
StrongBad

btrfs hỗ trợ ảnh chụp nhanh ở cấp hệ thống tập tin. Ngoại trừ điều đó tôi không thể so sánh nó với reiserfs và xfs (thậm chí không chắc chắn về xfs và ảnh chụp nhanh). Tôi chưa sử dụng btrfs nhưng ấn tượng của tôi là nó không được coi là không ổn định nữa.
Hauke ​​Laging

1
Tôi không muốn sử dụng brtfs, nó vẫn không phải là một trình diễn chắc chắn. Có, nó đã được cải thiện, nhưng ext4 vẫn là sở thích của tôi.
JM Becker

@HaukeLaging Làm thế nào để bạn biết kích thước chính xác của từng nút? Cảm ơn
Bionix1441

1
@ Bionix1441 Tất cả các nút có cùng kích thước:dumpe2fs -h /dev/whatever | grep 'Inode size'
Hauke ​​Laging 22/2/18

3

Tôi thực sự không thể nhấn mạnh điều này đủ, đừng tạo ra một khối thuyền!

Đầu tiên fsckthời gian chạy của bạn có thể được kéo dài theo cấp số nhân, mặc dù một số trong những lo ngại đó đã được giải quyết trong ext4. Quan trọng hơn, các nút không phải là yếu tố giới hạn số tập tin duy nhất, có khả năng không thể sử dụng tất cả các nút đó. Đây không chỉ là thực tế mà nói, nó thực sự có thể là không thể.

Một đoạn trích từ trang mkfs man,

-i byte-per-inode Chỉ định tỷ lệ byte / inode. mke2fs tạo ra một nút cho mọi byte không gian trên mỗi byte trên đĩa. Tỷ lệ byte trên mỗi inode càng lớn, số lượng inode sẽ được tạo ra càng ít. Giá trị này thường không nên nhỏ hơn kích thước khối của hệ thống tập tin, vì trong trường hợp đó, nhiều nút sẽ được tạo ra hơn bao giờ có thể được sử dụng. Được cảnh báo rằng không thể mở rộng số lượng nút trên hệ thống tệp sau khi được tạo, vì vậy hãy cẩn thận khi quyết định giá trị chính xác cho tham số này.

Khi tạo hệ thống tệp mới của OP, nói một cách thực tế, OP nên bắt đầu tính các con số đến mức tối đa byte-per-inode = blocksize .... đối với mọi người đọc điều này sau đó, OP có một trường hợp rất bất thường khi anh ta có một tập tin số lượng lớn.


1
Nhưng nếu bạn có một kích thước khối nhỏ thì việc đặt byte-per-inode thành blockize sẽ tạo ra rất nhiều nút phải không? Liên quan đến cảnh báo trong câu nắm tay của bạn - những rủi ro là gì? Chỉ cần hiệu suất fsck?
UpTheCux 17/03/2015

+ 1 bạn, vâng, nó sẽ tạo ra rất nhiều nút, IMO thật ngu ngốc, nhưng nó được hướng vào OP ... vì vậy tôi muốn cung cấp một mức tối đa về mặt lý thuyết mà ít nhất có thể được sử dụng ... vì anh ta Vì vậy, ngoài sâu, anh ta sẽ có nhiều hơn những gì anh ta có thể sử dụng trong lý thuyết. Đó là ... tôi không bao giờ đi nhỏ hơn blocksize = Byte mỗi inode, không có vấn đề gì.
JM Becker

O và yea, đối với hầu hết các hệ thống tệp, như DB và không có gì, tôi có các tệp lớn không bao giờ nói nhiều hơn vài nghìn. Vì vậy, tôi thích sử dụng -Tlargefile4, hoặc thậm chí Tlargefilecho số lượng tốt hơn inodes. Quá nhiều inodes có chi phí sâu chắc chắn, chúng chiếm không gian và tin tôi rằng hiệu suất fsck là nghiêm trọng. Thực tế chúng ta đang nói về sự chậm lại theo cấp số nhân, như 30 giây so với 2 ngày ... và đây là ràng buộc I / O. Chưa kể đến việc làm chậm việc liệt kê tập tin, lập chỉ mục ... vv cho dù ext4 có tốt đến đâu, nhiều nút hơn là chỉ mục, mặc dù nó tốt hơn nhiều so với ext2 / 3.
JM Becker

Vì vậy, đừng quá sợ hãi, tôi chỉ muốn phản bác ý tưởng của OP rằng đây là cách nào đó miễn phí .. MỌI THỨ đều có chi phí, vì vậy hãy luôn cân nhắc những ưu và nhược điểm. Đối với hầu hết số tiền mặc định là số tiền hoàn toàn có thể chấp nhận được, đặc biệt là đối với ổ đĩa hệ điều hành ... và tác động hiệu suất nói chung là tối thiểu theo cách nào đó ... nhưng điều đó giả định rằng bạn không tải vô số số loại inodes.
JM Becker
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.