Tại sao ext2 và người kế nhiệm không cần phân mảnh?


Câu trả lời:


9

Một cách mà hệ thống tệp ext4 kiểm tra phân mảnh, là với quá trình phân bổ bị trì hoãn (chế độ phân bổ mặc định của ext4).

Phân bổ bị trì hoãn hoạt động bằng cách trì hoãn ánh xạ các khối dữ liệu tệp mới ghi vào các khối đĩa trong hệ thống tệp cho đến thời gian ghi lại.

Điều này hoạt động bằng cách phân bổ hầu hết các khối cho một tệp cùng một lúc, khi tổng số khối (hoặc ít nhất là một sân bóng) trong mỗi tệp được biết. Điều này cho phép bộ cấp phát khối ( mballocđược đề cập trong câu trả lời của MMK) thực hiện công việc tốt hơn là tìm một không gian trống có kích thước phù hợp để đặt tệp.


Hãy nhớ rằng đây thực sự chỉ là một tính năng của trình điều khiển ext4 . Bây giờ, tôi không biết nếu rất kỹ thuật nói rằng không thể gắn kết fs cũ với tùy chọn như vậy (ít nhất là một phần ). Cho đến bây giờ DELALLOC chỉ được đánh dấu là ext4 .
mirh

8

Trong hệ thống tệp ext3, có một bộ cấp phát khối cho đĩa cho mỗi khối, và do đó, hoàn toàn có khả năng xảy ra sự phân mảnh.

Tuy nhiên, trong hệ thống tệp ext4 có một bộ cấp phát nhiều khối có thể trì hoãn việc ghi các khối vào đĩa, do đó, nó có thể phân bổ nhiều khối cùng một lúc trong một khối đĩa để cho phép ghi liền kề - và vì vậy, ít có khả năng xảy ra sự phân mảnh (vẫn có thể xảy ra, chỉ là ít có khả năng hơn)


6

Ít nhất là đối với Ext2 (và Ext3 tôi nghĩ, mặc dù tôi không chắc lắm), không có gì trong định dạng / cấu trúc trên đĩa có thể ngăn chặn sự phân mảnh.

Việc thiếu nhu cầu chống phân mảnh sẽ nằm ở cấp độ triển khai, sẽ thay đổi tùy theo từng hệ điều hành. Đó là, tùy thuộc vào việc triển khai, một tệp trong Ext2 có thể hoặc không bị phân mảnh.

Nếu phân mảnh được tránh, điều đó có thể sẽ do phân bổ các khối vật lý bị trì hoãn. Đó là, ở một mức độ triển khai nào đó, hệ thống tệp sẽ lưu trữ dữ liệu (và truy cập nó thông qua số khối logic) cho đến khi được ghi / cam kết vào đĩa. Khi dữ liệu cuối cùng được ghi vào đĩa, các khối vật lý phải được phân bổ. Thuật toán phân bổ có thể (hoặc không) phân bổ một số khối vật lý có sẵn liền kề cho dữ liệu.

Hi vọng điêu nay co ich.


Thực sự có một tiện ích e2defrag và nó có thể cần thiết (trên các đĩa khá đầy đủ với nhiều tệp được ghi ngẫu nhiên). Việc cấp phát chậm của ext4 làm cho điều này thậm chí ít khả năng hơn. Nhưng ngay cả ext2 cũng có một số loại phân bổ / ghi bị trì hoãn, khiến cho việc chạy một tiện ích chống phân mảnh ít hơn so với phân bổ nguyên thủy của MS-DOS® đã làm.
mirabilos
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.