Làm thế nào kích thước khối hệ thống tập tin hoạt động?


11

Tất cả các hệ thống tệp Linux có kích thước khối 4kb. Giả sử tôi có 10mb dung lượng đĩa cứng. Điều đó có nghĩa là tôi có sẵn 2560 khối và giả sử tôi đã sao chép 2560 tệp mỗi tệp có kích thước 1kb. Mỗi khối 1 kb sẽ chiếm 1 khối mặc dù nó không lấp đầy toàn bộ khối.

Vì vậy, toàn bộ đĩa của tôi đã được lấp đầy nhưng tôi vẫn còn 2560x3kb dung lượng trống. Nếu tôi muốn lưu trữ một tập tin khác nói 1mb thì hệ thống tập tin có cho phép tôi lưu trữ không? Nó sẽ viết trong không gian trống còn lại trong các khối riêng lẻ? Có bất kỳ khái niệm giải quyết vấn đề này?

Tôi sẽ đánh giá cao một số làm rõ. Cảm ơn trước


OK, 2560 tệp, mỗi tệp là 1kb, tức là 2560 * 0,001 mb = 2,56 mb. Mỗi tệp 1kb sẽ chiếm khoảng 1/4 khối, vì 1000 * 4 = 4000, phải không? Và kích thước khối là 4096, vì vậy bạn cần 4 tệp để điền vào khối. Tập tin 1mb, sau đó, sẽ tiêu tốn của bạn 1000000/4096 = 244 khối.
Sergiy Kolodyazhnyy

Câu trả lời:


3

Kích thước khối mặc định là 512 byte kể từ Linux đầu tiên. Ngoại trừ cho đến gần đây kích thước khối 4k được giới thiệu để phục vụ cho kích thước ngày càng tăng của đĩa. Điều này thực sự thậm chí gần như được quyết định bởi phần cứng đĩa (xem thêm: /unix/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd ).

Tuy nhiên, đối với câu hỏi cụ thể của bạn: bạn đã đúng rằng tất cả các tệp đều lãng phí các byte không được sử dụng của khối cuối cùng trên nhiều loại hệ thống tệp, điều này đặc biệt lãng phí cho các tệp nhỏ. Nhưng btfrs và reiserfs dường như có thể đối phó, dựa trên https://en.m.wikipedia.org/wiki/Block_suballocation


1
  1. Các hệ thống tệp có thể có kích thước khối từ 512 đến (thường) 65536 byte. Kích thước khối có thể được chỉ định là tùy chọn mkfs.xxx. Kích thước khối mặc định trong hầu hết các hệ thống tệp Linux - 4096 byte.

  2. Một số hệ thống tập tin hỗ trợ đóng gói đuôi và / hoặc phân bổ subblock. ext2 / 3/4 - không, xfs - không. Nếu bạn dự định lấp đầy một phân vùng bằng một vài tệp nhỏ, bạn có thể giảm không gian "đuôi" bị lãng phí bằng cách thu nhỏ kích thước khối thành 512 hoặc 1024.

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.