Sự khác biệt giữa kích thước khối và kích thước cụm


20

Tôi có một câu hỏi liên quan đến kích thước khối và kích thước cụm. Liên quan đến những gì tôi đã đọc về điều đó tôi giả sử như sau:

  • Kích thước khối là kích thước vật lý của một khối, chủ yếu là 512 byte. Không có cách nào để thay đổi điều này.
  • Kích thước cụm là kích thước tối thiểu của một khối được HĐH đọc và ghi được. Nếu tôi tạo một hệ thống tập tin mới, ví dụ ext3, tôi có thể chỉ định kích thước khối tối thiểu này bằng khóa -b. Hầu như tất cả các chương trình như dumpe2fs, mke2fs đều sử dụng kích thước khối làm tên cho kích thước cụm.

Nếu tôi có đầu ra sau:

$ stat test
File: `test'
Size: 13            Blocks: 4          IO Block: 2048   regular file
Device: 700h/1792d  Inode: 15          Links: 1

Có đúng là kích thước là không gian thực tế tính bằng byte, các khối là các khối được sử dụng vật lý (512 byte cho mỗi khối) và khối IO liên quan đến kích thước khối được chỉ định khi tạo FS?

Câu trả lời:


26

Tôi nghĩ bạn đang bối rối, có thể là do bạn đã đọc một số tài liệu sử dụng thuật ngữ khác nhau. Các thuật ngữ như kích thước khối của kích thước Nhóm và kích thước cụm của Nhóm không có ý nghĩa phổ quát, ngay cả trong bối cảnh của tài liệu hệ thống tệp.

Hệ thống tập tin

Đối với ext2 hoặc ext3 , tình huống tương đối đơn giản: mỗi tệp chiếm một số khối nhất định . Tất cả các khối trên một hệ thống tệp nhất định có cùng kích thước, thường là một trong 1024, 2048 hoặc 4096 byte. Một tệp¹ có kích thước nằm giữa các khối N cộng với một khối byte và khối N + 1 chiếm khối N + 1. Kích thước khối đó là những gì bạn chỉ định với mke2fs -b. Không có khái niệm riêng biệt của các cụm.

Hệ thống tệp FAT được sử dụng cụ thể bởi MS-DOS và các phiên bản đầu tiên của Windows có phân bổ không gian đơn giản tương tự. Những gì ext2 gọi các khối, các cụm gọi FAT ; khái niệm là như nhau.

Một số hệ thống tệp có sơ đồ phân bổ tinh vi hơn: chúng có các khối có kích thước cố định, nhưng có thể sử dụng cùng một khối để lưu trữ vài byte cuối cùng của nhiều hơn một tệp. Điều này được gọi là phân vùng khối ; ReiserfsBtrfs làm điều đó, nhưng không phải ext3 hoặc thậm chí ext4.

Tiện ích

Các tiện ích Unix thường sử dụng từ khối block nghiêm trọng có nghĩa là một đơn vị có kích thước tùy ý, thường là 512 byte hoặc 1kB. Việc sử dụng này không liên quan đến bất kỳ hệ thống tập tin hoặc phần cứng đĩa cụ thể. Trong lịch sử, khối 512B đã xuất hiện do các đĩa và hệ thống tệp tại thời điểm đó thường hoạt động trong các khối 512B, nhưng việc sử dụng hiện đại chỉ là tùy ý. Các tiện ích và giao diện unix truyền thống đôi khi vẫn sử dụng các khối 512B, mặc dù các khối 1kB hiện nay thường được ưa thích hơn . Bạn cần kiểm tra tài liệu của từng tiện ích để biết kích thước của khối đang sử dụng (một số có công tắc, ví dụ du -Bhoặc df -Btrên Linux).

Trong stattiện ích GNU / Linux , blockshình là số khối 512B được sử dụng bởi tệp. Các IO Blockcon số là kích thước ưa thích cho tập tin đầu vào-đầu ra, đó là về nguyên tắc không liên quan nhưng thường là một dấu hiệu cho thấy kích thước khối hệ thống tập tin nằm bên dưới (hoặc cụm kích thước nếu đó là những gì bạn muốn gọi nó). Tại đây, bạn có một tệp 13 byte, đang chiếm một khối trên hệ thống tệp ext3 với kích thước khối là 2048; do đó, tập tin chiếm 4 đơn vị 512 byte (được gọi là khối khối Cameron bằng stat).

Đĩa

Hầu hết các đĩa trình bày một giao diện cho thấy đĩa như một loạt các lĩnh vực . Đĩa chỉ có thể ghi hoặc đọc toàn bộ một khu vực, không phải các bit hoặc byte riêng lẻ. Hầu hết các đĩa cứng có các cung từ 512 byte, mặc dù các đĩa 4kB-sector đã bắt đầu xuất hiện vài năm trước.

Kích thước khu vực đĩa không liên quan trực tiếp đến kích thước khối hệ thống tập tin, nhưng có một khối là toàn bộ số lĩnh vực sẽ tốt hơn cho hiệu suất.

¹ Ngoại lệ: thưa thớt file tiết kiệm không gian.


2
Cảm ơn bạn đã làm rõ. Tôi đến đây do sự nhầm lẫn như vậy gây ra bởi công cụ ext2fsd cho windows. Các tùy chọn dòng lệnh của họ bắt đầu: ´UsUsage: mke2fs [-c | -l filename] [-b block-size] [-C cluster-size] ... ọ, bạn thấy đấy, cả khối và kích thước cụm ...
Bernhard Hiller

Tôi cũng muốn biết sự khác biệt giữa kích thước khối và kích thước cụm của mke2fs. Có ai biết không ?
X.LINK

1
@ X.LINK Nó được giải thích trong trang người đàn ông. Kích thước cụm được sử dụng bởi tính năng bigalloc , nếu tôi hiểu chính xác sẽ giúp truy cập vào các tệp lớn nhanh hơn với chi phí lưu trữ lãng phí hơn.
Gilles 'Somali dừng tà ác'
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.