You are on page 1of 20

Chapter 17: Distributed File System

Chapter 17: Distributed File System

1
Chapter 17: Distributed File System
17.1 Background

Để giải thích cấu trúc của một DFS, chúng ta cần xác định các dịch vụ về
Server và Client. Dịch vụ là một thực thể phần mềm chạy trên một hoặc nhiều máy
và cung cấp một loại chức năng cho Client. Một Sẻver là phần mềm dịch vụ đang
chạy trên một máy duy nhất. Client là một quá trình mà có thể gọi một dịch vụ bằng
cách sử dụng một tập hợp các hoạt động hình thành s client interface của mình. Đôi
khi một giao diện cấp dưới được định nghĩa cho sự tương tác giữa các máy thực tế,
nó là giao diện intermachine.
Sử dụng thuật ngữ này, chúng ta nói rằng một hệ thống tập tin cung cấp dịch
vụ tập tin cho Client . Một giao diện Client cho một dịch vụ tập tin được tạo thành
bởi một tập hợp các hoạt động tập tin gốc, chẳng hạn như tạo ra một tập tin, xóa
một tập tin, đọc từ một tập tin, và viết một tập tin. Các thành phần phần cứng chính
là một điều khiển máy chủ tập tin là một tập hợp các thiết bị lưu trữ thứ cấp địa
phương (thông thường, đĩa từ tính) về các tập tin được lưu trữ và từ đó chúng được
lấy theo yêu cầu của Client.
DFS là một hệ thống tập tin Client, Server và thiết bị lưu trữ được phân tán
trong các máy tính của một hệ thống phân tán. Theo đó, dịch vụ hoạt động đã được
thực hiện trên Network. Thay vì một kho dữ liệu tập trung duy nhất, hệ thống thiết
bị lưu trữ thường xuyên có nhiều và độc lập. Như bạn sẽ thấy trong văn bản này,
cấu hình cụ thể và thực hiện một DFS có thể thay đổi từ hệ thống để hệ thống.
Trong một số cấu hình, các máy chủ chạy trên các máy chuyên dụng, trong những
người khác, một máy có thể được cả một Server và Client. Một DFS có thể được
thực hiện như một phần của một hệ điều hành phân phối hoặc, cách khác, bởi một
lớp phần mềm có nhiệm vụ là quản lý các thông tin liên lạc giữa các hệ thống điều
hành thông thường và hệ thống tập tin. Các tính năng đặc biệt của một DFS là đa
dạng và tự chủ của Client và Server trong hệ thống.
Lý tưởng nhất, một DFS sẽ xuất hiện cho các Client là mộtqui ướt tập tin hệ
thống trung ương. Việc đa dạng và phân tán các Server và thiết bị lưu trữ phải được
thực hiện không nhìn thấy được. Đó là, các giao diện Client của một DFS không
nên phân biệt giữa các tập tin cục bộ và từ xa. Đó là vào các DFS để định vị các tập
tin và sắp xếp để vận chuyển dữ liệu. Một DFS minh bạch tạo điều kiện cho người
sử dụng di động bằng cách đưa môi trường của người sử dụng đến bất cứ nơi nào
người dùng đăng nhập.
Việc đo lường hiệu suất của một DFS quan trọng nhất là chi phí thời gian
cần thiết để đáp ứng các yêu cầu dịch vụ. Trong các hệ thống thông thường, thời
gian này bao gồm thời gian truy cập đĩa và một số lượng nhỏ của thời gian xử lý
CPU. Trong một DFS, tuy nhiên, một truy cập từ xa có các chi phí bổ sung do cơ
cấu phân phối. Chi phí này bao gồm thời gian để cung cấp những yêu cầu một
Server, cũng như thời gian để có được những phản hồi trên mạng lại cho Client. Đối
với mỗi hướng, ngoài việc chuyển giao các thông tin, có các chi phí chạy CPU của
phần mềm giao thức truyền thông. Hiệu suất của một DFS có thể được xem như là
một kích thước của minh bạch của DFS. Đó là, hiệu suất của một DFS lý tưởng sẽ
được so sánh với một hệ thống tập tin thông thường.
Thực tế đó, một DFS quản lý một tập hợp các thiết bị lưu trữ phân tán của DFS là
đặc điểm phân biệt quan trọng. Các không gian lưu trữ tổng thể quản lý bởi một
DFS bao gồm các không gian lưu trữ khác nhau và từ xa đặt nhỏ hơn. Thông
thường, các không gian lưu trữ thành phần tương ứng với các bộ tập tin. Một đơn vị

2
Chapter 17: Distributed File System
thành phần là tập hợp nhỏ nhất của các tập tin có thể được lưu trữ trên một máy duy
nhất, độc lập với các đơn vị khác. Tất cả các tập tin thuộc các đơn vị cùng thành
phần phải cư ngụ trong cùng một vị trí.

17.2 Naming and Transparency:

Naming là một cơ chế ánh xạ giữa các đối tượng logic và đối tượng vật lý.
Ví dụ, người dùng xử lý các dữ liệu logic bởi các tên tập tin, trong khi hệ thống các
thao tác trên các khối dữ liệu vật lý được lưu trữ trên rãnh ghi của đĩa. Thông
thường, người dùng chỉ vào một tập tin bằng một tên văn bản. Sau đó là ánh xạ tới
một cấp thấp hơn số định danh mà lần lượt được ánh xạ tới các khối đĩa. Điều này
ánh xạ đa cấp cho người dùng một sự trừu tượng hóa của một tập tin được giấu đi
những chi tiết như thế nào và tập tin được lưu trữ ở đâu trên đĩa.
Trong một DFS, một chiều mới được thêm vào các khái niệm trừu tượng: đó
là cất giấu ở nơi nào trong mạng lưới các tập tin được đặt. Thông thường trong một
hệ thống tập tin, phạm vi của các ánh xạ Naming là một địa chỉ bên trong đĩa. Trong
một DFS, phạm vi này được mở rộng để bao gồm các máy tính cụ thể trên đĩa có
tập tin được lưu trữ. Đi thêm một bước nữa với các khái niệm về xử lý tập tin như là
cho phép khả năng đồng bộ hóa dữ liệu. Cho một tên tập tin, ánh xạ trả về một tập
hợp các vị trí của các bản sao của tập tin này. Trong trừu tượng này, cả hai sự tồn
tại của nhiều bản sao và vị trí của chúng được ẩn.

17.2.1 Naming Structures

Chúng ta cần phân biệt hai khái niệm liên quan về ánh xạ tên trong một DFS:
1. Location transparency: Tên của một tập tin không tiết lộ bất kỳ vị trí lưu trữ
vật lý của tập tin.

2. Location independence: Tên của một tập tin không cần phải được thay đổi
khi các vị trí lưu trữ vật lý của tập tin thay đổi.
Cả hai định nghĩa là tương đối với mức độ Naming thảo luận trước đó, khi đó
các tập tin có tên gọi khác nhau ở các cấp độ khác nhau (có nghĩa là, tên văn bản
cấp người dùng và định danh cấp hệ thống). Lập lịch location independence
Naming là một ánh xạ động, vì nó có thể ánh xạ cùng một tên tập tin đến các địa
điểm khác nhau ở hai thời điểm khác nhau. Do đó, location independence là một
đặc tính mạnh hơn location transparency.
Trong thực tế, hầu hết các DFSs hiện nay cung cấp tĩnh, location transparent đối
với tên người dùng cấp. Tuy nhiên các hệ thống này không hỗ trợ di chuyển tập tin,
có nghĩa là, thay đổi vị trí của một tập tin tự động là không thể. Do đó, các khái
niệm về location independence là không thích hợp cho các hệ thống này. Tập tin có
liên kết cố định với một tập hợp các khối cụ thể của đĩa. Tập tin và đĩa có thể di
chuyển giữa các máy bằng tay, nhưng tập tin di chuyển tự động, hệ điều hành bắt
đầu hoạt động. Chỉ AFS và một số tập tin hệ thống hỗ trợ location independence và
di chuyển tập tin. AFS hỗ trợ di chuyển tập tin chủ yếu cho các mục đích chính.
Một giao thức cung cấp di cư của các đơn vị thành phần AFS để đáp ứng yêu cầu
người dùng mức độ cao, mà không thay đổi tên người dùng cấp hoặc tên cấp thấp
của các tập tin tương ứng.

3
Chapter 17: Distributed File System
Một vài khía cạnh có thể phân biệt location independence và location
transparency tĩnh.
• Tách dữ liệu từ location: như trình bày bởi location independence cung cấp
một trừu tượng hóa tốt hơn cho các tập tin. Tên một tập tin thể hiện hầu hết
các thuộc tính quan trọng của tập tin, đó là nội dung của nó chứ không phải
là vị trí của nó. Location independent của tập tin có thể được xem như là dữ
liệu logic mà không gắn liền với một vị trí lưu trữ cụ thể. Nếu chỉ có location
transparency tĩnh được hỗ trợ, tên tập tin vẫn là thể hiện tính đặc trưng, mặc
dù ẩn, thiết lập các khối đĩa vật lý.

• location transparency tĩnh cung cấp cho người dùng một cách thuận tiện để
chia sẻ dữ liệu. Người dùng có thể chia sẻ tập tin từ xa bằng cách đặt tên các
tập tin một cách location transparent, như các tập tin cục bộ. Tuy nhiên, chia
sẻ không gian lưu trữ là rườm rà, bởi vì cái tên logic vẫn còn liên kết tĩnh với
thiết bị lưu trữ vật lý. Location independence thúc đẩy chia sẻ không gian
lưu trữ chính nó, cũng như các đối tượng dữ liệu. Khi tập tin có thể sẳn sàn.
Tất cả không gian lưu trữ trên toàn hệ thống giống như một nguồn tài nguyên
ảo duy nhất. Một lợi ích có thể nhìn như vậy là khả năng cân bằng việc sử
dụng các ổ đĩa trên hệ thống.

• Location independence

Một khi việc tách tên và vị trí đã được hoàn thànhClient có thể truy cập các tập
tin nằm trên hệ thống Server từ xa. Trong thực tế, các Client có thể không có đĩa và
dựa trên các Server cung cấp tất cả các tập tin, bao gồm nhân hệ điều hành. các giao
thức đặc biệt cần thiết cho tiến trình khởi động, tuy nhiên. Hãy xem xét vấn đề
Kernel để nhận được một máy trạm không đĩa. Các máy trạm không đĩa không có
Kernel, do đó, nó không thể sử dụng mã DFS để lấy Kernel. Thay vào đó, một giao
thức khởi động đặc biệt, được lưu trữ trong bộ nhớ chỉ đọc (ROM) trên Client được
gọi. Nó cho phép kết nối mạng và chỉ lấy một tập tin đặc biệt (các Kernel hoặc mã
khởi động) từ một địa điểm cố định. Một khi Kernel được sao chép qua mạng và
được nạp, DFS của nó làm cho tất cả các hoạt động hệ thống tập tin khác có sẵn.
Những lợi thế của Client không đĩa rất nhiều, bao gồm cả chi phí thấp hơn (vì các
máy client không cần ổ đĩa) và thuận tiện hơn (khi nâng cấp hệ thống điều hành chỉ
có máy Server cần phải được sửa đổi). Những khó khăn được sự phức tạp gia tăng
của các giao thức khởi động và mất kết quả việc thực hiện từ việc sử dụng một
mạng lưới hơn là đĩa cục bộ.
Xu hướng hiện nay là dành cho máy Client sử dụng cả hai ổ đĩa và tập tin máy
Server từ xa. hệ thống điều hành và phần mềm mạng được lưu trữ tại nơi cục bộ của
máy server; hệ thống tập tin có chứa dữ liệu của người dùng và các ứng dụng được
lưu trữ trên hệ thống tập tin từ xa. Một số hệ thống máy Client có thể lưu trữ các
ứng dụng thường được sử dụng, chẳng hạn như xử lý văn bản và trình duyệt web
trên hệ thống tập tin. Khác, ít phổ biến các ứng dụng được sử dụng có thể được đẩy
các tập tin máy Server từ xa cho máy Client theo yêu cầu. Lý do chính để cung cấp
cho máy Client với hệ thống tập tin cục bộ hơn là các hệ thống không đĩa là ổ đĩa
đang tăng nhanh dung lượng và giảm chi phí, với việc xuất hiện nhiều qui trình mới

4
Chapter 17: Distributed File System
hàng năm. Với Network không thể nói như vậy, nó phải phát triển trong một vài
năm. Nhìn chung, hệ thống đang phát triển nhanh hơn so với các mạng, làm việc để
tăng thêm là cần thiết để hạn chế truy cập mạng để cải thiện thông lương cho hệ
thống.

17.2.2 Naming Schemes

Có ba phương pháp chính để lập lịc Naming trong một DFS. Phương pháp
đơn giản nhất, một tập tin được xác định bởi sự kết hợp của tên máy Server của
mình và tên local, đảm bảo một tên duy nhất trên toàn hệ thống. Vi dụ, trong Ibis
một tập tin được xác định duy nhất của tên host: tên local, nơi mà tên local là một
con đường dẫn như UMX. Lập lịch Naming là location transparent nor location
independent. Tuy nhiên, hoạt động cùng một tập tin có thể được sử dụng cho cả các
tập tin local và từ xa. Các DFS được cấu trúc như một bộ sưu tập của các đơn vị
thành phần riêng biệt, mỗi trong số đó là toàn bộ một hệ thống tập tin thông thường.
Trong cách tiếp cận đầu tiên, các đơn vị thành phần vẫn còn bị cô lập, mặc dù có
nghĩa là được cung cấp để chỉ một tập tin từ xa.
Phương pháp thứ hai được phổ biến bởi Sun's network file system (NFS).
NFS là thành phần tập tin hệ thống của ONC+, một gói mạng được hỗ trợ bởi nhiều
nhà cung cấp UNIX. NFS cung cấp một phương tiện để đính kèm thư mục từ xa để
thư mục local, tạo cho sự xuất hiện của một cây thư mục mạch lạc. Phiên bản NFS
đầu chỉ cho phép gắn kết các thư mục được truy cập từ xa. Với sự ra đời của tính
năng automount, gắn kết được thực hiện theo yêu cầu, dựa trên một bảng point và
cấu trúc các tên tập tin. Các thành phần được tích hợp để hỗ trợ chia sẻ, mặc dù hòa
nhập này bị hạn chế và không đồng đều, bởi vì mỗi máy có thể đính kèm thư mục
khác nhau từ xa vào cây của nó. kết quả là Cấu trúc linh hoạt.
Chúng ta có thể đạt được toàn bộ hòa nhập của hệ thống tập tin thành phần
bằng cách sử dụng cách tiếp cận thứ ba. Một cấu trúc tên mở rộng toàn cục duy nhất
tất cả các tập tin trong hệ thống. Lý tưởng nhất, các tập tin hệ thống bao gồm cấu
trúc là đẳng cấu với các cấu trúc của một hệ thống tập tin thông thường. Tuy nhiên,
trong thực tế, các tập tin đặc biệt nhiều (ví dụ tập tin thiết bị UNIX) thực hiện mục
tiêu này khó đạt được.
Để đánh giá cấu trúc đặt tên, chúng ta nhìn vào sự phức tạp chính của chúng
(administrative complexity). Các cấu trúc hệ thống phức tạp nhất và khó khăn nhất
là cấu trúc NFS. Bởi vì bất kỳ thư mục từ xa có thể được liên kết bất cứ nơi nào trên
cây thư mục local, các hệ thống phân cấp có thể không có cấu trúc cao. Nếu một
máy Server không sẵn sàn, một số thiết lập riêng của các thư mục trên các máy khác
nhau sẽ không sẵn sàn. Ngoài ra, một cơ chế công nhận các điều khiển riêng biệt mà
máy tính được phép đính kèm có thư mục cây của nó. Vì vậy, người dùng có thể có
thể truy cập vào một cây thư mục từ xa trên một máy Client nhưng được truy cập bị
từ chối trên máy Client khác.

17.2.3 Implementation Techniques

Yêu cầu Naming cung cấp cho các ánh xạ của một tên tập tin đến vị trí liên
quan. Để giữ cho ánh xạ này có thể dễ sử dụng, chúng ta phải tổng hợp các tập hợp
của các tập tin thành các đơn vị thành phần và cung cấp các ánh xạ trên cơ sở đơn vị
thành phần hơn là trên cơ sở tập tin đơn. Tập hợp này phục vụ mục đích quản lý là

5
Chapter 17: Distributed File System
tốt. Hệ thống UNIX như sử dụng các cây thư mục phân cấp để cung cấp ánh xạ tên
local và để các tập tin tổng hợp đệ quy vào thư mục.
Để tăng cường sự sẵn có của ánh xạ thông tin là rất quan trọng, có thể sử
dụng replication, bộ nhớ đệm cục bộ, hoặc cả hai. Như chúng ta đã lưu ý location
independence có nghĩa là thay đổi ánh xạ theo thời gian, vì vậy, bản sao các ánh xạ
tạo ra một bản cập nhật đơn giản nhưng nhất quán của thông tin này không thể có.
Một kỹ thuật để vượt qua trở ngại này là bất đầu ở mức độ thấp tập tin định danh
của location independent. tên nguyên bản tập tin được ánh xạ tới tập tin định danh
của cấp dưới chỉ ra mà thành phần đơn vị thuộc tập tin. Những định danh này vẫn
còn vị trí độc lập. Chúng có thể được sao chép và lưu trữ một cách tự do mà không
bị mất hiệu lực của di cư của các đơn vị thành phần. Giá không thể tránh khỏi là sự
cần thiết cho một mức độ thứ hai của ánh xạ, ánh xạ các đơn vị thành phần đến các
địa điểm và cần một cơ chế cập nhật đơn giản nhưng nhất quán. Thực hiện cây thư
mục UNIX như sử dụng các cấp độ thấp, nhận dạng location independent làm cho
các hệ thống phân cấp bất biến toàn bộ đơn vị thuộc thành phần. Khía cạnh duy nhất
mà không thay đổi là vị trí ánh xạ thành phần đơn vị.
Một cách phổ biến để thực hiện cấp thấp định danh là sử dụng tên có cấu
trúc. Những tên này là chuỗi bit thường có hai phần. Phần đầu tiên xác định các đơn
vị mà các thành phần thuộc về tập tin, phần thứ hai xác định các tập tin cụ thể trong
đơn vị. Các cấu trúc tên bất biến, tuy nhiên, là bộ phận riêng lẻ của tên là duy nhất ở
mọi thời điểm chỉ trong ngữ cảnh của phần còn lại của các bộ phận. Chúng tôi có
thể có được duy nhất ở mọi thời điểm bằng cách không để tái sử dụng một cái tên
vẫn được sử dụng, bằng cách thêm bit đầy đủ hơn (phương pháp này được sử dụng
trong AFS), hoặc bằng cách sử dụng một nhã thời gian là một phần của tên (như
thực hiện trong Apollo Domain). Một cách khác để xem quá trình này là chúng ta
đang dùng một hệ thống định vị , chẳng hạn như Ibis, và thêm một mức độ trừu
tượng để tạo ra một lập lịch Naming location independent.
Tập hợp các tập tin thành các đơn vị thành phần và sử dụng cấp dưới nhận dạng
location independent độc lập được các kỹ thuật minh họa trong AFS.

17.3 Remote File Access

Xem xét một người dùng yêu cầu truy cập một file ở xa. Server lưu trữ các
file được xác định theo naming scheme(phối hợp tên), và bây giờ việc truyền dữ
liệu thật phải được thực hiện.
Một cách để đạt được điều này là thông qua cơ chế remote-service, nhờ đó
yêu cầu truy cập được chuyển tới server, server thực hiện truy cập và những kết quả
của chúng được trả lại cho người dùng. Một trong những cách phổ biến nhất của
việc thực hiện remote-service là mô hình remote procedure call(lời gọi thủ tục từ
xa), chúng ta đã thảo luận ở chương 3. Sự tương tự tồn tại giữa phương thức truy
cập ổ đĩa trong hệ thóng tập tin thường và phương thức truy cập remote-service
trong DFS: Thực hiện phương thức truy cập remote-service tương tự như truy cập
đĩa cho mỗi lần yêu cầu truy cập.
Để đảm bảo hiệu quả của cơ chế remote-service, chúng ta có thể sử dụng một
dạng của bộ nhớ đệm. Trong file systems thông thường, lý do để sử dụng bộ nhớ
đệm là để giảm truy xuất đĩa, trong khi đó trong DFSs, mục tiêu là giảm cả lưu
lượng mạng lẫn truy xuất đĩa. Trong quá trình thảo luận tiếp theo chúng ta sẽ mô tả

6
Chapter 17: Distributed File System
việc thực hiện bộ nhớ đệm trong DFS và đối chiếu nó với mô hình remote-service
cơ bản.

17.3.1 Basic Caching Scheme

Khái niệm bộ nhớ đệm là đơn giản. Nếu dữ liệu cần thiết để thỏa mãn các
truy cập chưa được lưu trữ(cached), thì sau đó một bản sao của những dữ liệu đó sẽ
được mang từ server tới client. Truy cập được thực hiện trên cached copy. Ý tưởng
là giữ lại những khối nhớ được truy cập gần nhất, để việc truy cập lại cùng một
thông tin có thể thực hiện cục bộ mà không sử dụng lưu lượng mạng. Một phương
pháp thay thế( ví dụ như LRU) được sử dụng cho cache có giới hạn. Không có sự
tương ứng trực tiếp nào giữa những truy cập và lưu lượng truy cập tới server. File
vẫn còn đồng nhất với một bản chính (master copy) lưu tại server nhưng bản sao
của file thì bị phân tán tại những cache khác nhau. Khi một cache bị sửa đổi, thì
những thay đổi đó cần cập nhật với master copy để đảm bảo tính nhất quán dữ liệu.
Vấn đề giữ bản sao cache phù hợp với master file là vấn đề nhất quán cache(cache-
consistency) sẽ được thảo luận ở phần 17.3.4. DFS caching có thể được gọi là mạng
bộ nhớ ảo(network virtual memory), nó hoạt đông tương tự như bộ nhớ ảo phân
trang theo nhu cầu, ngoại trừ nơi lưu trữ không phải là tại chổ mà là một máy chủ ở
xa. NFS cho phép hoán đổi từ xa, do đó nó thật sự có thể thể hiện bộ nhớ ảo qua
mạng.
Nội dung của cached data trong DFS có thể khác từ một khối cho đến toàn
bộ file. Thông thường nhiều dữ liệu cần được đưa vào cache hơn là cần để thỏa mãn
chỉ một truy cập, vì vậy nhiều truy cập có thể được phục vụ bởi nhiều dữ liệu đã
được đưa vào cache. Thủ tục này giống như là đọc đĩa trước(phần 11.6.2). AFS
cache lưu trữ trong một khối lớn(64KB). Những hệ thống khác được thảo luận trong
chương này hỗ trợ cache riêng lẻ theo nhu cầu của client. Tăng dần cache làm tăng
tỉ lệ cache hit nhưng cũng làm tăng cache miss, bởi vì nó đòi hỏi nhiều dữ liệu được
chuyển. Nó làm tăng tiềm năng cho tính nhất quán lên. Việc lựa chọn một thành
phần trong caching bao gồm xem xét các thông số như network tranfer RPC
protocol. Network tranfer(cho ethernet một gói tin) khoảng 1.5KB, do đó một đơn
vị của cache mà lớn hơn thì phải chia nhỏ ra trong quá trình truyền và nối lại trong
quá trình nhận.
Kích thước của block và kích thước của toàn bộ cache thì rất quan trọng
trong block-caching. Trong hệ thống UNIX-like, kích thước của block thông thường
là 4KB và 8KB. Đối với những cache lớn(hơn 1MB), block kích thước lớn(hơn
8KB) thì có lợi. Với những cache kích thước nhỏ, block kích thước lớn sẽ không có
lợi vì cache sẽ có ít khối và tỉ lệ cache hit thấp.

17.3.2 Cache Location (Nơi lưu trữ cache)

Cache được lưu trữ ở đâu-trên đĩa(disk caches) hay bộ nhớ chính(main-memory
caches)? Cache trên đĩa có lợi thế rõ ràng hơn cache trên bộ nhớ chính: Chúng đáng
tin cậy. Việc thay đổi dữ liệu cache bị mất trong một sự cố nếu cache được lưu trên
bộ nhớ lưu trữ bằng điện. Hơn nữa, nếu cache được lưu trữ trên đĩa chúng vẫn còn
đó trong quá trình khôi phục lại, và không cần phải nạp chúng lại. Cache trên bộ
nhớ chính có một số ưu điểm riêng, tuy nhiên:
• Main-memory caches cho phép máy trạm không có đĩa.

7
Chapter 17: Distributed File System
• Dữ liệu có thể được truy cập nhanh hơn từ cache trên bộ nhớ chính hơn là từ
đĩa.
• Công nghệ đang hướng tới bộ nhớ lớn hơn và ít đắt tiền hơn. Các kết quả
tăng tốc đã đạt được được dự đoán là có tác dụng với những lợi thế của disk
caches.
• Server caches (được sử dụng để tăng tốc truy xuất đĩa) sẽ diễn ra trong bộ
nhớ chính không phân biệt user caches được đặt ở đâu; nếu chúng ta cũng sử
dụng main-memory caches cho máy user, chúng ta sẽ xây dựng một cơ chế
bộ nhớ đệm chung cho cả servers và users.
Nhiều thể hiện của truy cập từ xa có thể xem như sự kết hợp giữa bộ nhớ đệm và
dịch vụ từ xa. Trong NFS, ví dụ, thực hiện dựa trên dịch vụ từ xa nhưng được tăng
cường với client và server-side memory caching cho hiệu suất. Tương tự như vậy,
thể hiện Sprite được dựa trên caching, nhưng trong những hoàn cảnh nhất định, dịch
vụ từ xa được thực hiện. Vì vậy để đánh giá 2 phương pháp, chúng ta phải đánh giá
mức độ nào hoặc phương pháp nào được nhấn mạnh.
Các giao thức NFS và hầu hết các trường hợp không cung cấp disk caching. Gần
đây Solaris thể hiện của NFS(Solaris 2.6 và sau này) bao gồm tùy chọn client-side
disk caching, hệ thống tập tin cachefs. Một khi NFS client đọc những khối của file
từ server, nó lưu chúng vào bộ nhớ cũng như trên đĩa. Nếu bản sao bộ nhớ bị xóa
hoặc ngay cả hệ thống khởi động lại disk cache đã dược tham chiếu. Nếu một khối
được cần mà không có trong memory cũng như trong cachefs disk cache, một RPC
được gửi tới server để lấy khối, và khối được ghi vào disk cache cũng như vào
memory cache cho client sử dụng.

17.3.3 Cache-Update Policy (Chiến lược cập nhật cache)

Chiến lược được sử dụng để ghi lại khối nhớ bị sửa đổi lên bản chính của
server có ảnh hưởng quan trọng đến hiệu suất hệ thống và độ tin cậy. Chiến lược
đơn giản là ghi dữ liệu lại ngay lập tức khi có sự thay đổi ở bất kì cache nào. Ưu
điểm của chiến lược write-through đó là độ tin cậy: Rất ít thông tin bị mất khi có sự
cố ở client. Tuy nhiên, cơ chế này yêu cầu mỗi truy cập ghi phải chờ cho đến khi
thông tin được gửi tới server, vì vậy hiệu suất ghi thấp. Cache với chiến lược write-
through tương đương với dịch vụ từ xa cho truy cập ghi và khai thác bộ nhớ đệm
chỉ cho phép đọc.
Một chiến lược khác đó là chiến lược delayed-write (trì hoãn ghi), còn gọi là
chiến lược write-back (ghi lại), chúng ta sẽ trì hoãn cập nhật lên bản chính. Những
thay đổi được ghi vào trong cache, sau đó được ghi lại server một khoảng thời gian.
Chiến lược này có 2 ưu điểm so với chiến lược write-through. Thứ nhất, ghi được
thực hiện trên cache nên quá trình truy cập ghi thực hiện xong nhanh hơn. Thứ hai,
dữ liệu có thể được ghi đè trước khi chúng được ghi lại, tức là bản cập nhật cuối
cùng mới được ghi cho tất cả. Đáng tiếc. chiến lược này có vấn đề về độ tin cậy, từ
lúc dữ liệu chưa được ghi sẽ bị mất nếu có sự cố ở máy client.
Biến thể của chiến lược delayed-write, trong khi khối dữ liệu bị thay đổi
được đẩy lên server. Một lựa chọn đó là đẩy ra một khối khi nó sắp được đưa ra từ
client’cache. Tùy chọn này có thể cho hiệu suất tốt, nhung một vài khối có thể ở tại
bộ nhớ cache một thời gian dài trước khi chúng được ghi lại server. Sự thỏa hiệp
giữa chiến lược này và chiến lược write-through là quét bộ nhớ cache thường xuyên
và đẩy những khối nhớ đã được sửa đổi kể từ lần quét gần nhất, cũng như UNIX

8
Chapter 17: Distributed File System
quét cache cục bộ của nó. Sprite sử dụng chiến lược này với khoảng thời gian 30
giây. NFS sử dụng chiến lược này cho các file data, nhưng một lần ghi được phát

Hình 17.1: Cachets and its use of caching.

tới server trong suốt quá trình cache đẩy ra, ghi phải tới đĩa máy chủ trước khi nó
được xem là hoàn tất. NFS xử lý metadata (directory data và file-attribute data)
khác nhau. Bất kì sự thay đổi nào của metadata đều được đồng bộ với server. Vì
vậy, cấu trúc file mất và cấu trúc directory sai được tránh khi có sự cố ở client hoặc
server.
NFS với cachefs, ghi cũng được ghi vào disk cache khi chúng được ghi lên
server để giữ tất cả các bản sao chép đồng dạng. Vì vậy, NFS với cachefs cải thiện
hiệu suất hơn NFS cơ bản ở yêu cầu đọc với cachefs cache hit nhưng giảm hiệu
năng với yêu cầu đọc hoặc ghi với cache miss. Với tất cả các cache, nó là quan
trọng để có một bộ nhớ cache hit tốc độ cao để đạt được hiệu suất. Cachefs và sử
dụng nó với write-through và write-back trong hình 17.1.
Một biến thể khác của delayed-write là ghi dữ liệu lên server khi các file
được đóng lại. Đó là chiến lược write-on-close sử dụng trong AFS. Trong trường
hợp các file được mở trong thời gian rất ngắn hiếm khi bị sửa đổi thì chiến lược này
sẽ không làm ảnh hưởng lớn tới lưu mạng. Với những file được mở trong thời gian
dài và bị thay đổi thường xuyên, tuy nhiên, hiệu suất của chiến lược này với chiến
lược delayed-write với flushing thường xuyên thì hơn hẳn.

17.3.4 Consistency (Tính nhất quán)

Client phải giải quyết vấn đề có hay không một bản sao lưu cục bộ của dữ liệu
phù hợp với bản chính. Nếu client xác định rằng dữ liệu của nó là lỗi thời, truy cập
có thể không phục vụ những dữ liệu này. Một bản cập nhật mới cần được đưa vào
cache. Có hai cách tiếp cận để kiểm tra tính hợp lệ của dữ liệu trong cache:

9
Chapter 17: Distributed File System
1. Client-initiated approach(tiếp cận từ client): Client bắt đầu kiểm tra tính hợp
lệ trong mỗi giao tiếp của nó với server và sự phù hợp dữ liệu với bản chính.
Tần số của kiểm tra tính hợp lệ là mấu chốt trong cách tiếp cận này và xác
định tính đồng nhất kết quả. Nó có thể là một dãy các kiểm tra trước khi mỗi
truy cập chỉ kiểm tra trong lần truy cập file đầu tiên. Tất cả những truy cập
với kiểm tra tính hợp lệ thì bị chậm, so với truy cập được phục vụ ngay lập
tức bằng bộ nhớ cache. Ngoài ra, kiểm tra có thể bắt đầu ở khoảng thời gian
cố định. Tùy thuộc vào tần số, kiểm tra hợp lệ có thể tải ở cả mạng và server.
2. Server-initiated approach(tiếp cận từ server): Server ghi chép, đối với mỗi
client, file mà nó nạp vào cache. Khi server phát hiện sự không nhất quán, nó
phải phản ứng lại. Một khả năng cho sự mâu thuẫn xuất hiện khi 2 client
khác nhau xung đột một tập tin. Nếu theo UNIX được thực hiện, chúng ta có
thể giải quyết các mâu thuẩn bằng cách cho server đóng vai trò tích cực.
Server phải được thông báo khi có một tập tin được mở. Server có thể xử lý
khi nó phát hiện một file mở ra đồng thời trong chế độ xung đột bằng cách
vô hiệu hóa bộ nhớ đệm cho tin cụ thể. Trên thực tế, kết quả việc vô hiệu hóa
cache là chuyển sang chế độ hoạt động phục vụ từ xa.

17.3.5 A Comparison of Caching and Remote Service (So sánh giữa Caching và
remote-service)

Về cơ bản, việc lựa chọn giữa caching và remote-service có khả năng tăng hiệu
suất với sự đơn giản giảm. Đánh giá này liệt kê các lợi thế và bất lợi của 2 phương
thức:
• Khi caching được sử dụng, cache cục bộ có thể xử lý hiệu quả số lượng đáng
kể các truy cập từ xa. Dựa vào lợi thế tại chổ trong các mẫu truy cập làm cho
cơ chế này thêm hấp dẫn. Vì vậy hầu hết các truy cập từ xa được phục vụ
nhanh như truy cập tại chỗ. Hơn nữa servers chỉ thỉnh thoảng được truy cập
chứ không phải cho mỗi truy cập. Do đó máy chủ và lưu lượng mạng được
giảm xuống, và tiềm năng mở rộng được tăng lên. Ngược lại, khi remote-
service được sử dụng, mỗi truy cập từ xa được xử lý qua mạng. Kết quả là
lưu lượng mạng, tải server, hiệu suất giảm đi là thấy rõ.
• Tổng chi phí toàn mạng thấp hơn để truyền các khối lớn dữ liệu hơn là
truyền hàng loạt các đáp ứng theo yêu cầu cụ thể. Hơn nữa, thủ tục truy cập
đĩa trên server có thể được tối ưu hóa nếu nó được biết rằng yêu cầu sẽ luôn
luôn cho lớn, những đoạn dữ liệu liên tục thì tốt hơn là những khối nhớ ngẫu
nhiên.
• Các vấn đề về nhất quán dữ liệu trong cache là nhược điểm lớn nhất của việc
sử dụng cache. Khi truy cập các mẫu không thường xuyên ghi, thì sử dụng
cache là tốt hơn. Tuy nhiên, khi việc ghi diễn ra thường xuyên, các cơ chế để
đảm bảo tính nhất quán dữ liệu sẽ làm giảm đáng kể hiệu suất, lưu lượng
mạng cũng như tải của server.
• Vì vậy sử dụng caching sẽ tạo ra lợi ích, thực thi nên thực hiện trên những
máy có ổ đĩa và bộ nhớ chính lớn. Truy cập từ xa trên máy không đĩa cứng
hoặc dung lượng bộ nhớ nhỏ nên thực hiện thông qua các phương pháp điều
khiển dịch vụ từ xa.
• Trong sử dụng bộ nhớ đệm, kể từ khi dữ liệu được chuyển giao đồng loạt
giữa server và client, tốt hơn trong đáp ứng yêu cầu cụ thể của một thao tác
10
Chapter 17: Distributed File System
tập tin. Các mô hình dịch vụ từ xa, trái lại, chỉ là mở rộng của giao tiếp file
hệ thống cục bộ thông qua mạng. Vì vậy, giao tiếp intermachine là hình ảnh
của giao tiếp người dùng.
17.4 Stateful Versus Stateless Service

Có hai phương pháp tiếp cận cho lưu trữ thông tin trên server khi client truy
cập một file từ xa: Hoặc là server theo dõi mỗi tập tin được truy cập bởi mỗi client,
hoặc chỉ đơn giản là cung cấp các khối theo client yêu cầu mà không cần biết cách
thức khối được sử dụng. Trong trường hợp trước, dịch vụ được cung cấp là stateful,
trong trường hợp sau là stateless.
Điển hình của dịch vụ trạng thái file (stateful file service) là: Một client phải
thực hiện thao tác open() một file trước khi truy cập file đó. Server sẽ lấy thông tin
về tập tin trên đĩa của nó, lưu nó vào bộ nhớ của nó và cho client một định danh kết
nối là duy nhất tới client và mở file. (Theo hệ thống UNIX, server sẽ lấy các chế độ
và cung cấp cho client một mô tả tập tin, phục vụ như một chỉ mục vào bảng in-core
của inodes). Định danh này được sử dụng cho truy cập xảy ra sau đó cho đến khi
kết thúc phiên truy cập. Stateful service biểu thị đặc điểm của kết nối giữa client và
server trong suốt quá trình kết nối. Hoặc việc đóng một file hoặc gọi một cơ chế thu
gom rác, server phải thu hồi lại không gian bộ nhớ chính được sử dụng bởi client
mà không còn hoạt động nữa. Yếu điểm chính trong cách tiếp cận stateful service
là: server giữ thông tin bộ nhớ chính về client của nó. AFS là stateful file service.
Dịch vụ tập tin không trạng thái (stateless file service) tránh thông tin trạng
thái bằng cách làm cho mỗi yêu cầu độc lập. Đó là mỗi yêu cầu xác định file và vị
trí trong file hoàn toàn. Server không cần phải giữ bảng mở file trong bộ nhớ chính,
mặc dù nó thường làm vậy vì lý do hiệu quả. Hơn nữa nó không cần phải thiết lập
và chấm dứt một kết nối thông qua thao tác open() và close(). Chúng hoàn toàn dư
thừa kể từ khi mỗi thao tác file thực hiện dựa vào chính nó và không phụ được xem
là một phần của phiên giao dịch. Quá trình client sẽ mở một file và việc mở đó sẽ
không dẫn tới việc gửi một thông điệp từ xa. Đọc và ghi sẽ diễn ra như một thông
điệp từ xa(hoặc tra cứu bộ nhớ cache). Việc đóng file của client một lần nữa chỉ cho
kết quả là một thao tác cục bộ. NFS là stateless file service.
Lợi thế của stateful so với stateless là tăng được hiệu quả. Thông tin của file
được đưa vào cache bộ nhớ chính và có thể được truy cập dễ dàng thông qua nhận
dạng kết nối, do đó tiết kiệm truy cập đĩa. Ngoài ra stateful server biết được liệu
một tập tin được mở cho truy cập tuần tự và có thể do đó đọc trước các khối nhớ
tiếp theo. Stateless server không làm được như vậy, vì vậy nó không biết được mục
đích yêu cầu của client.
Sự khác biệt giữa stateful và stateless trở nên rõ ràng hơn khi chúng ta xem
xét những tác động của một sự cố mà nó xảy ra trong suốt một hoạt động phục vụ.
Stateful server sẽ mất hết trạng thái lưu trữ bằng điện của nó trong sự cố. Bảo đảm
phục hồi hoàn toàn cho những server như vậy liên quan tới phục hồi trạng thái này,
thông thường sử dụng giao thức phục hồi dựa trên hội thoại với client. Nếu phục hồi
không đòi hỏi cao thì các thao tác tại thời điểm sự cố được hủy bỏ. Một vấn đề
khác được gây ra bởi client. Server cần nhận thức được các lỗi để nó có thể thu hồi
không gian đã cấp phát để ghi lại trạng thái của các tiến trình client bị bỏ quên. Hiện
tượng này còn được gọi là phát hiện bỏ quên và loại bỏ.
Một server không trạng thái tránh được những vấn đề này, từ một server mới
tái sinh có thể đáp ứng các yêu cầu độc lập mà không có bất kì khó khăn nào. Vì

11
Chapter 17: Distributed File System
vậy, ảnh hưởng của lỗi server và việc khôi phục thì gần như không quan tâm.
Không có sự khác biệt giữa một server chậm và một server khôi phục từ thời điểm
đó. Client giữ yêu cầu chuyển phát của nó nếu nó không nhận được đáp ứng.
Hệ quả của việc sử dụng dịch vụ không trạng thái là thông điệp yêu cầu lâu
hơn và xử lý chậm các yêu cầu, vì không có thông tin để tăng tốc độ quá trình xử lý.
Ngoài ra dịch vụ không trạng thái áp đặt thêm ràng buộc lên thiết kế của DFS. Đầu
tiên, kể từ khi mỗi yêu cầu xác định tập tin mục tiêu, thống nhất, toàn hệ thống, sắp
xếp theo tên được sử dụng. Chuyển yêu cầu từ xa theo tên cục bộ sẽ gây ra việc xử
lý chậm của các yêu cầu. Thứ hai, kể từ khi client truyền lại các yêu cầu cho các
thao tác tập tin thì các thao tác này phải không thay đổi, nghĩa là mỗi thao tác phải
có cùng một một tác dụng và trả về cùng kết quả nếu thực hiện nhiều lần liên tiếp.
Truy cập đọc và ghi độc lập là không thay đổi giá trị, miễn là họ sử dụng hoàn toàn
byte đếm để chỉ ra vị trí trong file mà họ truy cập mà không dựa trên việc tăng
offset(như thực hiện read() và write() trong UNIX). Tuy nhiên, chúng ta phải cẩn
thận khi thực hiện thao tác phá hủy(như là xóa file) để cũng làm cho chúng không
thay đổi.
Trong một số trường hợp dịch vụ trạng thái thì cần thiết. Nếu server sử dụng
phương thức bắt đầu từ máy chủ cho việc làm cache có hiệu lực, nó không thể cung
cấp dịch vụ không trạng thái vì nó lưu trữ một bản ghi các tập tin được đưa vào
cache của mỗi client.
Cách mà UNIX sử dụng là file descriptors và ngầm định offset vốn là
stateful. Server phải duy trì một bảng để ánh xạ file descriptors sang inodes và phải
lưu trữ offset hiện tại trong một tập tin. Những đòi hỏi này là lý do tại sao NFS, sử
dụng dịch vụ không trạng thái, không sử dụng file descriptors và không bao gồm
ngầm định offset trong mỗi truy cập.

17.5 File Replication

Trong hệ thống phân phân phối tập tin các tạp tin sao chép trên các máy khác
nhau là một sự thừa lợi ích để nâng cao tính sẵn sàn. Multimachine replication có
thể thực hiện lợi ích thông qua: Chọn một bản sao gần đó để phục vụ cho một kết
quả yêu cầu truy cập dịch vụ trong thời gian ngắn hơn.
Phạm vi an toàn của NFS, đến nay chỉ được coi là phiên bản 3 (hoặc V3)
NFS. Các tiêu chuẩn NFS gần đây nhất là phiên bản 4 (V4), và nó khác cơ bản từ
các phiên bản trước đó. Sự thay đổi đáng kể nhất là giao thức kết nối trạng thái hiện
tại, có nghĩa là Server duy trì trạng thái của phiên Client từ lúc các tập tin đã được
mở cho đến khi nó được đóng lại. Do đó, giao thức NFS giờ đây cung cấp hoạt
động Open () và Close(); phiên bản trước của NFS) cung cấp không hoạt động như
vậy. Hơn nữa, phiên bản trước chỉ định các giao thức riêng biệt để gắn hệ thống
điều khiển tập tin và điều khiển khóa các tập tin. V4 cung cấp tất cả các tính năng
này theo một giao thức duy nhất. Trong đó, gắn kết giao thức bị loại, cho phép NFS
để làm việc với các tường lửa mạng. Việc gắn kết giao thức là một lỗ hổng bảo mật
nổi tiếng trong việc thực hiện NFS.
Ngoài ra, V4 đã nâng cao được khả năng của Client đến tập tin dữ liệu cục
bộ cache. Tính năng này cải thiện hiệu suất của hệ thống tập tin phân phối, Client có
thể giải quyết được truy cập nhiều tập tin từ bộ nhớ cache cục bộ thay vì phải đi qua
Server. V4 cho phép Client yêu cầu khóa tập tin từ các Server . Nếu máy chủ cấp
theo yêu cầu, máy khách duy trì các khóa cho đến khi nó được phát hành hoặc nó

12
Chapter 17: Distributed File System
kết thúc. Theo truyền thống, các hệ thống dựa trên UNIX cung cấp khóa kích tư
vấn, trong khi hệ điều hành Windows sử dụng khóa bắt buộc. Để cho phép NFS làm
việc tốt với các hệ thống không UNIX, V4 hiện nay cung cấp khóa bắt buộc nữa.
Các khóa mới và cơ chế bộ nhớ đệm được dựa trên khái niệm của uỷ quyền, theo đó
các Server giao phó trách nhiệm cho một tập tin khóa và nội dung cho Client đã yêu
cầu các khóa. Đó là Clients duy trì trong bộ nhớ cache giao phiên bản hiện tại của
tập tin, và các Client khác có thể yêu cầu Client ủy thác để truy cập khóa và nội
dung tập tin cho đến khi Client phân bố nhường các khóa và ủy quyền.
Cuối cùng, trong khi phiên bản trước của NFS dựa trên giao thức mạng
UDP, V4 được dựa trên TCP, cho phép nó điều chỉnh tốt hơn cho lưu lượng tải trên
mạng. Ủy thác các trách nhiệm này cho các Client để giảm tải trên Server và cải
thiện sự mạch lạc cho bộ nhớ cache.
Các yêu cầu cơ bản của một chương trình sao chép là các bản sao khác nhau
của cùng một tập tin nằm trên các máy tính không độc lập. Đó là, sự sẵn có của một
bản sao không bị ảnh hưởng bởi sự sẵn có của phần còn lại của các bản sao. Yêu
cầu này rõ ràng có nghĩa là quản lý nhân bản vốn đã là một hoạt động địa điểm
không rõ ràng. Quy định cho việc đặt một bản sao trên một máy cụ thể phải có sẵn.
Nó muốn giấu các chi tiết của bản sao từ người sử dụng. Ánh xạ một tên của
tập tin sao chép đến một bản sao cụ thể là nhiệm vụ của đề án đặt tên. Sự tồn tại của
bản sao sẽ không nhìn thấy được ở cấp độ cao hơn. Tuy nhiên ở cấp thấp hơn, các
bản sao phải được phân biệt với nhau bằng các tên cấp dưới khác nhau. Một yêu cầu
xuyên suốt là điểu khiển bản sao ở các cấp cao hơn. Điêu khiển bản sao bao gồm
xác định mức độ bản sao và của các vị trí của bản sao. Trong những trường hợp
nhất định, chúng ta có thể muốn phơi bày những chi tiết này cho người dùng.
Locus, ví dụ, cung cấp cho người sử dụng và hệ thống quản trị với cơ chế để kiểm
soát các chương trình nhân bản.
Vấn đề chính liên quan đến bản sao là cập nhật. Từ quan điểm của người sử
dụng, bản sao của một tập tin biểu thị cùng một thực thể hợp lý, và do đó một cập
nhật cho bất kỳ bản sao phải được thể hiện trên tất cả các bản sao khác. Chính xác
hơn, nhất quán ngữ nghĩa có liên quan phải được duy trì khi truy cập tới các bản sao
được xem như là truy cập ảo vào các file logic của bản sao. Nếu tính chắc chắn
không phải là quan trọng hàng đầu, nó có thể được hy sinh cho lợi ích và hiệu suất.
Trong sự đánh đổi cơ bản trong lĩnh vực khả năng chịu lỗi, là sự lựa chọn giữa bảo
tồn tính nhất quán ở tất cả các chi phí, từ đó tạo ra một tiềm năng vô hạn định ngăn
chặn, và hy sinh tính nhất quán trong một số trường hợp những thất bại thê thảm vì
lợi ích của tiến bộ đảm bảo . Locus, ví dụ, sử dụng rộng rãi và hy sinh nhân bản
nhất quán trong các trường hợp phân vùng mạng vì lợi ích của sẵn có của tập tin để
đọc và viết truy cập.

17.6 An Example: AFS

Ví dụ: AFS

Andrew là một môi trường tính toán phân tán được thiết kế và triển khai tại
Đại học Carnegie Mellon.Hệ thống tập tin Andrew (AFS) tạo thành cơ chế chia sẻ
thông tin cơ bản giữa các khách hàng của môi trường.Tổng công ty Transarc đã qua
phát triển của AFS, sau đó đã được mua bởi IBM. Kể từ đó IBM tiến hành một số
triển khai thương mại của AFS. AFS sau đó đã được chọn là DFS cho một liên

13
Chapter 17: Distributed File System
minh công nghiệp, kết quả là Transarc DFS, một phần của môi trường tính toán
phân tán (DCE) từ các tổ chức OSF.

Năm 2000, IBM đã công bố rằng Transarc Lab AFS sẽ là một sản phẩm mã
nguồn mở (gọi là OpenAFS) có sẵn theo bản quyền cộng đồng của IBM và Transarc
DFS đã không còn là một sản phẩm thương mại. OpenAFS có sẵn trong hầu hết các
phiên bản thương mại của UNIX cũng như Linux và hệ thống của Microsoft
Windows. Nhiều nhà cung cấp UNIX, cũng như Microsoft, hỗ trợ hệ thống DCE
(Trang Thiết bị Truyền thông Dữ liệu) và DFS của nó, dựa trên AFS, và đang được
tiến hành để làm cho DCE trở thành một đa nền tảng , chấp nhận phổ biến DFS. Khi
AFS và Transarc DFS là tương tự nhau, chúng tôi mô tả AFS suốt phần này, trừ khi
Transarc DFS được đặt tên cụ thể.

AFS tìm cách giải quyết phần nhiều trong số những vấn đề của đơn giản
DFSs,chẳng hạn như là NFS, và được cho là nhiều tính năng nhất là
nonexperimental DFS. Nó có tính năng tạo 1 không gian tên thống nhất , chia sẻ tập
tin 1 cách độc lập, lưu trữ tạm vào bộ nhớ cache bên máy khách để đảm bảo tính
nhất quán, và việc xác thực bảo mật qua kerberos. Nó cũng lưu trữ tạm vào bộ nhớ
cache bên máy chủ dưới dạng bản sao cơ sở dữ liệu, với khả năng tậng dụng cao
thông qua chuyển mạch tự động để sao cơ sở dữ liệu nếu nguồn máy chủ không có
sẵn. Một trong những thuộc tính đáng gờm nhất của AFS là khả năng nâng cấp mở
rộng : hệ thống Andrew nhắm vào mục tiêu là hơn 5,000 máy trạm. Giữa AFS và
Transarc DFS, có hàng trăm triểu khai trên toàn cầu

17.6.1 Tổng quan AFS

AFS phân biệt máy khách ( đôi khi xem như máy trạm ) và máy chủ chuyên
dụng . Máy khách và máy chủ ban đầu chạy chỉ 4.2 BSD UNIX, nhưng AFS đã
được chuyển đến nhiều hệ điều hành. Máy khách và máy chủ được liên kết với nhau
bằng mạng của WAN hoặc mạng LANs. Máy khách được chiếm giữ 1 không gian
phân vùng của tập tin: local namespace và shared name space. Các máy chủ chuyên
dụng, gọi chung là Vice đằng sau tên của phần mềm chúng chạy, giới thiệu shared
name space với máy khách như tập tin đồng nhất, và vị trítrong file hệ thống phân
cấp là đồng nhất. local namespace là hệ thống tập tin gốc của máy khách, từ đó
xuống shared name space. Máy khách chạy giao thức Virtue để giao tiếp với Vice
và cần có 1 đĩa cục bộ để lưu trữ local name space. Các máy chủ nói chugn chịu
trách nhiệm lưu trữ và quản lý share name space. Local name space là nhỏ , và riêng
biệt cho máy khách, và chứa các chương trình hệ thống thiết yếu cho các thao tác tự
trị và hiệu suất tốt hơn. Cục bộ là tập tin tạm thời và các tập tin mà máy chủ sở hữu,
và vì lý do riêng tư mà muốn lưu giữ cục bộ.

Xét ở mức độ chi tiết hơn, máy chủ và máy khách được cấu trúc trong cụm
liên kết với nhau bởi 1 mạng WAN. Mỗi cụm bao gồm một tập hợp các máy trạm
trên mạng LAN và 1 đại diện của Vice gọi là mãy chủ Cluster, và mỗi cụm được kết
nối với mạng WAN bằng router. Và sự phân tích thành các cụm được thực hiện chủ
yếu để giải quyết vấn đề về quy mô. Đối vời hiệu suất tối ưu, máy trạm nên sử dụng
các máy chủ trên cluster của nó trên hầu hết thời gian, điều này làm cho tham chiếu
tập tin không thường xuyên tương đối.

14
Chapter 17: Distributed File System
Các kiến trúc hệ thống tập tin cũng là dựa trên những cân nhắc về quy mô.
Các heuristic cơ bản được dùng để giảm bớt công việc từ máy chủ cho khách hàng,
và theo kinh nghiệm cho rằng tốc độ CPU của máy chủ là điểm tắc nghẽn của hệ
thống. Sau heuristic , chính là cơ chế lựa chọn tập tin từ xa cho các hoạt động của
bộ nhớ Cache để có các tập tin lớn khoảng 64KB. Tính năng này làm giảm độ trễ
của tập tin, cho phép ghi và đọc được hướng dẫn đến các bản sao lưu trữ mà không
cần sao chép thường xuyên đến các máy chủ.

Sau đây là 1 số vấn đề ngắn gon để bổ sung về thiết kế trong AFS:

- Client mobility: Client có thể truy cập bất cứ các tập tin trong không gian tên
shared name space được chia sẽ từ máy trạm vào. Client có thể nhận thấy
một số suy giảm về hiệu suất ban đầu vì lưu trữ vào các bộ nhớ Cache của
các tập tin khi truy cập vào các tập tin từ 1 máy trạm khác.
- Security: Giao diện Vice được coi là ranh giới của sự tin cậy, bởi vì không
có chương trình nào của Client đươch thực hiện trên Vice. Việc xác thực và
truyền tải chức năng an toàn được cung cấp như 1 phần của giao tiếp dựa
trên gói, kết nối dựa trên mô hình RPC. Sauk hi xác thực , Vice và máy
khách truyền đạt 1 thông tin qua tin nhắn được mã hoá. Mã hoá được thực
hiện bởi các thiết bị phần cứng hoặc phần mềm. Thông tin về Client và nhóm
được lưu trữ trong 1 cơ sở dữ liệu bảo vệ nhân bản tại mỗi máy chủ.
- Protection: AFS cung cấp danh sách truy cập để bảo vệ các thư mục và các
Bit UNIX thường xuyên để bảo vệ các tập tin. Dang sách truy cập có thể
chứa các thông tin về các người dùng được phép truy cập vào 1 thư mục,
cũng như thông tin về các người dùng không được phép truy cập nó. Vì vậy
thật đơn giản khi xác định mọi người có thể truy cập hay không, chẳng hạn
như Jim có thể truy cập thư mục hay không? AFS hỗ trợ loại truy cập đọc,
ghi, tra cứu chèn, quản lý, xoá bỏ.
- Heterogeneity:Định nghĩa 1 giao diện rõ ràng cho Vice là chìa khoá để tích
hợp phần cứng của máy trạm và hệ điều hành. Vì vậy, tính không đồng nhất
là điều khiện thuận lợi , một số tập tin trong thư mục hoặc thùng thư mục
phổ biến đường dẫn chỉ vào máy cụ thể tập tin có thể thi hành Vice.

17.6.2 The Shared Name Space:

AFS shared name space bao gồm thành phần đơn vị được gọi là volumes.
Volumes nhỏ khác thường là thành phần đơn vị. Thông thường, chúng có liên quan
tới các tập tin của Client. Ít có volumes nào thường trú trong phân vùng đĩa đơn, và
chúng có thể phát triển và thu nhỏ lại kích thước. Về khái niệm, volumes và phần
mềm bổ sung với nhau bằng cơ chế gắn kết UNIX. Tuy nhiên, sự khác biệt chi tiết
rất quan trọng, vì trong UNIX chỉ 1 phân vùng toàn bộ đĩa ( chứa hệ tập tin) có thể
gắn kết. Volumes là 1 đơn vị hành chính quan trọng và đóng vai trò quan trọng
trong việc nhận dạng và định vị các tập tin cá nhân.

Một tập tin hoặc thư mục Vice được nhận biết bởi mã nhận diện được gọi là
Fid. Mỗi mục của thư mục AFS ánh xạ thành phần tên đường dẫn tới Fid. Một Fid
có chiều dài là 96 bit và được chia bằng nhau ở các thành phần: a volume number, a
vnode number,and a uniquifier. Vnode number được dùng như một chỉ số vào 1
mảng có chứa các phương thức của các tập tin trong 1 thể duy nhất. Uniquifier cho
15
Chapter 17: Distributed File System
phép sử dụng lại vnode number, do đó giữ 1 số dữ liệu cấu trúc nhỏ gọn. Fid có
được vị trí trong suốt, do vậy chuyển động tập tin từ máy chủ đến máy chủ không
huỷ bỏ nội dung thư mục trong bộ nhớ Cache.

Thông tin định vị được lưu giữ trên volume-location database, vị trí cơ sở dữ
liệu nhân bản trên mỗi máy chủ. Mỗi Client có thể xác định vị trí của từng Volume
trong hệ thống bằng cách truy vấn cơ sở dữ liệu này. Các tập hợp của các tập tin
vào Volume làm cho nó có thể giữ các cơ sở dữ liệu tại một vị trí dễ quản lý.

Để cân bằng không gian đĩa có sẵn và không gian sử dụng của các máy chủ ,
volume cần được di chuyển giữa các phân vùng đĩa và máy chủ. Khi volume được
gởi đến vị trí mời của nó, máy chủ ban đầu của nó tạm thời rời khỏi với thông tin
của nó, để các cơ sở dữ liệu không cần phải cập nhật đồng bộ vị trí. Trong khi
volume được chuyển giao, máy chủ ban đầu vẫn có thể xử lý thông tin cập nhật vừa
mới chuyển tới. Vào 1 thời điểm nào đó, volume có những thay đổi nhanh sao cho
có thể sửa đổi được sau đó, volume mới có lại site mới. Các hoạt động của nó trở
nên nguy hiểm nếu một trong 2 máy chủ có vấn đề hoặc thao tác bị bỏ dở.

Sự sao chép chỉ đọc tại các chi tiết của toàn bộ Volume được hỗ trợ cho hệ thống
tập tin thực thi và cho cập nhật các File hiếm khi ở các cấp trên của Vice. Các vị trí
xác định Volume cho cơ sở dữ liệu xác định máy chủ chứa bản sao đọc ghi duy
nhất của Volume và danh sách các site chỉ cho đọc.

17.6.3 Tập tin thao tác và Consistency Semantics

Các nguyên tắc kiến trúc cơ bản trong AFS là lưu trữ tạm vào bộ nhớ cache
của toàn bộ tập tin từ máy chủ. Vì vậy, trạm làm việc máy khách tương tác với Vice
máy chủ chỉ trong mở và đóng các tập tin, và tương tác này thậm chí không phải lúc
nào cũng cần thiết. Đọc và ghi tập tin không gây ra tương tác từ xa. Điểu phân biệt
then chốt này có khía cạnh phát sinh sâu rộng cho hiệu năng, cũng như cho ngữ
nghĩa của tập tin thao tác.

Hệ điều hành trên mỗi máy trạm chặn hệ tập tin gọi và gởi chúng đến máy
khách - quy trình mức trên máy trạm. Quá trình này, được gọi là Venus, bộ nhớ
cache lưu trữ các tập tin từ Vice khi chúng đang mở và lưu trữ sửa đổi bản sao của
tập tin lùi vào máy chủ từ đó chúng đi đến khi chúng đóng cửa. Venus có thể liên
lạc Vice chỉ khi tập tin đang mở hoặc đóng ; đọc và ghi của byte cá nhân của tập tin
được thực hiện trực tiếp trên bản sao được lưu trữ đệm và né tránh Venus. Kết quả
là khi ghi ở một số site là thấy được ngay lập tức tại site khác.

Caching là thêm khai thác và phát triển cho tương lai của tập tin bộ nhớ
cache. Venus giả sử rằng mục nhập bộ nhớ đệm ( thư mục hay tập tin ) là hợp lệ trừ
phi có thông báo khác. Do đó, Venus không cần liên lạc với Vice trên tập tin mở để
xác nhận bản sao được lưu trữ đệm. Cơ chế để hỗ trợ chính sách này, được gọi đi
gọi lại, giảm đáng kể số của bộ nhớ cache - xác nhận yêu cầu nhận được bởi các
máy chủ. Nó làm như sau. Khi một client lưu trữ 1 tập tin hoặc 1 thu mục, các bản
cập nhật của máy chủ cập nhật thông tin trạng thái của mình để ghi lại trên Cache.
Chúng ta nói rằng client có gọi lại vào tập tin. Máy chủ thông báo cho client trước
để một client khác sửa đổi tập tin. Ở trường hợp như vậy, chúng tôi nói rằng máy
16
Chapter 17: Distributed File System
chủ tháo gỡ cuộc gọi lại trên tập tin cho client cũ. Client có thể dùng tập tin bộ nhớ
cache cho mục đích mở các tập tin có gọi lại. Nếu client đóng tập tin sau sửa đổi, tất
cả client khác lưu trữ tạm vào bộ nhớ cache tập tin này mất gọi lại của chúng. Do
đó, khi máy khách này mở tập tin sau này, chúng phải được phiên bản mới từ máy
chủ.

Đọc và ghi byte của tập tin đã làm xong trực tiếp bởi nhân mà không có can
thiệp của Venus trên bản sao được lưu trữ đệm. Venus lấy lại điều khiển khi tập tin
đóng lại. Nếu tập tin đã được sửa đổi tại chỗ, nó cập nhật tập tin trên máy chủ thích
hợp. Vì vậy, dịp duy nhất khi Venus liên lạc là Vice máy chủ đang mở tập tin hoặc
là trong bộ nhớ cache đã có thu hồi lại và đóng tập tin sửa đổi tại chỗ.

Về cơ bản, AFS triển khai phiên ngữ nghĩa. Ngoại lệ duy nhất là hoạt động
của thao tác tập tin ngoại trừ đọc và ghi( như là sự bảo vệ những thay đổi ở cấp thư
mục ), có thể nhìn thấy rõ khắp nơi trên mạng sau khi hoàn chỉnh thao tác.

Mặc dù gọi lại cơ chế, một lượng nhỏ xác nhận làm hợp lệ bộ nhớ cache vẫn
còn có mặt, thường để thay thế gọi lại vì thất bại của máy hoặc mạng bị lỗi. Khi
máy trạm khởi động lại, Venus xem xét tất cả bộ nhớ cache của các tập tin và thư
mục bị nghi ngờ, và nó tạo ra một yêu cầu bộ xác nhận hợp lệ cho việc sử dụng bộ
nhớ cache.

Các cơ chế gọi lại buộc mỗi máy chủ phải duy trì thông tin cuộc gọi lại và
mỗi máy khách phải duy trì tính hợp lệ thông tin. Nếu số lượng thông tin gọi lại duy
trì bởi máy chủ là quá nhiều, máy chủ có thể phá vỡ gọi lại và nhập lại một số lưu
trữ bằng thông báo đơn phương với máy khách và thu hồi tính hợp lệ của tập tin
dùng bộ nhớ cache của chúng. Nếu gọi lại trạng thái duy trì bởi Venus thoát khỏi
đồng bộ với trạng thái tương ứng duy trì bởi máy chủ, một số tính không nhất quán
có thể resut. Venus cũng lưu trữ nội dung biểu tượng thư mục và liên kết bộ nhớ
cache. Mỗi thành phần trong tên đường dẫn là tìm nạp, và gọi lại được thiết lập vì
điều đó nếu nó chưa được lưu trữ hoặc nếu máy khách không có gọi lại vào nó.
Venus không có sự tra cứu trên thư mục tìm nạp địa phương, sử dụng Fid. Không
yêu cầu chuyển tiếp từ máy chủ này sang máy chủ khác. Vào cuối phép duyệt tên
đường dẫn, tất cả thư mục trung gian và tập tin đích ở bộ nhớ cache với gọi lại nó.
Gọi mở tương lai cho tập tin này sẽ kéo theo truyền thông mạng không chút nào, trừ
phi gọi lại được vỡ trên thành phần của tên đường dẫn.

Ngoại lệ duy nhất đến chính sách lưu trữ đệm là sửa đổi đến thư mục được
làm trực tiếp trên máy chủ chịu trách nhiệm cho thư mục đó cho lý do của tính toàn
vẹn. Vice giao diện có thao tác được định nghĩa rõ ràng cho các mục đích. Venus
phản ánh thay đổi bản sao được lưu trữ đệm của nó để tránh tìm nạp lại thư mục.

17.6.4 Implementation

Client được thực hiện quá trình giao tiếp với nhân Unix với các thiết lập
cuộc gọi thông thường của hệ thống. Phần lõi là sửa đổi đôi chút để phát hiện tham
chiếu với Vice trong các thao tác liên quan và để gởi có yêu cầu đến máy khách -
mức quy trình Venus tại máy trạm.

17
Chapter 17: Distributed File System
Venus thực hiện phiên dịch tên đường dẫn bằng thành phần, như mô tả ở
trên. Nó có bộ nhớ cache lập bản đồ lầ khối liên kết đến các vị trí máy chủ để tránh
máy chủ thẩm vấn cho vị tríVolume . Nếu Volume không có mặt trong bộ nhớ
cache này, Venus liên lạc máy chủ nào mà nó đã có kết nối, yêu cầu thông tin định
vị, và nhập thông tin vào bản đồ bộ nhớ cache. Trừ phi Venus đã có kết nối đến
máy chủ, nó thiết lập kết nối mới. Sau đó, nó dùng kết nối này để tìm nạp tập tin
hoặc thư mục. Thiết lập kết nối là được nhu cầu về việc xác thực và bảo mật mục
đích. Khi tập tin đích được tìm thấy và bộ nhớ cache, một bản sao đã được tạo lập
trên đĩa cục bộ. Venus rồi quay lại phần lõi, mở bản sao được lưu trữ đệm và gửi trả
xử lý của nó đến quy trình Client.

Hệ tập tin UNIX được dùng làm hệ thống lưu trữ mức thấp cho cả hai AFS
máy chủ và máy khách. Bộ nhớ cache của client là thư mục cục bộ trên đĩa của máy
trạm. Trong thư mục này là tập tin có tên là placeholders nhập bộ nhớ đệm. Cả hai
Venus và tập tin UNIX truy cập quy trình máy chủ trực tiếp bằng chế độ người sau
của để tránh đường dẫn mắc name-to-inode định danh phiên dịch thường trình
( namei ).

Bởi vì giao diện định danh bên trong không phải hiển thị cho client ( cả hai
Venus và các qua trình máy chủ được khách hàng cấp tiến trình), một bộ tích hợp
tập hợp các cuộc gọi hệ thống bổ sung được thêm vào. DFS dùng hệ thống tập tin
tài liệu ghi chép riêng của mình để cải thiện hiệu năng và độ tin cậy trên UFS.

Venus quản lý hai bộ nhớ cache riêng biệt : một cho tình trạng và một cho
kích thước. Trong dữ liệu, nó sử dụng thuật toán least-recently-used ( LRU ) để giữ
mỗi người trong đó giới hạn ở kích thước. Khi tập tin bị xoá khỏi bộ nhớ cache,
Venus thông báo máy chủ thích hợp để tháo gỡ lời gọi cho tập tin này. Tình trạng
bộ nhớ cache là giữ trong bộ nhớ ảo để cho phép dịch vụ nhanh chóng của stat ( )
( tập tin - tình trạng - gửi trả ) cuộc gọi hệ thống. Bộ nhớ đệm dữ liệu là thường trú
trên đĩa cục bộ, nhưng UNIX I / O lập vùng đệm cơ chế có một số lưu trữ tạm vào
bộ nhớ cache của đĩa khối trong bộ nhớ là minh bạch đến Venus.

Một quy trình duy nhất của client trên dịch vụ máy chủ tập tin là tất cả tập tin
yêu cầu từ client. Quá trình này sử dụng 1 quá trình gọn nhẹ với lịch biểu
preemptible để dịch vụ nhiều khách hàng yêu cầu đồng thời. Các gói RFC là tích
hợp với quy trình gói gọn nhẹ, do đó để máy chủ tập tin đồng thời làm hoặc dịch vụ
một RPC mỗi quy trình nhẹ.

Các gói RPC được xây dựng trên đầu trang của 1 gói dữ liệu trừu tượng cấp
độ thấp.File được triển khai như hiệu ứng phụ của gọi RPC. Một RPC kết nối tồn
tại mỗi máy khách, nhưng không có kết gán priori của quy trình nhẹ để kết nối này.
Thay vào đó, một yêu cầu từ client về quy trình dịch vụ nhẹ trên tất cả các kết nối.
Sử dụng quy trình máy chủ multithreaded đơn cho phép lưu trữ tạm vào bộ nhớ
cache của cấu trúc dữ liệu cần yêu cầu dịch vụ. Về mặc tiêu cực, tai nạn của một
máy phục vụ quy trình có ảnh hưởng thảm khốc của làm tê liệt máy chủ đặc biệt
này.

17.7 Tóm tắt:

18
Chapter 17: Distributed File System
Một DFS là một dịch vụ hệ thống tập tin mà client , máy chủ, và thiết bị lưu
trữ được phân tán giữa site của hệ thống phân phối. Vì vậy, dịch vụ hoạt động phải
được thực hiện qua mạng ; thay vì trung tâm lưu trữ dữ liệu tập trung duy nhất, có
nhiều thiết bị lưu trữ độc lập. Lý tưởng nhất là DFS cần nhìn cho máy khách của nó
như quy ước, tập trung hệ tập tin. Việc đa dạng và phân tán của máy chủ và thiết bị
lưu trữ của nó nên làm minh bạch. Đó là, giao diện client của DFS không nên phân
biệt cục bộ và tập tin từ xa. Tùy vào quyết định của DFS để định vị tập tin và để sắp
đặt cho vận chuyển dữ liệu. DFS trong suốt tạo điều kiện thuận lợi máy khách tính
cơ động do mang môi trường của máy khách đến site nơi máy khách đăng nhập.

Có vài phương pháp để đặt tên kế hoạch trong DFS. Ở phương pháp đơn
giản, tập tin được nêu tên do một số kết hợp của tên máy chủ và tên cục bộ, bảo
đảm tên hệ thống là duy nhất trên toàn hệ thống. Một phương pháp khác, phổ biến
hơn NFS, cung cấp phương pháp cho đính kèm thư mục từ xa đến thư mục cục bộ,
do đó có vẻ như cây thư mục mạch lạc. Yêu cầu để truy cập tập tin từ xa thường xử
lý bằng phương pháp bổ sung. Với dịch vụ từ xa, yêu cầu cho truy cập được chuyển
đến máy chủ. Các máy chủ thực hiện truy cập, và kết quả của chúng được chuyển
tiếp quay trở lại máy khách. Với lưu trữ tạm vào bộ nhớ cache, nếu dữ liệu cần đáp
ứng truy cập yêu cầu không được lưu trữ, sau đó bản sao dữ liệu được mang từ máy
chủ đến máy khách. Truy cập được thực hiện trên bản sao được lưu trữ trên Cache.
Ý tưởng là để giữ lại khối đĩa truy cập gần đó trong bộ nhớ cache, sao cho lặp lại
truy cập vào cùng thông tin có thể được xử lý cục bộ, không có lưu lượng mạng bổ
sung. Chính sách thay thế được dùng để giữ kích thước bộ nhớ cache giới hạn. vấn
đề về giữ bản sao bộ nhớ cache nhất quán với tập tin chính fe của bộ nhớ cache và
tính nhất quán vấn đề.

Có hai phương pháp tiếp cận thông tin bên máy chủ. Hoặc là máy chủ theo
dõi mỗi tập tin truy cập của client, hoặc nó chỉ cần cung cấp khối khi client yêu cầu
mà không cần kiến thức về sử dụng của chúng. Phương pháp này đầy đủ trạng thái
đối với mẫu sendee của mô hình so với trạng thái máy.

Sự sao chép các tập tin khác nhau trên máy là không hữu ích để cải thiện tính
sẵn sàng. Sự sao chép multimachine có thể được hưởng quyền lợi thực hiện, từ khi
chọn bản sao cơ sở dữ liệu gần đó để phục vụ yêu cầu truy cập dẫn đến thời gian
dịch vụ ngắn. AFS là một DFS giàu tính năng đặc trưng bởi vị trí độc lập và vị trí
trong suốt. Nó cũng áp đặt tính nhất quán đáng kể. Lưu trữ tạm vào bộ nhớ cache và
sự sao chép được dùng để cải thiện hiệu năng.

19
Chapter 17: Distributed File System

Nhóm 6:
Trần Minh Tính MSSV: 07520362
Phạm Hoài Phước MSSV: 07520292
Võ Đình Chinh MSSV: 07520456
Trần Thị Thanh Tâm MSSV: 07520498

20

You might also like