Tham khảo tài liệu ''giáo trình hình thành quá trình cấu hình giá trị dữ liệu dùng bảng fat p4'', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
y o c u -tr a c k c MFT thuộc tính gọi thuộc tính thường trú Thuộc tính thơng tin chuẩn thuộc tính mục gốc thường định nghĩa thuộc tính thường trú Hình 4.20.a: Header value thuộc tính thường trú Mỗi thuộc tính bắt đầu với header, header chứa thơng tin thuộc tính, thông tin mà NTFS dùng để quản lý thuộc tính Header cho biết thơng tin liên quan đến giá trị có phải thường trú (RESIDENT) hay không, offset từ header đến giá trị thuộc tính, độ dài (length) giá trị thuộc tính, vv Hình 4.20.b sau cho thấy thuộc tính filemane gồm có header “RESIDENT” + Offset:8h + Length:14h value MYFILE.DAT Khi giá trị thuộc tính lưu trữ record MFT thời gian đọc nội dung file NTFS giảm xuống, khơng phải tìm danh sách cluster chứa nội dung file dựa vào việc phân tích bảng FAT hệ thống file FAT, mà cần đọc giá trị cluster đĩa chứa nội dung file, danh sách cluster ghi phần giá trị thuộc tính Thuộc tính cho thư mục nhỏ giống thuộc tính file nhỏ, thường trú MFT Hình sau record MFT cho thư mục nhỏ: Hình 4.20.b: Một record MFT cho thư mục nhỏ Trong thuộc tính Index root chứa mục tham chiếu đến file thư mục thư mục Trong thực tế nội dung thư mục, gồm file thư mục nó, khơng thể nén thành record MFT có kích thước cố định 1MB Nếu thuộc tính đặc biệt, thuộc tính liệu file chẳng hạn, lớn để chứa d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c hết record MFT NTFS cấp phát cluster riêng cho liệu thuộc tính từ MFT Vùng gọi Run (hay phạm vi) Nếu giá trị thuộc tính sau phát triển, nội dung file tăng lên chẳng hạn, NTFS định vị Run khác cho liệu thêm vào Các thuộc tính mà giá trị lưu trữ Run khơng phải record MFT gọi thuộc tính khơng thường trú Hệ thống file định có hay khơng thuộc tính cụ thể thường trú hay khơng thường trú Khi thuộc tính khơng thường trú header chứa thơng tin mà NTFS cần để tìm đến giá trị thuộc tính đĩa Hình sau cho thấy thuộc tính liệu khơng thường trú lưu trữ Run Hình 4.20.c: Record cho file lớn với Run Trong số thuộc tính chuẩn (standard attribute), có thuộc tính tăng lên trở thành khơng thường trú Các thuộc tính thơng tin chuẩn tên file ln ln thường trú Hình 4.20.d: Record MFT cho thư mục lớn với mục filename không thường trú Một thư mục lớn có thuộc tính khơng thường trú Chúng ta xem hình say đây, ta thấy record MFT không đủ chỗ để lưu trữ hết Index file chứa thư mục lớn Một phần Index lưu trũ thuộc tính Index Root, phần cịn lại lưu Run khơng thường trú gọi vùng đệm mục (Index Buffer) NTFS theo dõi Run cặp ánh xạ VCN-to-LCN Các LCN đánh số thứ tự cluster toàn volume từ đến n Các VCN đánh số cluster d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c riêng cho file từ đến m Xem hình 4.20.e sau đây: Hình 4.20.e: Các VCN cho thuộc tính liệu khơng thường trú Nếu file có nhiều Run Run thứ bắt đầu với VCN Xem hình sau đây, header thuộc tính liệu chứa ánh xạ VCN-to-LCN cho Run đây, cho phép NTFS dễ dàng tìm đến định vị cấp phát đĩa Hình 4.20.f: Các ánh xạ VCN-to-LCN cho thuộc tính liệu khơng thường trú Hình 4.20.f Run liệu, thuộc tính khác lưu trữ Run record MFT không đủ chỗ để chứa chúng file có q nhiều thuộc tính dẫn đến khơng chứa đủ record record thứ MFT sử dụng để chứa thuộc tính thêm vào Trong trường hợp thuộc tính gọi danh sách thuộc tính (attribute list) thêm vào Thuộc tính attribute list chứa tên mã loại cho thuộc tính file file tham chiếu record MFT, nơi thuộc tính nạp Thuộc tính attribute list cung cấp cho trường hợp: kích thước file tăng lên file bị phân mảnh, dẫn đến record MFT đơn chứa hết ánh xạ VCN-to-LCN cần thiết để tìm tất Run Tóm lại record MFT có trường sau: Trường record MFT record header, theo sau d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c cặp header value thuộc tính Record header chứa mã số sử dụng để kiểm tra tính hợp lệ, số cập nhật record sử dụng lại cho file mới, tham chiếu đến file, số byte record sử dụng, nhận dạng (chỉ số, dãy số liên tiếp) record sở (chỉ sử dụng cho record mở rộng), số trường khác Sau record header header thuộc tính thứ giá trị thuộc tính thứ nhất, header thuộc tính thứ hai giá trị thuộc tính thứ hai, NTFS định nghĩa 13 thuộc tính xuất record MFT Chúng liệt kê bảng sau Mỗi record MFT bao gồm dãy header thuộc tính, chúng đồng với phần đầu thuộc tính cho biết độ dài vị trí trường giá trị với trạng thái cờ số thông tin khác Thơng thường, giá trị thuộc tính nằm sau header chúng, giá trị dài để đặt record MFT, chúng đặt vào block đĩa tách rời Thuộc tính gọi thuộc tính khơng thường trú Một vài thuộc tính tên, lặp lại, tất thuộc tính phải đặt hàng cố định recorrd MFT Các header cho thuộc tính thường trú có độ dài 24 byte; thuộc tính khơng lưu trú dài chúng lưu thêm thơng tin để tìm thuộc tính đĩa Thuộc tính Standard information File name Mơ tả Các bítcờ, timestamp, Tên file Unicode: lặp lại tên DOS Security descriptor Đã lỗi thời Thông tin bảo mật $extend$Secure Attribute list Vị trí MFT record thêm vào cần Object ID 64-bit, file nhận biết volume Reparse point Dùng cho liên kết tăng dần tượng trưng Volume name Tên volume (chỉ sử dụng $Volume) Volume information Phiên Volume (chỉ sử dụng $Volume) Index root Được sử dụng cho thư mục Index allocation Được sử dụng cho thư mục lớn Bitmap Được sử dụng cho thư mục lớn Logged utility Điều khiển kết nối đến $LogFile stream Data Dữ liệu luồng; lặp lại nhiều lần Bảng 4.7: Các thuộc tính sử dụng record MFT d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c Trường thông tin chuẩn (Standard Information) file bao gồm: thông tin bảo mật, timestamp, liên kết cố định, bít đọc bítlưu trữ, vv Nó trường có kích thước cố định ln hữu Trường tên file (File Name) chuỗi mã Unicode có độ dài thay đổi Để tạo file với tên tên MS-DOS gần với ứng dụng 16-bítcũ, file có tên 8+3 MS-DOS Nếu tên file thực tuân theo quy tắc đặt tên 8+3 MS-DOS, tên file MS_DOS phụ không sử dụng Trong NT 4.0, thơng tin bảo mật (Security) đưa vào thuộc tính Windows 2000 tất đưa vào file riêng, nhiều file chia sẻ phần bảo mật Danh sách thuộc tính (Attribute List) cần thiết thuộc tính khơng đặt record MFT Thuộc tính để tìm record mở rộng Mỗi mục vào dãy thuộc tính chứa số 48-bíttrong MFT gọi record mở rộng dãy số 16-bítcho phép kiểm tra phù hợp record mở rộng record sở Thuộc tính định danh đối tượng ID (Object Identifer) đối tượng làm cho tên file Trường peparse point gọi thủ tục phân tách tên file để thực thao tác đặc biệt Kỹ thuật sử dụng cài đặt liên kết biểu tượng Hai thuộc tính volume (Volume Name Volume Information) sử dụng để xác định volume Ba thuộc tính (Index Root, Index Allocation Bitmap) sử dụng cho việc cài đặt thư mục Thuộc tính Logged utility stream sử dụng hệ thống file mã hoá Cuối cùng, thuộc tính liệu Một dãy tên file nằm thuộc tính heard Tiếp theo header danh sách địa đĩa mà chúng gọi block chứa file, hay cho file vài trăm byte riêng Trong thực tế, đặt liệu file vào record MFT gọi file trực tiếp Phần lớn liệu khơng đặt MFT record, thuộc tính thường khơng thường trú IV.9.3 Quản lý danh sách block chứa File đĩa Trong Windows 2000 với NTFS nội dung File cần lưu trữ volume chia thành block (tương ứng với block hay cluster đĩa), block file gọi block logic Các block file lưu nhiều đoạn block không liên tiếp đĩa, đoạn block bao gồm n d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c block liên tiếp (n = 2, 3, 4, ), đoạn block trường hợp gọi Run Ví dụ file A lưu trữ block liên tiếp: từ block 10 đến block 16 file B lưu trữ 35 block: từ block 30 đến block 44 từ block 41 đến block 60 Như file A lưu trữ đoạn block (Run #1) file B lưu trữ hai đoạn block (Run #1 Run #2) Thông thường, block logic file ghi block 20 đĩa block logic ghi vào block 21 đĩa block logic thứ ghi vào block 22 đĩa, vv Với cách lưu trữ hệ điều hành ghi nhiều blok logic vào block đĩa lúc Đây ưu điểm Windows 2000 Danh sách block đĩa chứa nội dụng file mô tả record MFT (đối với file nhỏ) dãy record MFT, khơng liên tiếp (đối với file lớn) Mỗi record MFT dùng để mô tả dãy block logic kề Mỗi record MFT trường hợp bắt đầu với header lưu địa offset block file Tiếp đến địa offset block mà khơng nằm record Ví dụ có file lưu đoạn block là: – 49 60 – 79 record có header (0, 50) cung cấp địa đĩa cho 50 block record có header (60, 80) cung cấp địa đĩa cho 20 block Tiếp sau record header hay nhiều cặp, cặp lưu địa block đĩa bắt đầu đoạn block số block có đoạn (độ dài Run) Hình sau record MFT chứa thơng tin file Infor about data blocks File Name Stand ard Header Data Header Infor Header Standa rd Infor Record Header (thông tin block liệu) Header Run #1 Run#2 Run#3 File Name 20 64 80 Unused Các block đĩa 20-23 64-65 80-82 Hình 4.21 4.21: Một record MFT cho cho filemột có 3file run,ngắn gồm (ngắn blockở có nghĩa tất Hình record MFT thơng tin block file chứa vừa record MFT) File gồm block, chứa Run: Run #1 gồm block từ 20 đến 23, Run #2 gồm block từ 64 đến 65 Run #3 gồm block từ 80 đến 82 Mỗi Run ghi vào record MFT theo cặp (địa block đĩa, tổng số block) .d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c Cần ý khơng có giới hạn cho kích thước file trình bày theo cách Trong trường hợp thiếu địa nén, cặp cần có số 64-bít tổng số 16 byte Tuy nhiên cặp tượng trưng cho triệu block đĩa liên tiếp Trên thực tế, file 20 Mb bao gồm 20 Run triệu block Kb, Run đặt record MFT Khi lưu trữ file có kích thước lớn (số lượng block lớn) thông tin file có phân mảnh lớn lưu trữ block MFT trình bày hình sau: Trong hình sau ta thấy record sở file nằm record MFT 102 Nó có nhiều Run record MFT, hệ thống cần phải có nhiều record mở rộng, thêm record mở rộng, đặt chúng vào record sở Phần lại record sở sử dụng cho k Run Khi tất byte record 102 dùng hết, run tích lũy tiếp tục với record MFT 105 Khi nhiều run xếp vào hết record hay record đầy phần run lại vào record MFT 108 Theo cách này, nhiều record MFT dùng để quản lý file lớn khác 10 10 10 10 10 10 10 10 … Run n+1 Run #k+1 Run# m Record mở rộng Run #n Record mở rộng MFT 105 Run #k Record sở MFT10 Run#1 10 Hình 4.22: Các record MFT file lớn Một vấn đề nảy sinh cần q nhiều record MFT khơng đủ chổ d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c MFT sở để liệt kê tất mục chúng Có giải pháp cho vấn đề thực hiên không lưu danh sách phần đuôi mở rộng record MFT (chẳng hạn, lưu trử đĩa thay ghi MFT sở) Lúc đó, kích thước file phát triển lớn đến mức cần thiết Một số kỹ thuật hỗ trợ hệ thống file NTFS Lập bảng mục Trong hệ thống file NTFS, danh mục file mục đơn tên file, tập tên file (cùng với tham chiếu file chúng) tổ chức theo cách đặc biệt để tăng tốc độ truy xuất file Để tạo danh mục, NTFS lập mục cho thuộc tính filename file thư mục Một record cho thư mục gốc volume đưa hình 4.23 sau Hình 4.23: Chỉ mục tên file cho thư mục gốc volume Một emtry MFT cho thư mục chứa thuộc tính index root danh sách xếp file thư mục Đối với thư mục lớn, tên file thực tế lưu trữ vùng đệm mục (index buffer) có kích thước cố định 4Kb, index buffer chứa tổ chức tên file Index buffer cài đặt cấu trúc liệu b+, nhờ mà cực tiểu số lần truy cập trực tiếp đĩa cần thiết để tìm đến file, đặc biệt thư mục lớn Thuộc tính Index root chứa cấp b+ trỏ đến Index buffer chứa cấp Hình 4.23 trình bày tên file thuộc tính index root index buffer (file5), entry index chứa tham chiếu file MFT, nơi chứa thông tin mô tả, kích thước, timestamp file NTFS nhân đơi thơng tin timestamp kích thước file từ record MFT file Kỹ thuật sử dụng FAT NFTS, yêu cầu cập nhật thông tin để ghi vào hai nơi Do đó, tăng tốc độ đáng kể cho thao tác duyệt thư mục cho phép hệ thống file hiển thị timestamp kích thước file file mà khơng cần mở file d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c thư mục Thuộc tính index allocation ánh xạ VCN Run index buffer mà báo nơi index buffer thường trú đĩa Thuộc tính bitmap theo dõi VCN index buffer sử dụng hay rỗi Hình cho thấy entry file VCN, entry filename thực tế đóng gói cluster Một index buffer 4Kb chứa từ 20 đến 30 entry filename Cấu trúc liệu b+ kiểu cân bằng, ý tưởng cho việc tổ chức xếp liệu lưu trữ đĩa cực tiểu số lần truy cập đĩa cần thiết để tìm đến entry Trong MFT, thuộc tính index root thư mục chứa nhiều filename mà đóng vai trị mục vào cấp thư hai b+ Mỗi filename thuộc tính index root có trỏ tùy chọn kết hợp với để đến index buffer Index buffer mà đến chứa filename với giá trị (về mặt tự điển) sở hữu Trong hình trên, file4 entry cấp b+, đến index buffer chứa filename mà nó, cá filename file0, file1, file3 Lưu trữ tên file b+ mang lại nhiều thuận lợi Việc tìm kiếm thư mục nhanh filename lưu trữ theo thứ tự xếp Và phần mềm cấp cao đếm file thư mục, NTFS trả lại tên file vừa xếp NTFS cung cấp hỗ trợ cho mục liệu bên cạnh filename Một file có đối tượng ID gán cho nó, ID file lưu trữ thuộc tính $OBJECT_ID file NTFS cung cấp API cho phép ứng dụng mở file đối tượng ID file thay dùng tên file Do đó, NTFS phải tạo tiến trình để chuyển đổi đối tượng ID thành số file file cách hiệu Để thực điều NTFS lưu trữ ánh xạ tất đối tượng ID volume thành số tham chiếu file chúng file metadata \$Extend\$ObjID NTFS xếp đối tượng ID file nói mục filename mà ta dề cập Chỉ mục đối tượng ID lưu trữ b+ Ánh xạ bad-cluster Các thành phần lý đĩa logic windows 2000 FDISK (đối với basic disk) LDM (đối với dynamics disk), khơi phục liệu badsector đĩa có khả chịu lỗi (fault tolearant disk), với điều kiện đĩa phải sử dụng chuẩn SCSI sector trống đĩa Các volume chịu lỗi volume thuộc loại Mirrored RAD-5 Hệ thống file FAT thành phần quản lý đĩa logic khơng thể đọc liệu từ bad-sector phát sinh thông báo ứng dụng đọc liệu bad-sector NTFS thay cách tự động cluster chứa bad-sector theo dõi bad- d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c cluster khơng sử dụng lại sau Khi phận quản lý volume trả cảnh báo bad-sector điều khiển đĩa cứng trả lỗi bad-sector, NTFS tìm cluster để thay cluster chứa bad-sector NTFS copy liệu mà phận quản lý volume khôi phục vào cluster để thiết lập lại dư thừa liệu Hình 4.24.a cho thấy record MFT cho file người sử dụng với bad-cluster trong Run liệu Khi nhận lỗi badsector, NTFS gán lại cluster chứa bad-sector vào tập bad-cluster Điều ngăn cản hệ thóng cấp bad-cluster cho file khác Sau NTFS tìm cluster cho file thay đổi ánh xạ VCN-to-LCN để đến cluster Hình 4.24.a: Record MFT cho File có bad-cluster Ánh xạ lại bad-cluster hình sau Cluster 1357 có chứa bad-sector, thay cluster 1049 Nếu bad-sector volume redundant, phận quản lý volume khôi phục liệu thay sector Nếu khơng thể thay sector trả cảnh báo cho NTFS NTFS thay cluster chứa bad-sector Hình 4.24.b1: Ánh xạ lại bad-cluster d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c ... cho liệu thuộc tính từ MFT Vùng gọi Run (hay phạm vi) Nếu giá trị thuộc tính sau phát triển, nội dung file tăng lên chẳng hạn, NTFS định vị Run khác cho liệu thêm vào Các thuộc tính mà giá trị. .. đầu thuộc tính cho biết độ dài vị trí trường giá trị với trạng thái cờ số thông tin khác Thông thường, giá trị thuộc tính nằm sau header chúng, giá trị dài để đặt record MFT, chúng đặt vào block... file từ đến m Xem hình 4.20.e sau đây: Hình 4.20.e: Các VCN cho thuộc tính liệu khơng thường trú Nếu file có nhiều Run Run thứ bắt đầu với VCN Xem hình sau đây, header thuộc tính liệu chứa ánh xạ