Cần chú ý rằng không có giới hạn trên cho kích thước của các file được trình bày theo cách này. Trong trường hợp thiếu địa chỉ nén, mỗi cặp cần có 2 số 64-bít trong tổng số 16 byte. Tuy nhiên một cặp có thể tượng trưng cho một triệu hoặc hơn nữa các block đĩa liên tiếp. Trên thực tế, một file 20 Mb bao gồm 20 Run của 1 triệu block 1 Kb, mỗi Run được đặt trong một record can dien tu.
Khi lưu trữ một file có kích thước lớn (số lượng block lớn) hoặc thông tin của file có sự phân mảnh lớn thì các lưu trữ các block của nó trong MFT được trình bày như trong hình sau: va mang trinh, do choi tinh duc, am dao gia phau thuat tham my
Trong hình sau ta thấy record cơ sở của file nằm ở record MFT 102. Nó có quá nhiều Run trên một record MFT, vì thế hệ thống cần phải có nhiều record mở rộng, ở đây là thêm 2 record mở rộng, và đặt chúng vào record cơ sở. Phần còn lại của record cơ sở được sử dụng cho k Run đầu tiên.
Khi tất cả các byte trong record 102 đã được dùng hết, thì các run được tích lũy sẽ tiếp tục với record MFT 105. Khi nhiều run được sắp xếp vào hết trong record này hay khi record này đã đầy thì phần run còn lại sẽ vào record MFT 108. Theo cách này, nhiều record MFT có thể được dùng để quản lý các file lớn khác .
109
|
…
| |||||||||||
![]() |
108
|
Run n+1
|
...
|
Run#m
|
Record mở rộng 2
| |||||||
107
| ||||||||||||
106
| ||||||||||||
105
|
Run #k+1
|
...
|
Run #n
|
Record mở rộng 1
| ||||||||
104
| ||||||||||||
103
| ||||||||||||
102
|
MFT 105
|
MFT108
|
Run#1
|
...
|
Run #k
|
Record cơ sở
| ||||||
101
|
Hình 4.22: Các record MFT của một file lớn
Một vấn đề nảy sinh là nếu cần quá nhiều record MFT thì sẽ không đủ chổ trong MFT cơ sở để liệt kê tất cả các chỉ mục của chúng. Có một giải pháp cho vấn đề này là thực hiên không lưu danh sách phần đuôi mở rộng của các record MFT (chẳng hạn, được lưu trử trên đĩa thay vì trên bản ghi MFT cơ sở). Lúc đó, kích thước của file có thể phát triển lớn đến một mức cần thiết.
Một số kỹ thuật được hỗ trợ bởi hệ thống file NTFS
Lập bảng chỉ mục
Trong hệ thống file NTFS, một danh mục file là một chỉ mục đơn của các tên file, đó là một tập các tên file (cùng với các tham chiếu file của chúng) được tổ chức theo một cách đặc biệt để tăng tốc độ truy xuất file. Để tạo một danh mục, NTFS lập chỉ mục cho thuộc tính filename của các file trong thư mục. Một record cho thư mục gốc của volume được đưa ra ở hình 4.23 sau đây.

Hình 4.23: Chỉ mục tên file cho thư mục gốc của volume
Một emtry MFT cho một thư mục chứa trong thuộc tính index root của nó một danh sách được sắp xếp của các file trong thư mục. Đối với các thư mục lớn, tên file thực tế được lưu trữ trong các vùng đệm chỉ mục (index buffer) có kích thước cố định là 4Kb, index buffer này chứa và tổ chức các tên file. Index buffer cài đặt cấu trúc dữ liệu cây b+, nhờ đó mà cực tiểu được số lần truy cập trực tiếp đĩa cần thiết để tìm đến một file, đặc biệt là đối với các thư mục lớn. Thuộc tính Index root chứa cấp đầu tiên của cây b+ và trỏ đến Index buffer chứa cấp tiếp theo.
Hình 4.23 trình bày các tên file trong thuộc tính index root và index buffer (file5), nhưng mỗi entry trong index cũng chứa tham chiếu file trong MFT, nơi chứa các thông tin mô tả, kích thước, timestamp của file. NTFS nhân đôi thông tin về timestamp và kích thước file từ record MFT của file. Kỹ thuật này được sử dụng bởi FAT và NFTS, yêu cầu được cập nhật thông tin để ghi vào cả hai nơi. Do đó, nó tăng tốc độ đáng kể cho các thao tác duyệt thư mục vì nó cho phép hệ thống file hiển thị timestamp và kích thước file của mỗi file mà không cần mở mỗi file trong thư mục.
Thuộc tính index allocation ánh xạ các VCN của cả Run index buffer mà nó chỉ báo nơi index buffer thường trú trên đĩa. Thuộc tính bitmap theo dõi các VCN trong index buffer là đang được sử dụng hay đang rỗi. Hình trên cho thấy một entry file trên VCN, nhưng các entry filename thực tế được đóng gói trong mỗi cluster. Một index buffer 4Kb có thể chứa từ 20 đến 30 entry filenamecan dien tu.
Không có nhận xét nào:
Đăng nhận xét