Tải bản đầy đủ (.pdf) (5 trang)

Giáo trình phân tích khả năng ứng dụng giá trị dữ liệu tại những cluster tương ứng p8 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (421.04 KB, 5 trang )

block liên tiếp nhau (n = 2, 3, 4, ), một đoạn block trong trường hợp này được gọi
là một Run. Ví dụ file A được lưu trữ trên 7 block liên tiếp: từ block 10 đến block
16 và file B được lưu trữ trên 35 block: từ block 30 đến block 44 và từ block 41
đến block 60. Như vậy file A được lưu trữ trên một đoạn block (Run #1) còn file B
được lưu trữ trên hai đoạn block (Run #1 và Run #2). Thông thường, nếu block
logic đầu tiên của một file ghi ở block 20 trên đĩa thì block logic 2 được ghi vào
block 21 trên đĩa và block logic thứ 3 được ghi vào block 22 trên đĩa, vv. Với cách
lưu trữ này hệ điều hành có thể ghi nhiều blok logic vào các block đĩa cùng một lúc
nếu có thể. Đây là một ưu điểm của Windows 2000.
Danh sách các block đĩa chứa nội dụng của một file được mô tả bởi một
record trong MFT (đối với file nhỏ) hoặc bởi một dãy tuần tự các record trong
MFT, có thể không liên tiếp nhau (đối với file lớn). Mỗi record MFT dùng để mô tả
một dãy tuần tự các block logic kề nhau. Mỗi record MFT trong trường hợp này bắt
đầu với một header lưu địa chỉ offset của block đầu tiên trong file. Tiếp đến là địa
chỉ offset của block đầu tiên mà không nằm trong record. Ví dụ nếu có một file
được lưu tại 2 đoạn block là: 0 – 49 và 60 – 79 thì record đầu tiên có một header
của (0, 50) và sẽ cung cấp địa chỉ đĩa cho 50 block này và record 2 sẽ có một
header của (60, 80) và sẽ cung cấp địa chỉ đĩa cho 20 block đó. Tiếp sau mỗi record
header là một hay nhiều cặp, mỗi cặp lưu một địa chỉ của block đĩa bắt đầu đoạn
block và số block có trong đoạn (độ dài của một Run).
Hình sau đây là một record MFT chứa thông tin của một file.






















Hình 4.21 là một record MFT cho một file ngắn (ngắn ở đây có nghĩa là tất
cả các thông tin về các block của file chứa vừa trong một record MFT). File này
gồm 9 block, nó chứa 3 Run: Run #1 gồm 4 block từ 20 đến 23, Run #2 gồm 2
block từ 64 đến 65 và Run #3 gồm 3 block từ 80 đến 82. Mỗi Run được ghi vào
record MFT theo từng cặp (địa chỉ block đĩa, tổng số block).



Unused

Hình 4.21: Một record MFT cho 1 file có 3 run, gồm 9 block
Standa
rd
Infor

Record

Header
Stand

ard
Infor Header

File
Name
File Name
Header
Data
Header
Header Run #1 Run#3
Infor about data blocks
(thông tin về các block dữ liệu)
Run#2
64-65 80-82
Các block đĩa
0

9

20

64

80

2 3 4
20-23
Click to buy NOW!
P
D

F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k

.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c

u
-
t
r
a
c
k
.
c
o
m
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 MFT.
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:
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 .


10

9




10
8
Run n+1

Run#
m

Record m
ở rộng
2


10
7



10
6



10
5
Run

#k+1


Run #n


Record mở rộng
1


10
4



10
3



10
2
MFT 105

MFT10
8


Run#1



Run #k


Record cơ sở

10
1


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ổ
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e

r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g

e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
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
Click to buy NOW!
P
D
F
-
X

C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o

m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t

r
a
c
k
.
c
o
m
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 filename.
Cấu trúc dữ liệu cây b+ là một kiểu cây cân bằng, nó là ý tưởng cho việc tổ
chức sắp xếp dữ liệu được lưu trữ trên đĩa bởi vì nó cực tiểu số lần truy cập đĩa cần
thiết để tìm đến một entry. Trong MFT, một thuộc tính index root của thư mục
chứa nhiều filename mà nó đóng vai trò như là các chỉ mục vào cấp thư hai của cây
b+. Mỗi filename trong thuộc tính index root có một con trỏ tùy chọn được kết hợp
với nó để chỉ đến index buffer. Index buffer mà nó chỉ đến chứa các filename với
giá trị (về mặt tự điển) ít hơn sở hữu của nó. Trong hình trên, file4 là entry cấp đầu
tiên trong cây b+, nó chỉ đến một index buffer chứa các filename mà ít hơn chính
nó, đó là cá filename file0, file1, và file3.
Lưu trữ tên file trong cây b+ mang lại nhiều thuận lợi. Việc tìm kiếm thư
mục sẽ nhanh hơn vì filename được lưu trữ theo thứ tự được sắp xếp. Và khi một
phần mềm cấp cao đếm các file trong thư mục, NTFS sẽ trả lại tên file vừa được
sắp xếp.
NTFS cũng cung cấp sự hỗ trợ cho chỉ mục dữ liệu bên cạnh filename. Một
file có thể có một đối tượng ID được gán cho nó, ID của file được lưu trữ trong
thuộc tính $OBJECT_ID của file. NTFS cung cấp một API cho phép các ứng dụng

mở file bằng các đối tượng ID của file thay vì dùng tên file của nó. Do đó, NTFS
phải tạo ra một tiến trình để chuyển đổi một đối tượng ID thành số file của file một
cách hiệu quả. Để thực hiện được điều này NTFS lưu trữ một ánh xạ của tất cả các
đối tượng ID của volume thành số tham chiếu file của chúng trong một file
metadata \$Extend\$ObjID. NTFS sắp xếp các đối tượng ID trong file nói trên như
chỉ mục filename mà ta đã dề cập ở trên. Chỉ mục đối tượng ID được lưu trữ như là
cây b+.
Ánh xạ bad-cluster
Các thành phần quả lý đĩa logic trong windows 2000 như FDISK (đối với basic
disk) và LDM (đối với các dynamics disk), có thể khôi phục dữ liệu tại các bad-
sector trên các đĩa có khả năng chịu lỗi (fault tolearant disk), với điều kiện đĩa phải
sử dụng chuẩn SCSI và còn các sector trống trên đĩa. Các volume chịu lỗi là các
volume thuộc loại Mirrored và RAD-5. Hệ thống file FAT và thành phần quản lý
đĩa logic của nó không thể đọc dữ liệu từ các bad-sector cũng như không thể phát
sinh thông báo khi ứng dụng đọc dữ liệu tại bad-sector.
NTFS thay thế một cách tự động các cluster chứa bad-sector và theo dõi bad-
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V

i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C

h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m

cluster vì thế nó không được sử dụng lại sau này. Khi bộ phận quản lý volume trả
về cảnh báo bad-sector hoặc khi bộ điều khiển đĩa cứng trả về lỗi bad-sector, NTFS
sẽ tìm một cluster mới để thay thế cluster chứa bad-sector. NTFS copy dữ liệu mà
bộ phận quản lý volume khôi phục được vào cluster mới để thiết lập lại sự dư thừa
dữ liệu.
Hình 4.24.a cho thấy một record MFT cho một file của người sử dụng với
một bad-cluster trong một trong các Run dữ liệu của nó. Khi nó nhận được lỗi bad-
sector, NTFS gán lại cluster chứa bad-sector vào tập bad-cluster của nó. Điều này
ngăn cản hệ thóng cấp bad-cluster cho các file khác. Sau đó NTFS tìm một cluster
mới cho file và thay đổi ánh xạ VCN-to-LCN để chỉ đến cluster mới.

Hình 4.24.a: Record MFT cho một File có bad-cluster
Ánh xạ lại bad-cluster trong hình sau. Cluster 1357 có chứa bad-sector, được
thay thế bằng cluster mới 1049.
Nếu bad-sector ở trên volume redundant, thì bộ phận quản lý volume sẽ khôi
phục dữ liệu và thay thế sector nếu có thể. Nếu không thể thay thế sector thì nó sẽ
trả về một cảnh báo cho NTFS và NTFS sẽ thay thế cluster chứa bad-sector đó.

Hình 4.24.b1: Ánh xạ lại bad-cluster
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g

e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F

-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.

c
o
m

×