Tạ Minh Thanh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
86(10): 67 - 74<br />
<br />
ĐỀ XUẤT XÂY DỰNG HỆ THỐNG CHIA SẺ TÀI NGUYÊN<br />
DỰA TRÊN HỆ LƯU TRỮ PHÂN TÁN VÀ KIỂM SOÁT TRUY CẬP<br />
<br />
Tạ Minh Thanh1*, Nguyễn Hiếu Minh1, Đỗ Thị Bắc2<br />
Học viện Kỹ thuât quân sự,<br />
<br />
1<br />
2<br />
<br />
Trường Đại học Công nghệ thông tin và truyền thông<br />
<br />
TÓM TẮT<br />
Các hệ thống chia sẻ trên mạng hiện nay thường theo mô hình client-server. Do đó, các truy xuất dữ liệu trên<br />
mô hình này đều phụ thuộc vào hệ điều hành mạng hay server chia sẻ xong lại không đồng nhất trên nhiều<br />
phiên bản OS. Bên cạnh đó, một mô hình mạng chia sẻ Peer-to-Peer (P2P) không quan tâm đến quản lý người<br />
sử dụng và truy xuất dữ liệu lại đang phát triển mạnh mẽ dẫn đến một số vấn đề về tự do truy cập tài nguyên<br />
và vi phạm bản quyền sản phẩm. Trên cơ sở đó, bài báo đề xuất hệ thống chia sẻ tài nguyên mới dựa trên hệ<br />
lưu trữ phân tán kết hợp kiểm soát truy cập để khắc phục các vấn đề của các hệ thống chia sẻ hiện nay.<br />
Từ khóa: client - server, hệ thống chia sẻ tài nguyên, Peer-to-Peer, lưu trữ phân tán, kiểm soát truy cập.<br />
<br />
<br />
TỔNG QUAN<br />
Trong những năm gần đây, với sự phát triển mạnh<br />
mẽ của internet với băng thông rộng như ADSL,<br />
FTTH, ... người dùng đầu cuối có thể trao đổi các<br />
sản phẩm multimedia dung lượng lớn dễ dàng và<br />
hiệu quả. Bên cạnh đó, sự ra đời của các thiết bị<br />
lưu trữ công nghệ cao, giá thành rẻ giúp người<br />
dùng có thể lưu trữ thuận tiện và có thể chia sẻ<br />
mọi lúc, mọi nơi các sản phẩm số qua internet.<br />
Chính vì có sự phát triển mạnh mẽ về công nghệ<br />
mà nhu cầu trao đổi dữ liệu trong mạng của các tổ<br />
chức cũng đang ngày một tăng và có xu hướng<br />
bùng nổ.<br />
Hiện nay, các hệ thống chia sẻ file hoạt động trên<br />
mạng network đã được biết đến rộng rãi. Mỗi hệ<br />
thống được tận dụng hiệu quả dựa trên các đặc<br />
điểm của hệ thống để quản lý người dùng hay<br />
quản lý dữ liệu được chia sẻ. Các hệ thống chia sẻ<br />
file hoạt động phụ thuộc vào hệ điều hành (OS:<br />
Operating System) như NFS, Netware, LAN<br />
Manager, ... được biết đến là các hệ thống có tổ<br />
chức chặt chẽ với quản lý phân quyền, chia sẻ đối<br />
với từng người dùng khi truy cập vào hệ thống<br />
nhưng phải có sự cho phép của server. Mặt khác,<br />
các hệ thống chia sẻ file mà không phụ thuộc vào OS,<br />
hoạt động trên mô hình client-server được phát<br />
triển mạnh mẽ hơn cả. Hệ thống bao gồm hai<br />
phương thức chính: lợi dụng FTP server, HTTP<br />
server để chia sẻ file hoặc giao thức peer-to-peer<br />
(P2P) để mở rộng mạng lưới chia sẻ và sử dụng tài<br />
nguyên như Napster, Gnutella[1], Freenet[2],<br />
BitTorrent, Winny, ... Trái ngược với việc người<br />
dùng đầu cuối bị quản lý chặt chẽ bởi server trên<br />
<br />
<br />
Email: taminhjp@gmail.com<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
các hệ thống chia sẻ file phụ thuộc OS, các hệ<br />
thống chia sẻ file không phụ thuộc OS không quản<br />
lý người dùng đầu cuối mà cung cấp một môi<br />
trường chia sẻ file tự do cho người dùng cuối khi<br />
truy cập vào mạng chia sẻ. Chính việc tự do trong<br />
sử dụng tài nguyên chia sẻ nên có nhiều vấn đề về<br />
quản lý truy cập tài nguyên bản quyền dẫn đến vi<br />
phạm bản quyền sản phẩm số, bản quyền phần<br />
mềm và bảo mật hệ thống.<br />
Trước vấn đề trên, việc xây dựng một hệ thống<br />
chia sẻ tài nguyên thân thiện và dễ sử dụng như<br />
mạng P2P, đồng thời quản lý được việc truy xuất<br />
tài nguyên đối với người dùng đầu cuối là cần<br />
thiết. Nếu xây dựng hệ thống chia sẻ tài nguyên<br />
trong điều kiện các hệ thống OS khó thống nhất<br />
được như hiện nay mà vẫn đòi hỏi có sự quản lý<br />
về truy cập đối với người dùng cuối thì buộc phải<br />
sử dụng phương thức client-server. Tuy nhiên, nếu<br />
sử dụng mô hình client-server thì việc server phải<br />
chịu tải lớn trong việc điều khiển truy cập, quản lý<br />
người dùng phức tạp, duy trì server, ... gặp nhiều<br />
khó khăn. Để giải quyết được các vấn đề gặp phải<br />
trong mô hình client-server, ta có thể sử dụng giao<br />
thức P2P để triển khai hệ thống chia sẻ tài nguyên;<br />
song khi sử dụng kỹ thuật P2P để xây dựng thì<br />
không có cơ chế giám sát và quản lý người dùng<br />
đầu cuối. Hơn nữa, trong cả hai mô hình nói trên,<br />
do file chia sẻ phụ thuộc vào hệ thống mạng chia<br />
sẻ (các server, các máy chứa file tham gia mạng<br />
P2P) nên việc chia sẻ file trong các mô hình mạng<br />
hiện nay chưa đạt hiệu quả tốt nhất. Do đó, bài báo<br />
đề xuất phương án xây dựng hệ thống chia sẻ tài<br />
nguyên phân tán trên cơ sở tận dụng các tài<br />
nguyên trống dư thừa trên mạng và sử dụng giao<br />
thức P2P. Trong hệ thống này, một file chia sẻ<br />
67<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Tạ Minh Thanh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
86(10): 67 - 74<br />
<br />
được phân chia làm nhiều mảnh dữ liệu và được<br />
lưu trữ phân tán trên các thiết bị lưu trữ còn dư<br />
thừa trên mạng để tận dụng hiệu quả các nguồn tài<br />
nguyên trên mạng. Các máy tính tham gia cung<br />
cấp dung lượng lưu trữ trong mạng P2P sẽ đóng<br />
vai trò như một servent[3] để cấu hình nên kho dữ<br />
liệu phân tán. Ngoài ra, khi dữ liệu được phân chia<br />
làm nhiều mảnh nhỏ, có thể thêm vào các thông<br />
tin cần thiết để quản lý truy cập và phục hồi dữ<br />
liệu khi hệ thống gặp sự cố. Phần 2 của bài báo<br />
phân tích các hệ thống chia sẻ tài nguyên hiện nay<br />
và các nhược điểm chủ yếu. Từ đó, đưa ra mô hình<br />
đề xuất trong phần 3. Cuối cùng, bài báo đánh giá<br />
mô hình đề xuất và tính khả thi khi triển khai<br />
trong thực tế.<br />
<br />
dữ liệu trên các máy sẽ được kết nối (mount) vào<br />
cơ sở dữ liệu của NFS và chia sẻ trên mạng.<br />
<br />
CÁC HỆ THỐNG CHIA SẺ HIỆN NAY<br />
<br />
Napster, Gnutella, Freenet, ... là hệ thống chia sẻ<br />
tài nguyên đại diện cho giao thức P2P. Với các<br />
phần mềm này, người dùng đầu cuối có thể chia<br />
sẻ, trao đổi dữ liệu thông qua upload và download.<br />
Thực chất, hệ thống P2P là mạng ngang hàng<br />
được tự hình thành bởi người dùng đầu cuối khi có<br />
nhu cầu sử dụng. Mạng P2P có thể được phân ra<br />
làm 2 loại là hỗn hợp (Hybrid) và thuần nhất<br />
(Pure).<br />
<br />
Các loại hệ thống chia sẻ tài nguyên<br />
Trong các loại hệ thống chia sẻ được sử dụng rộng<br />
rãi hiện nay, có thể chia thành hai loại cơ bản sau:<br />
Loại 1: Đây là hệ thống chia sẻ tài nguyên phụ<br />
thuộc vào hạ tầng cung cấp cho tầng mạng hay các<br />
OS riêng biệt. Hệ thống này sẽ tận dụng chức năng<br />
quản lý người dùng của OS để quản lý việc chia sẻ<br />
tài nguyên và truy xuất dữ liệu. Tuy nhiên, trong<br />
điều kiện phát triển phong phú các dạng multiplatform như hiện nay, việc thống nhất các giao<br />
thức cho các hệ thống chia sẻ trên nhiều OS là khá<br />
phức tạp. Tóm lại, các hệ thống chia sẻ tài nguyên<br />
loại 1 phụ thuộc rất nhiều vào các platform. Ví dụ,<br />
trên UNIX có hệ thống NFS (Network File<br />
Sytem); trên Microsoft có hệ thống LAN<br />
Manager.<br />
Loại 2: Đây là hệ thống chia sẻ tài nguyên được<br />
phát triển để phù hợp với môi trường multiplatform hiện nay. Hệ thống này vượt qua giới hạn<br />
quản lý người dùng đầu cuối khi truy cập vào<br />
mạng chia sẻ. Bất cứ người dùng đầu cuối nào khi<br />
tham gia vào hệ thống chia sẻ đều có thể là servent<br />
độc lập. Giao thức tiêu biểu sử dụng trong hệ<br />
thống này là hệ thống P2P.<br />
Network File Sytem (NFS)[4]<br />
NFS cung cấp chức năng chia sẻ tài nguyên cho<br />
nhiều hệ thống UNIX workstation. NFS sử dụng<br />
giao thức Run RPC, khi truyền dữ liệu thì sử dụng<br />
UDP/IP. Hệ thống chia sẻ tài nguyên NFS có chức<br />
năng như hệ thống tài nguyên trên máy cá nhân;<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
NFS không cung cấp chức năng quản lý người<br />
dùng đầu cuối mà sử dụng chức năng quản lý<br />
người dùng của OS. Chính vì vậy, nếu vượt qua hệ<br />
thống một OS đồng nhất thì NFS không thể quản<br />
lý được người dùng. Mặt khác, độ bảo mật của dữ<br />
liệu được chia sẻ hoàn toàn phụ thuộc vào chức<br />
năng quản lý người dùng và bảo mật của OS. Bởi<br />
vậy, hệ thống chia sẻ tài nguyên NFS chỉ thích<br />
hợp với môi trường đồng nhất OS và sẽ có hiệu<br />
quả khi bảo mật hệ thống được bảo đảm trong toàn<br />
mạng.<br />
Giao thức P2P<br />
<br />
Napster là một dạng hệ thống thuộc loại Hybrid.<br />
Khi các servent khởi động ứng dụng Napster thì<br />
đồng thời tự động kết nối và sau đó các servent sẽ<br />
gửi danh sách các content mình có đến Napster<br />
server. Các lệnh tìm kiếm content được thực hiện<br />
thông qua gửi câu lệnh Query đến Napster server.<br />
Napster server sẽ gửi trả lại kết quả tìm kiếm<br />
(người sở hữu, chất lượng content, ...) cho servent<br />
tương ứng. Khi đó, servent sẽ thiết lập liên kết<br />
TCP với servent sở hữu content và dữ liệu bắt đầu<br />
được truyền tải.<br />
Bên cạnh đó, Gnutella và Freenet là hệ thống<br />
thuộc loại Pure. Trong đó, các servent sau khi khởi<br />
động sẽ thiết lập kết nối TCP và duy trì để tạo<br />
mạng trao đổi content. Loại Pure khác với loại<br />
Hybrid ở chỗ không tồn tại một server để quản lý<br />
thông tin content, việc tìm kiếm và phát hiện<br />
content được thực hiện trên toàn mạng.<br />
Thông thường, các hệ thống chia sẻ bằng giao<br />
thức P2P được thực hiện bằng phương thức chia sẻ<br />
danh sách dữ liệu sở hữu của các servent. Việc lưu<br />
trữ các dữ liệu chia sẻ được thực hiện riêng biệt<br />
68<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Tạ Minh Thanh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
trên các servent; tìm kiếm dữ liệu chia sẻ được<br />
thực hiện trên cơ sở danh sách dữ liệu sở hữu của<br />
các servent.<br />
Vấn đề điều khiển truy cập tài nguyên chia sẻ<br />
được thực hiện bởi các servent nên khác biệt hoàn<br />
toàn với hệ thống NFS. Các điều khiển truy xuất dữ<br />
liệu đối với người dùng được thực hiện thông qua<br />
việc trao đổi các thông điệp điều khiển (control<br />
message) giữa các servent. Hầu hết các servent<br />
tham gia mạng P2P đều có thể tự chia sẻ và tự quản<br />
lý tài nguyên.<br />
Các vấn đề cần khắc phục<br />
Với các hệ thống chia sẻ tài nguyên nêu trên, ta có<br />
được bảng tổng hợp đặc trưng của chúng như sau:<br />
Hầu hết các hệ thống chia sẻ hiện nay đều không<br />
có chức năng quản lý truy cập của người dùng đầu<br />
cuối. Bên cạnh đó, các tài nguyên được chia sẻ<br />
trên mạng đều lưu trữ trên thiết bị của server hay<br />
servent để phục vụ cho nhu cầu upload và<br />
download của client nên tài nguyên chia sẻ phụ<br />
thuộc vào mạng chia sẻ được hình thành; dẫn đến<br />
việc không tận dụng được hết các dung lượng dư<br />
thừa của các thiết bị lưu trữ trên mạng.<br />
HỆ THỐNG CHIA SẺ TÀI NGUYÊN DỰA<br />
TRÊN HỆ LƯU TRỮ PHÂN TÁN<br />
Điều kiện cần<br />
Bảng 1. Đặc trưng của các hệ thống chia sẻ<br />
Phân<br />
loại<br />
<br />
Ví dụ<br />
<br />
Đặc trưng<br />
<br />
NFS<br />
Lan<br />
Manager<br />
<br />
- Tài nguyên chia sẻ tồn tại<br />
trong cấu trúc mạng<br />
- Không có chức năng điều<br />
khiển truy cập mà phụ thuộc<br />
vào OS<br />
- Tính bảo mật của tài<br />
nguyên chia sẻ không cao<br />
<br />
Napster<br />
Gnutella<br />
Freenet<br />
Winny<br />
<br />
- Tài nguyên chia sẻ tồn tại<br />
trên từng thực thể servent<br />
- Không có chức năng điều<br />
khiển truy cập mà phụ thuộc<br />
vào thông điệp điều khiển<br />
- Tính bảo mật của tài<br />
nguyên chia sẻ thấp<br />
<br />
Loại 1<br />
<br />
Loại 2<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
86(10): 67 - 74<br />
<br />
Giả sử trong một mạng qui mô nhỏ, các máy tính<br />
tham gia mạng có dung lượng ổ cứng lớn để lưu<br />
trữ dữ liệu. Thông thường, chúng không sử dụng<br />
hết dung lượng ổ cứng nên trên toàn mạng tổng<br />
dung lượng dư thừa ổ đĩa rất lớn [5,6]. Vậy nếu<br />
xây dựng một hệ thống chia sẻ tài nguyên trên cơ<br />
sở tận dụng các nguồn lưu trữ dư thừa trên toàn<br />
mạng sẽ tận dụng được khá hiệu quả dung lượng<br />
dư thừa, nâng cao được hiệu suất sử dụng thiết bị<br />
lưu trữ. Trên có sở đó, chúng tôi đã đề xuất kỹ<br />
thuật kiểm soát truy cập nguồn tài nguyên chia sẻ<br />
của mạng đến người dùng đầu cuối để nâng cao<br />
tính bảo mật tài nguyên chia sẻ.<br />
Hệ thống đề xuất<br />
Với điều kiện trên, chúng tôi đề xuất mô hình hệ<br />
thống chia sẻ tài nguyên trên hệ lưu trữ phân tán<br />
như trong hình 1.<br />
Trong hình 1, người phân phối (người phục hồi),<br />
người lưu trữ sử dụng các máy tính có dung lượng<br />
lưu trữ phân tán được sử dụng trong hệ thống chia<br />
sẻ P2P; đóng vai trò là các servent độc lập. Các<br />
servent trong hệ thống đề xuất có thể thực hiện<br />
được các thao tác lưu trữ hay phục hồi dữ liệu chia<br />
sẻ.<br />
Với hệ thống này, các đơn vị dữ liệu của dữ liệu<br />
chia sẻ được phân chia trước khi phân phối để lưu<br />
trữ được gọi là đoạn dữ liệu (segment). Trên mỗi<br />
segment, ta thêm vào thông tin điều khiển để quản<br />
lý truy xuất dữ liệu của người dùng đầu cuối và<br />
các thông tin để phục hồi lại dữ liệu khi có sự cố.<br />
Thông tin trao đổi giữa các servent là trao đổi các<br />
thông tin điều khiển này (gọi là list-information)<br />
để thống nhất quản lý người dùng đầu cuối.<br />
<br />
69<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Tạ Minh Thanh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
86(10): 67 - 74<br />
<br />
các thiết bị lưu trữ của S thông qua listinformation để phục hồi nguyên vẹn dữ liệu ban<br />
đầu. Người phục hồi R có thể phục hồi nguyên<br />
vẹn được các dữ liệu do bản thân mình phân đoạn<br />
và phân phối lưu trữ trên các hệ thống của S.<br />
Xử lý lưu trữ<br />
<br />
Hình 1. Mô hình hệ thống đề xuất<br />
<br />
Trong xử lý lưu trữ, giả sử servent là người phân<br />
phối C có nhu cầu lưu trữ dữ liệu bất kỳ trên mạng<br />
P2P, C sẽ chọn người lưu trữ S trong các servent<br />
trên mạng, sau đó phân đoạn dữ liệu thành nhiều<br />
segment và phân phối lưu trữ trên thiết bị lưu trữ<br />
của S.<br />
Khi đó, người phân phối C cũng phân phối thông<br />
tin phân đoạn dữ liệu trên toàn mạng bao gồm cả<br />
thông tin của người lưu trữ S thông qua cập nhật<br />
list-information.<br />
Mặt khác, trong xử lý phục hồi dữ liệu, nếu<br />
servent là người phục hồi R có yêu cầu phục hồi<br />
dữ liệu đã được lưu trữ phân tán trên mạng, R sẽ<br />
thu thập các segment được phân tán lưu trữ trong<br />
<br />
Hình 2. Cách thức phân đoạn và phân phối segment<br />
<br />
Xử lý phục hồi<br />
Trong xử lý phục hồi dữ liệu, người phục hồi R phải thực<br />
hiện thao tác thu thập tất cả các segment từ mạng chia sẻ dữ<br />
liệu, sau đó tiến hành loại bỏ thông tin điều khiển, kết hợp<br />
dữ liệu để thu được dữ liệu ban đầu. R sẽ trên cơ sở lấy<br />
được các thông tin điều khiển từ S để đánh giá khả năng<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
Trong xử lý lưu trữ, người phân phối C phải thực<br />
hiện các thao tác phân đoạn và phân phối dữ liệu<br />
trên các servent đã lựa chọn. Người phân phối C<br />
sẽ thực hiện phân đoạn dữ liệu đến đơn vị bit cho<br />
từng segment.<br />
Nhờ vậy, sau khi lưu trữ phân tán dữ liệu trên các<br />
thiết bị của S (bao gồm cả C), dữ liệu chia sẻ<br />
không bị phục hồi bất hợp pháp bởi S mà vẫn đảm<br />
bảo tính toàn vẹn khi C hoặc R phục hồi lại dữ<br />
liệu; do đó khẳng định tính tin cậy của hệ thống<br />
chia sẻ tài nguyên. Khi phân đoạn dữ liệu, C thêm<br />
vào thông tin điều khiển cho từng segment là các<br />
thông tin phân phối và phục hồi cho dữ liệu và từ<br />
đó tạo các thông tin điều khiển để phân phối. Sau<br />
khi thực hiện các thao tác phân đoạn và phân<br />
phối, C gửi các thông tin điều khiển thông qua listinformation tạo được cho người lưu trữ S. Các<br />
thao tác phân đoạn và phân phối trên mạng P2P<br />
của C được mô tả trong hình 2.<br />
<br />
Hình 3. Cách thức thu thập và phục hồi các segment<br />
<br />
phục hồi của dữ liệu chia sẻ. Nếu dữ liệu chia sẻ có thể<br />
phục hồi được thì R sẽ kết hợp các segment tương ứng và<br />
tiến hành xử lý phục hồi dữ liệu. Việc đánh giá xem dữ liệu<br />
có thể phục hồi được hay không là căn cứ thông tin điều<br />
khiển (header information) trong các segment khi phân<br />
<br />
70<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Tạ Minh Thanh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
đoạn dữ liệu. Xử lý mà R thực hiện được mô tả trong hình<br />
3.<br />
Quản lý truy xuất tài nguyên chia sẻ<br />
Với hệ thống đề xuất trên, việc quản lý truy xuất tài nguyên<br />
chia sẻ không phụ thuộc vào OS có thể thực hiện được<br />
thông qua việc điều khiển thông tin điều khiển (header<br />
information) của các segment. Từ các thông tin điều khiển<br />
này, lấy được danh sách các segment thuộc dữ liệu đã được<br />
phân đoạn. Vì thế, việc thực hiện truy xuất đối với tài<br />
nguyên chia sẻ trong hệ thống có thể thực hiện được thông<br />
qua các thông tin được cấu thành trong thông tin điều khiển<br />
của segment. Ở đây, quyền truy xuất đối với dữ liệu chia sẻ<br />
trong mạng được phân chia làm hai mức: công khai –<br />
public (trường hợp cả người phân phối và người lưu trữ đều<br />
có thể phục hồi dữ liệu) và bí mật – private (trường hợp chỉ<br />
có người phân phối mới có thể phục hồi được dữ liệu). Với<br />
bảng phân quyền như trong bảng 2 có thể định nghĩa được<br />
các thông tin trong thông tin điều khiển để quản lý truy<br />
xuất dữ liệu chia sẻ (trong đó, √: thỏa mãn và ×: không thỏa<br />
mãn).<br />
Trường hợp muốn công khai chia sẻ tài nguyên, người phân<br />
phối C phân đoạn các segment sao cho thông tin điều khiển<br />
segment của người lưu trữ S giống thông tin điều khiển<br />
segment của người phân phối (Hình 4). Mặt khác, khi muốn<br />
thông tin chia sẻ được giữ bí mật, thông tin điều segment của<br />
người phân phối và người lưu trữ phải khác nhau (Hình 4).<br />
Khi các client (các đối tượng tham gia mạng P2P) muốn truy<br />
xuất tài nguyên chia sẻ trên mạng, các client sẽ trích rút các<br />
thông tin từ thông tin điều khiển của các segment để tạo<br />
thành một danh sách các segment đã được phân phối để lưu<br />
trữ trên S, từ đó kết hợp các segment lại để phục hồi lại<br />
được dữ liệu ban đầu. Trường hợp chỉ người phân phối mới<br />
có thể phục hồi được dữ liệu ban đầu thì người phân phối<br />
sử dụng khóa K đã được mã hóa để phục hồi lại dữ liệu.<br />
<br />
86(10): 67 - 74<br />
<br />
Phương pháp tạo khóa K<br />
Khóa K được tạo ra bởi một hàm số HASH với đầu vào là<br />
các tham số: địa chỉ IP của người phân phối, tên file, địa<br />
chỉ IP của người lưu trữ. Bởi vậy, mỗi một giá trị K được<br />
tạo ra sẽ là tham số duy nhất trong toàn mạng.<br />
Người phân phối C sau khi phân đoạn dữ liệu sẽ dùng địa<br />
chỉ IP của người lưu trữ S để tạo khóa K, sau đó thêm khóa<br />
K là thông tin điều khiển của segment và gửi segment đến<br />
nơi lưu trữ tương ứng. Người phục hồi (thực chất là người<br />
phân phối C) khi muốn phục hồi lại dữ liệu ban đầu thì phải<br />
tạo khóa K và dùng khóa K làm thông tin để tìm kiếm các<br />
segment đã được phân tán trên các ổ lưu trữ.<br />
Trong trường hợp các máy trạm trong mạng được cấu hình<br />
địa chỉ IP động theo dịch vụ DHCP (Dynamic Host<br />
Configuration Protocol) server, các servent sẽ không giữ<br />
được thống nhất địa chỉ IP trong mỗi lần truy cập mạng dẫn<br />
đến việc khó xác định được khóa K đồng nhất để phục hồi<br />
lại dữ liệu ban đầu. Khi đó, việc xác định lại tham số để<br />
sinh ra một khóa K duy nhất là cần thiết. Trong trường hợp<br />
này, khi xác định được mạng có sử dụng dịch vụ DHCP để<br />
cấp phát địa chỉ IP cho các máy trạm, thuật toán sẽ sử dụng<br />
địa chỉ vật lý MAC (Media Access Control) của người phân<br />
phối và người lưu trữ để tạo khóa K và cập nhật vào listinformation.<br />
Khả năng phục hồi dữ liệu khi có sự cố<br />
<br />
Người<br />
lưu trữ S<br />
<br />
S: địa chỉ IP của<br />
người phân phối<br />
N: tên của file<br />
gốc<br />
P: dung lượng<br />
của của file gốc<br />
LD: danh sách<br />
địa chỉ IP của<br />
người lưu trữ<br />
K: Khóa bí mật<br />
của những người<br />
tham gia chia sẻ<br />
tài nguyên<br />
<br />
Private<br />
<br />
Người<br />
phân phối<br />
C<br />
<br />
Header<br />
information<br />
(Nội dung thông<br />
tin header)<br />
<br />
Public<br />
<br />
Đối<br />
tượng sở<br />
hữu<br />
<br />
Dung lượng<br />
<br />
Bảng 2. Thông tin điều khiển<br />
(Header Information)<br />
<br />
√<br />
<br />
√<br />
<br />
32 bit<br />
<br />
√<br />
<br />
√<br />
<br />
16~ bit<br />
<br />
√<br />
<br />
√<br />
<br />
16 bit<br />
<br />
√<br />
<br />
√<br />
<br />
32 bit<br />
<br />
×<br />
<br />
√<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
Hình 4. Cấu trúc của các segment trong điều khiển truy xuất tài<br />
nguyên<br />
<br />
Trên hệ thống lưu trữ phân tán đề xuất, tùy thuộc vào trạng<br />
thái của các servent mà các segment sau khi được phân<br />
đoạn và lưu trữ phân tán không phải lúc nào cũng có thể<br />
thu hồi được đầy đủ để phục hồi lại dữ liệu ban đầu. Bởi<br />
vậy, để giải quyết được vấn đề này, hệ thống lưu trữ phân<br />
tán này có thể thêm vào các thông tin dung lỗi trên các<br />
segment để có thể tự sửa lỗi khi có sự cố xảy ra đối với các<br />
segment đã lưu trữ phân tán. Chính vì thế, hệ lưu trữ phân<br />
tán có thể trở thành một hệ thống chia sẻ tài nguyên bền<br />
vững với khả năng tự dung lỗi khi xảy ra hiện tượng mất dữ<br />
liệu. Tuy nhiên, việc thêm mã sửa lỗi vào các segment và<br />
phân phối lên các servent lưu trữ phân tán cần phải tính<br />
71<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />