Đề xuất xây dựng hệ thống chia sẻ tài nguyên dựa trên hệ lưu trữ phân tán và kiểm soát truy cập

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

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

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

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

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ệ

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.

pdf 8 trang kimcuc 15800
Bạn đang xem tài liệu "Đề xuất xây dựng hệ thống chia sẻ tài nguyên dựa trên hệ lưu trữ phân tán và kiểm soát truy cập", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Đề xuất xây dựng hệ thống chia sẻ tài nguyên dựa trên hệ lưu trữ phân tán và kiểm soát truy cập

Đề xuất xây dựng hệ thống chia sẻ tài nguyên dựa trên hệ lưu trữ phân tán và kiểm soát truy cập
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 67  
ĐỀ XUẤT XÂY DỰNG HỆ THỐNG CHIA SẺ TÀI NGUYÊN 
DỰA TRÊN HỆ LƯU TRỮ PHÂN TÁN VÀ KIỂM SOÁT TRUY CẬP 
Tạ Minh Thanh1*, Nguyễn Hiếu Minh1, Đỗ Thị Bắc2 
1Học viện Kỹ thuât quân sự, 
2 Trường Đại học Công nghệ thông tin và truyền thông 
TÓM TẮT 
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 
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 
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 
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 
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ệ 
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. 
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. 
 TỔNG QUAN 
Trong những năm gần đây, với sự phát triển mạnh 
mẽ của internet với băng thông rộng như ADSL, 
FTTH, ... người dùng đầu cuối có thể trao đổi các 
sản phẩm multimedia dung lượng lớn dễ dàng và 
hiệu quả. Bên cạnh đó, sự ra đời của các thiết bị 
lưu trữ công nghệ cao, giá thành rẻ giúp người 
dùng có thể lưu trữ thuận tiện và có thể chia sẻ 
mọi lúc, mọi nơi các sản phẩm số qua internet. 
Chính vì có sự phát triển mạnh mẽ về công nghệ 
mà nhu cầu trao đổi dữ liệu trong mạng của các tổ 
chức cũng đang ngày một tăng và có xu hướng 
bùng nổ. 
Hiện nay, các hệ thống chia sẻ file hoạt động trên 
mạng network đã được biết đến rộng rãi. Mỗi hệ 
thống được tận dụng hiệu quả dựa trên các đặc 
điểm của hệ thống để quản lý người dùng hay 
quản lý dữ liệu được chia sẻ. Các hệ thống chia sẻ 
file hoạt động phụ thuộc vào hệ điều hành (OS: 
Operating System) như NFS, Netware, LAN 
Manager, ... được biết đến là các hệ thống có tổ 
chức chặt chẽ với quản lý phân quyền, chia sẻ đối 
với từng người dùng khi truy cập vào hệ thống 
nhưng phải có sự cho phép của server. Mặt khác, 
các hệ thống chia sẻ file mà không phụ thuộc vào OS, 
hoạt động trên mô hình client-server được phát 
triển mạnh mẽ hơn cả. Hệ thống bao gồm hai 
phương thức chính: lợi dụng FTP server, HTTP 
server để chia sẻ file hoặc giao thức peer-to-peer 
(P2P) để mở rộng mạng lưới chia sẻ và sử dụng tài 
nguyên như Napster, Gnutella[1], Freenet[2], 
BitTorrent, Winny, ... Trái ngược với việc người 
dùng đầu cuối bị quản lý chặt chẽ bởi server trên 
 Email: taminhjp@gmail.com 
các hệ thống chia sẻ file phụ thuộc OS, các hệ 
thống chia sẻ file không phụ thuộc OS không quản 
lý người dùng đầu cuối mà cung cấp một môi 
trường chia sẻ file tự do cho người dùng cuối khi 
truy cập vào mạng chia sẻ. Chính việc tự do trong 
sử dụng tài nguyên chia sẻ nên có nhiều vấn đề về 
quản lý truy cập tài nguyên bản quyền dẫn đến vi 
phạm bản quyền sản phẩm số, bản quyền phần 
mềm và bảo mật hệ thống. 
Trước vấn đề trên, việc xây dựng một hệ thống 
chia sẻ tài nguyên thân thiện và dễ sử dụng như 
mạng P2P, đồng thời quản lý được việc truy xuất 
tài nguyên đối với người dùng đầu cuối là cần 
thiết. Nếu xây dựng hệ thống chia sẻ tài nguyên 
trong điều kiện các hệ thống OS khó thống nhất 
được như hiện nay mà vẫn đòi hỏi có sự quản lý 
về truy cập đối với người dùng cuối thì buộc phải 
sử dụng phương thức client-server. Tuy nhiên, nếu 
sử dụng mô hình client-server thì việc server phải 
chịu tải lớn trong việc điều khiển truy cập, quản lý 
người dùng phức tạp, duy trì server, ... gặp nhiều 
khó khăn. Để giải quyết được các vấn đề gặp phải 
trong mô hình client-server, ta có thể sử dụng giao 
thức P2P để triển khai hệ thống chia sẻ tài nguyên; 
song khi sử dụng kỹ thuật P2P để xây dựng thì 
không có cơ chế giám sát và quản lý người dùng 
đầu cuối. Hơn nữa, trong cả hai mô hình nói trên, 
do file chia sẻ phụ thuộc vào hệ thống mạng chia 
sẻ (các server, các máy chứa file tham gia mạng 
P2P) nên việc chia sẻ file trong các mô hình mạng 
hiện nay chưa đạt hiệu quả tốt nhất. Do đó, bài báo 
đề xuất phương án xây dựng hệ thống chia sẻ tài 
nguyên phân tán trên cơ sở tận dụng các tài 
nguyên trống dư thừa trên mạng và sử dụng giao 
thức P2P. Trong hệ thống này, một file chia sẻ 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 68  
được phân chia làm nhiều mảnh dữ liệu và được 
lưu trữ phân tán trên các thiết bị lưu trữ còn dư 
thừa trên mạng để tận dụng hiệu quả các nguồn tài 
nguyên trên mạng. Các máy tính tham gia cung 
cấp dung lượng lưu trữ trong mạng P2P sẽ đóng 
vai trò như một servent[3] để cấu hình nên kho dữ 
liệu phân tán. Ngoài ra, khi dữ liệu được phân chia 
làm nhiều mảnh nhỏ, có thể thêm vào các thông 
tin cần thiết để quản lý truy cập và phục hồi dữ 
liệu khi hệ thống gặp sự cố. Phần 2 của bài báo 
phân tích các hệ thống chia sẻ tài nguyên hiện nay 
và các nhược điểm chủ yếu. Từ đó, đưa ra mô hình 
đề xuất trong phần 3. Cuối cùng, bài báo đánh giá 
mô hình đề xuất và tính khả thi khi triển khai 
trong thực tế. 
CÁC HỆ THỐNG CHIA SẺ HIỆN NAY 
Các loại hệ thống chia sẻ tài nguyên 
Trong các loại hệ thống chia sẻ được sử dụng rộng 
rãi hiện nay, có thể chia thành hai loại cơ bản sau: 
Loại 1: Đây là hệ thống chia sẻ tài nguyên phụ 
thuộc vào hạ tầng cung cấp cho tầng mạng hay các 
OS riêng biệt. Hệ thống này sẽ tận dụng chức năng 
quản lý người dùng của OS để quản lý việc chia sẻ 
tài nguyên và truy xuất dữ liệu. Tuy nhiên, trong 
điều kiện phát triển phong phú các dạng multi-
platform như hiện nay, việc thống nhất các giao 
thức cho các hệ thống chia sẻ trên nhiều OS là khá 
phức tạp. Tóm lại, các hệ thống chia sẻ tài nguyên 
loại 1 phụ thuộc rất nhiều vào các platform. Ví dụ, 
trên UNIX có hệ thống NFS (Network File 
Sytem); trên Microsoft có hệ thống LAN 
Manager. 
Loại 2: Đây là hệ thống chia sẻ tài nguyên được 
phát triển để phù hợp với môi trường multi-
platform hiện nay. Hệ thống này vượt qua giới hạn 
quản lý người dùng đầu cuối khi truy cập vào 
mạng chia sẻ. Bất cứ người dùng đầu cuối nào khi 
tham gia vào hệ thống chia sẻ đều có thể là servent 
độc lập. Giao thức tiêu biểu sử dụng trong hệ 
thống này là hệ thống P2P. 
Network File Sytem (NFS)[4] 
NFS cung cấp chức năng chia sẻ tài nguyên cho 
nhiều hệ thống UNIX workstation. NFS sử dụng 
giao thức Run RPC, khi truyền dữ liệu thì sử dụng 
UDP/IP. Hệ thống chia sẻ tài nguyên NFS có chức 
năng như hệ thống tài nguyên trên máy cá nhân; 
dữ liệu trên các máy sẽ được kết nối (mount) vào 
cơ sở dữ liệu của NFS và chia sẻ trên mạng. 
NFS không cung cấp chức năng quản lý người 
dùng đầu cuối mà sử dụng chức năng quản lý 
người dùng của OS. Chính vì vậy, nếu vượt qua hệ 
thống một OS đồng nhất thì NFS không thể quản 
lý được người dùng. Mặt khác, độ bảo mật của dữ 
liệu được chia sẻ hoàn toàn phụ thuộc vào chức 
năng quản lý người dùng và bảo mật của OS. Bởi 
vậy, hệ thống chia sẻ tài nguyên NFS chỉ thích 
hợp với môi trường đồng nhất OS và sẽ có hiệu 
quả khi bảo mật hệ thống được bảo đảm trong toàn 
mạng. 
Giao thức P2P 
Napster, Gnutella, Freenet, ... là hệ thống chia sẻ 
tài nguyên đại diện cho giao thức P2P. Với các 
phần mềm này, người dùng đầu cuối có thể chia 
sẻ, trao đổi dữ liệu thông qua upload và download. 
Thực chất, hệ thống P2P là mạng ngang hàng 
được tự hình thành bởi người dùng đầu cuối khi có 
nhu cầu sử dụng. Mạng P2P có thể được phân ra 
làm 2 loại là hỗn hợp (Hybrid) và thuần nhất 
(Pure). 
Napster là một dạng hệ thống thuộc loại Hybrid. 
Khi các servent khởi động ứng dụng Napster thì 
đồng thời tự động kết nối và sau đó các servent sẽ 
gửi danh sách các content mình có đến Napster 
server. Các lệnh tìm kiếm content được thực hiện 
thông qua gửi câu lệnh Query đến Napster server. 
Napster server sẽ gửi trả lại kết quả tìm kiếm 
(người sở hữu, chất lượng content, ...) cho servent 
tương ứng. Khi đó, servent sẽ thiết lập liên kết 
TCP với servent sở hữu content và dữ liệu bắt đầu 
được truyền tải. 
Bên cạnh đó, Gnutella và Freenet là hệ thống 
thuộc loại Pure. Trong đó, các servent sau khi khởi 
động sẽ thiết lập kết nối TCP và duy trì để tạo 
mạng trao đổi content. Loại Pure khác với loại 
Hybrid ở chỗ không tồn tại một server để quản lý 
thông tin content, việc tìm kiếm và phát hiện 
content được thực hiện trên toàn mạng. 
Thông thường, các hệ thống chia sẻ bằng giao 
thức P2P được thực hiện bằng phương thức chia sẻ 
danh sách dữ liệu sở hữu của các servent. Việc lưu 
trữ các dữ liệu chia sẻ được thực hiện riêng biệt 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 69  
trên các servent; tìm kiếm dữ liệu chia sẻ được 
thực hiện trên cơ sở danh sách dữ liệu sở hữu của 
các servent. 
Vấn đề điều khiển truy cập tài nguyên chia sẻ 
được thực hiện bởi các servent nên khác biệt hoàn 
toàn với hệ thống NFS. Các điều khiển truy xuất dữ 
liệu đối với người dùng được thực hiện thông qua 
việc trao đổi các thông điệp điều khiển (control 
message) giữa các servent. Hầu hết các servent 
tham gia mạng P2P đều có thể tự chia sẻ và tự quản 
lý tài nguyên. 
Các vấn đề cần khắc phục 
Với các hệ thống chia sẻ tài nguyên nêu trên, ta có 
được bảng tổng hợp đặc trưng của chúng như sau: 
Hầu hết các hệ thống chia sẻ hiện nay đều không 
có chức năng quản lý truy cập của người dùng đầu 
cuối. Bên cạnh đó, các tài nguyên được chia sẻ 
trên mạng đều lưu trữ trên thiết bị của server hay 
servent để phục vụ cho nhu cầu upload và 
download của client nên tài nguyên chia sẻ phụ 
thuộc vào mạng chia sẻ được hình thành; dẫn đến 
việc không tận dụng được hết các dung lượng dư 
thừa của các thiết bị lưu trữ trên mạng. 
HỆ THỐNG CHIA SẺ TÀI NGUYÊN DỰA 
TRÊN HỆ LƯU TRỮ PHÂN TÁN 
Điều kiện cần 
Bảng 1. Đặc trưng của các hệ thống chia sẻ 
Phân 
loại 
Ví dụ Đặc trưng 
Loại 1 
NFS 
Lan 
Manager 
- Tài nguyên chia sẻ tồn tại 
trong cấu trúc mạng 
- Không có chức năng điều 
khiển truy cập mà phụ thuộc 
vào OS 
- Tính bảo mật của tài 
nguyên chia sẻ không cao 
Loại 2 
Napster 
Gnutella 
Freenet 
Winny 
- Tài nguyên chia sẻ tồn tại 
trên từng thực thể servent 
- Không có chức năng điều 
khiển truy cập mà phụ thuộc 
vào thông điệp điều khiển 
- Tính bảo mật của tài 
nguyên chia sẻ thấp 
Giả sử trong một mạng qui mô nhỏ, các máy tính 
tham gia mạng có dung lượng ổ cứng lớn để lưu 
trữ dữ liệu. Thông thường, chúng không sử dụng 
hết dung lượng ổ cứng nên trên toàn mạng tổng 
dung lượng dư thừa ổ đĩa rất lớn [5,6]. Vậy nếu 
xây dựng một hệ thống chia sẻ tài nguyên trên cơ 
sở tận dụng các nguồn lưu trữ dư thừa trên toàn 
mạng sẽ tận dụng được khá hiệu quả dung lượng 
dư thừa, nâng cao được hiệu suất sử dụng thiết bị 
lưu trữ. Trên có sở đó, chúng tôi đã đề xuất kỹ 
thuật kiểm soát truy cập nguồn tài nguyên chia sẻ 
của mạng đến người dùng đầu cuối để nâng cao 
tính bảo mật tài nguyên chia sẻ. 
Hệ thống đề xuất 
Với điều kiện trên, chúng tôi đề xuất mô hình hệ 
thống chia sẻ tài nguyên trên hệ lưu trữ phân tán 
như trong hình 1. 
Trong hình 1, người phân phối (người phục hồi), 
người lưu trữ sử dụng các máy tính có dung lượng 
lưu trữ phân tán được sử dụng trong hệ thống chia 
sẻ P2P; đóng vai trò là các servent độc lập. Các 
servent trong hệ thống đề xuất có thể thực hiện 
được các thao tác lưu trữ hay phục hồi dữ liệu chia 
sẻ. 
Với hệ thống này, các đơn vị dữ liệu của dữ liệu 
chia sẻ được phân chia trước khi phân phối để lưu 
trữ được gọi là đoạn dữ liệu (segment). Trên mỗi 
segment, ta thêm vào thông tin điều khiển để quản 
lý truy xuất dữ liệu của người dùng đầu cuối và 
các thông tin để phục hồi lại dữ liệu khi có sự cố. 
Thông tin trao đổi giữa các servent là trao đổi các 
thông tin điều khiển này (gọi là list-information) 
để thống nhất quản lý người dùng đầu cuối. 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 70  
Hình 1. Mô hình hệ thống đề xuất 
Trong xử lý lưu trữ, giả sử servent là người phân 
phối C có nhu cầu lưu trữ dữ liệu bất kỳ trên mạng 
P2P, C sẽ chọn người lưu trữ S trong các servent 
trên mạng, sau đó phân đoạn dữ liệu thành nhiều 
segment và phân phối lưu trữ trên thiết bị lưu trữ 
của S. 
Khi đó, người phân phối C cũng phân phối thông 
tin phân đoạn dữ liệu trên toàn mạng bao gồm cả 
thông tin của người lưu trữ S thông qua cập nhật 
list-information. 
Mặt khác, trong xử lý phục hồi dữ liệu, nếu 
servent là người phục hồi R có yêu cầu phục hồi 
dữ liệu đã được lưu trữ phân tán trên mạng, R sẽ 
thu thập các segment được phân tán lưu trữ trong 
các thiết bị lưu trữ của S thông qua list-
information để phục hồi nguyên vẹn dữ liệu ban 
đầu. Người phục hồi R có thể phục hồi nguyên 
vẹn được các dữ liệu do bản thân mình phân đoạn 
và phân phối lưu trữ trên các hệ thống của S. 
Xử lý lưu trữ 
Trong xử lý lưu trữ, người phân phối C phải thực 
hiện các thao tác phân đoạn và phân phối dữ liệu 
trên các servent đã lựa chọn. Người phân phối C 
sẽ thực hiện phân đoạn dữ liệu đến đơn vị bit cho 
từng segment. 
Nhờ vậy, sau khi lưu trữ phân tán dữ liệu trên các 
thiết bị của S (bao gồm cả C), dữ liệu chia sẻ 
không bị phục hồi bất hợp pháp bởi S mà vẫn đảm 
bảo tính toàn vẹn khi C hoặc R phục hồi lại dữ 
liệu; do đó khẳng định tính tin cậy của hệ thống 
chia sẻ tài nguyên. Khi phân đoạn dữ liệu, C thêm 
vào thông tin điều khiển cho từng segment là các 
thông tin phân phối và phục hồi cho dữ liệu và từ 
đó tạo các thông tin điều khiển để phân phối. Sau 
khi thực hiện các thao tác phân đoạn và phân 
phối, C gửi các thông tin điều khiển thông qua list-
information tạo được cho người lưu trữ S. Các 
thao tác phân đoạn và phân phối trên mạng P2P 
của C được mô tả trong hình 2. 
Hình 2. Cách thức phân đoạn và phân phối segment 
Hình 3. Cách thức thu thập và phục hồi các segment 
Xử lý phục hồi 
Trong xử lý phục hồi dữ liệu, người phục hồi R phải thực 
hiện thao tác thu thập tất cả các segment từ mạng chia sẻ dữ 
liệu, sau đó tiến hành loại bỏ thông tin điều khiển, kết hợp 
dữ liệu để thu được dữ liệu ban đầu. R sẽ trên cơ sở lấy 
được các thông tin điều khiển từ S để đánh giá khả năng 
phục hồi của dữ liệu chia sẻ. Nếu dữ liệu chia sẻ có thể 
phục hồi được thì R sẽ kết hợp các segment tương ứng và 
tiến hành xử lý phục hồi dữ liệu. Việc đánh giá xem dữ liệu 
có thể phục hồi được hay không là căn cứ thông tin điều 
khiển (header information) trong các segment khi phân 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 71  
đoạn dữ liệu. Xử lý mà R thực hiện được mô tả trong hình 
3. 
Quản lý truy xuất tài nguyên chia sẻ 
Với hệ thống đề xuất trên, việc quản lý truy xuất tài nguyên 
chia sẻ không phụ thuộc vào OS có thể thực hiện được 
thông qua việc điều khiển thông tin điều khiển (header 
information) của các segment. Từ các thông tin điều khiển 
này, lấy được danh sách các segment thuộc dữ liệu đã được 
phân đoạn. Vì thế, việc thực hiện truy xuất đối với tài 
nguyên chia sẻ trong hệ thống có thể thực hiện được thông 
qua các thông tin được cấu thành trong thông tin điều khiển 
của segment. Ở đây, quyền truy xuất đối với dữ liệu chia sẻ 
trong mạng được phân chia làm hai mức: công khai – 
public (trường hợp cả người phân phối và người lưu trữ đều 
có thể phục hồi dữ liệu) và bí mật – private (trường hợp chỉ 
có người phân phối mới có thể phục hồi được dữ liệu). Với 
bảng phân quyền như trong bảng 2 có thể định nghĩa được 
các thông tin trong thông tin điều khiển để quản lý truy 
xuất dữ liệu chia sẻ (trong đó, √: thỏa mãn và ×: không thỏa 
mãn). 
Trường hợp muốn công khai chia sẻ tài nguyên, người phân 
phối C phân đoạn các segment sao cho thông tin điều khiển 
segment của người lưu trữ S giống thông tin điều khiển 
segment của người phân phối (Hình 4). Mặt khác, khi muốn 
thông tin chia sẻ được giữ bí mật, thông tin điều segment của 
người phân phối và người lưu trữ phải khác nhau (Hình 4). 
Khi các client (các đối tượng tham gia mạng P2P) muốn truy 
xuất tài nguyên chia sẻ trên mạng, các client sẽ trích rút các 
thông tin từ thông tin điều khiển của các segment để tạo 
thành một danh sách các segment đã được phân phối để lưu 
trữ trên S, từ đó kết hợp các segment lại để phục hồi lại 
được dữ liệu ban đầu. Trường hợp chỉ người phân phối mới 
có thể phục hồi được dữ liệu ban đầu thì người phân phối 
sử dụng khóa K đã được mã hóa để phục hồi lại dữ liệu. 
Bảng 2. Thông tin điều khiển 
(Header Information) 
Đối 
tượng sở 
hữu 
Header 
information 
(Nội dung thông 
tin header) 
P
u
b
li
c 
P
ri
v
at
e 
D
u
n
g
 l
ư
ợ
n
g
Người 
phân phối 
C 
S: địa chỉ IP của 
người phân phối 
√ √ 32 bit 
N: tên của file 
gốc 
√ √ 16~ bit 
P: dung lượng 
của của file gốc 
√ √ 16 bit 
LD: danh sách 
địa chỉ IP của 
người lưu trữ 
√ √ 32 bit 
Người 
lưu trữ S 
K: Khóa bí mật 
của những người 
tham gia chia sẻ 
tài nguyên 
× √ 
Phương pháp tạo khóa K 
Khóa K được tạo ra bởi một hàm số HASH với đầu vào là 
các tham số: địa chỉ IP của người phân phối, tên file, địa 
chỉ IP của người lưu trữ. Bởi vậy, mỗi một giá trị K được 
tạo ra sẽ là tham số duy nhất trong toàn mạng. 
Người phân phối C sau khi phân đoạn dữ liệu sẽ dùng địa 
chỉ IP của người lưu trữ S để tạo khóa K, sau đó thêm khóa 
K là thông tin điều khiển của segment và gửi segment đến 
nơi lưu trữ tương ứng. Người phục hồi (thực chất là người 
phân phối C) khi muốn phục hồi lại dữ liệu ban đầu thì phải 
tạo khóa K và dùng khóa K làm thông tin để tìm kiếm các 
segment đã được phân tán trên các ổ lưu trữ. 
Trong trường hợp các máy trạm trong mạng được cấu hình 
địa chỉ IP động theo dịch vụ DHCP (Dynamic Host 
Configuration Protocol) server, các servent sẽ không giữ 
được thống nhất địa chỉ IP trong mỗi lần truy cập mạng dẫn 
đến việc khó xác định được khóa K đồng nhất để phục hồi 
lại dữ liệu ban đầu. Khi đó, việc xác định lại tham số để 
sinh ra một khóa K duy nhất là cần thiết. Trong trường hợp 
này, khi xác định được mạng có sử dụng dịch vụ DHCP để 
cấp phát địa chỉ IP cho các máy trạm, thuật toán sẽ sử dụng 
địa chỉ vật lý MAC (Media Access Control) của người phân 
phối và người lưu trữ để tạo khóa K và cập nhật vào list-
information. 
Khả năng phục hồi dữ liệu khi có sự cố 
Hình 4. Cấu trúc của các segment trong điều khiển truy xuất tài 
nguyên 
Trên hệ thống lưu trữ phân tán đề xuất, tùy thuộc vào trạng 
thái của các servent mà các segment sau khi được phân 
đoạn và lưu trữ phân tán không phải lúc nào cũng có thể 
thu hồi được đầy đủ để phục hồi lại dữ liệu ban đầu. Bởi 
vậy, để giải quyết được vấn đề này, hệ thống lưu trữ phân 
tán này có thể thêm vào các thông tin dung lỗi trên các 
segment để có thể tự sửa lỗi khi có sự cố xảy ra đối với các 
segment đã lưu trữ phân tán. Chính vì thế, hệ lưu trữ phân 
tán có thể trở thành một hệ thống chia sẻ tài nguyên bền 
vững với khả năng tự dung lỗi khi xảy ra hiện tượng mất dữ 
liệu. Tuy nhiên, việc thêm mã sửa lỗi vào các segment và 
phân phối lên các servent lưu trữ phân tán cần phải tính 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 72  
toán sao cho dung lượng của mã sửa lỗi phải nhỏ hơn dung 
lượng dữ liệu đã được phân đoạn. Các mã sửa lỗi có thể sử 
dụng để phục hồi lỗi trong quá trình xảy ra sự cố như mã 
BCH, CRC-10, CRC-11, ... 
Như vậy, với việc thêm kèm mã sửa lỗi vào các segment 
khi phân phối lưu trữ phân tán lên các thiết bị của người 
lưu trữ, dù các servent không tham gia trong quá trình có 
nhu cầu phục hồi dữ liệu đi chăng nữa thì dữ liệu ban đầu 
cũng có thể phục hồi về trạng thái gần giống ban đầu mà có 
thể chấp nhận được. Với khả năng tự phục hồi lỗi khi có sự 
cố khiến hệ thống chia sẻ tài nguyên có độ bền vững cao 
đối với các sự cố có thể xảy ra. 
THUẬT TOÁN THỰC HIỆN TRÊN HỆ THỐNG ĐỀ 
XUẤT 
Thuật toán lưu trữ dữ liệu phân tán 
Hình 5. Các bước thực hiện lưu trữ phân tán 
Người phân phối C khi có nhu cầu chia sẻ dữ liệu lên mạng 
P2P, trước khi phân phối trên mạng, người phân phối C cần 
xác định rõ mục đích chia sẻ lên mạng là công khai hay bí 
mật để khởi tạo thông tin điều khiển thêm vào các segment 
và tiến hành phân phối đến các servent lưu trữ. Các bước 
thực hiện phân đoạn và lưu trữ segment trên toàn mạng 
được mô tả trong hình 5. 
Step 1. Người lưu trữ C xác định dung lượng và số lượng 
phân mảnh dữ liệu sẽ lưu trên hệ thống mạng. 
Step 2. C tiến hành phân đoạn dữ liệu segment. 
Step 3. C xác định mục đích chia sẻ dữ liệu (public hay 
private) và xác định các thông tin điều khiển để thêm vào 
các segment. 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 73  
Step 4. C phân phối các segments cho các 
servent tương ứng để lưu trữ. 
Step 5. Tại các servent của người lưu trữ S, S 
thực hiện việc nhận dữ liệu segment và lưu trữ 
trên vùng ổ đĩa dư thừa. 
Step 6. S thay đổi các thông tin trong list-
information và trao đổi thông tin này với C 
Step 7. C so sánh các thông tin trong list-
information và cập nhật các thông tin đã thay đổi 
để kết thúc quá trình lưu trữ phân tán. 
Sau khi thực hiện các bước lưu trữ phân tán các 
mảnh dữ liệu, C và S đồng thời có được thông 
tin lưu trữ trong list-information. Tuy nhiên, 
trường hợp khi dữ liệu được lưu bởi trạng thái là 
“public”, C và S sẽ có list-information là như 
nhau; khi đó, cả C và S đều có thể phục hồi được 
dữ liệu về trạng thái ban đầu. Mặt khác, nếu trạng 
thái của dữ liệu được lưu trữ là “private” thì 
thông tin điều khiển của C và S là khác nhau 
nhằm mục đích chỉ có C mới có thể phục hồi lại 
dữ liệu ban đầu. 
Thuật toán phục hồi dữ liệu ban đầu 
Khi người phân phối C (người phục hồi) có nhu 
cầu phục hồi dữ liệu ban đầu, C kiểm tra trong 
list-information của mình khả năng phục hồi của 
dữ liệu muốn phục hồi. Tiếp theo, C sẽ sử dụng 
khóa K tạo được để yêu cầu các segments đang 
được lưu trữ phân tán trên các hệ phân tán lưu 
trữ S, kết hợp dữ liệu lại và phục hồi dữ liệu về 
trạng thái nguyên dạng ban đầu. Qui trình phục 
hồi dữ liệu ban đầu được thực hiện tuần tự như 
các bước trong hình 6. 
Step 1. Khi một servent (bao gồm cả C) có nhu 
cầu phục hồi dữ liệu từ các mảnh lưu trữ phân 
tán, người phục hồi sẽ kiểm tra thông tin trong 
list-information để đánh giá khả năng phục hồi 
dữ liệu. 
Step 2. Nếu dữ liệu có khả năng phục hồi, người 
phục hồi sẽ sử dụng các thông tin trong list-
information làm thông tin header để tìm kiếm 
các segment đã được lưu trữ phân tán trên toàn 
mạng. Với trường hợp khả năng phục hồi chỉ 
dành cho C (trạng thái lưu trữ là “private”), C 
phải tiến hành sinh lại khóa K duy nhất và dùng 
khóa K làm thông tin để tìm kiếm segment. 
Hình 6. Các bước thực hiện phục hồi dữ liệu 
Step 3. Trên các servent lưu trữ, khi nhận được các 
yêu cầu tìm kiếm của người phục hồi, các servent này 
tiến hành so sánh các thông tin header để loại trừ các 
segment không phù hợp. 
Step 4. Khi phát hiện được các thông tin header trùng 
khớp, servent lưu trữ sẽ gửi trả các segment cho 
người phục hồi và thay đổi thông tin list-information. 
Step 5. Người lưu trữ sau khi nhận được hết các 
segment của dữ liệu sẽ tiến hành kết hợp các segment 
để phục hồi lại dữ liệu ban đầu. 
Step 6. Sau khi phục hồi lại dữ liệu, servent của 
người phục hồi sẽ thay đổi thông tin trong list-
information để hoàn thành quá trình phục hồi. 
KẾT LUẬN 
Bảng 3. So sánh các hệ thống chia sẻ hiện nay 
 NFS P2P 
Hệ thống đề 
xuất 
Trao đổi dữ liệu 
trên mạng 
√ × √ 
Hiệu suất lưu trữ 
cao 
× × √ 
Quản lý truy xuất 
dữ liệu 
√ × √ 
Khả năng phục hồi 
dữ liệu 
× × √ 
Bài báo đã xây dựng một hệ thống chia sẻ tài nguyên 
mới trên cơ sở tận dụng các nguồn tài nguyên phân 
tán trên mạng thông qua giao thức P2P. Hệ thống 
chia sẻ tài nguyên xây dựng trên cơ sở phân đoạn dữ 
liệu và lưu trữ phân tán trên các servent riêng rẽ giúp 
hệ thống có thể nâng cao hiệu suất sử dụng nguồn tài 
nguyên lưu trữ dư thừa trên mạng. Có nghĩa là, hệ 
thống tận dụng các nguồn tài nguyên còn trống của 
Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 74  
các servent và kết hợp lại tương tự như một kho lưu 
trữ dữ liệu thống nhất trên mạng. Mặt khác, với việc 
điều khiển truy xuất dữ liệu thông qua list-
information và thông tin điều khiển của các segments 
dẫn đến khả năng bảo mật dữ liệu mà không bị phụ 
thuộc vào các hệ thống OS. Bên cạnh đó, với ý tưởng 
các phân đoạn dữ liệu có thể tự phục hồi khi có sự cố 
xảy ra thông qua việc sử dụng các mã dung lỗi dẫn 
đến mô hình của hệ thống có một hướng mới hơn so 
với các hệ thống chia sẻ tài nguyên hiện nay. Tuy 
nhiên, với kỹ thuật sửa lỗi dựa trên các mã dung lỗi 
thì việc phục hồi được các mảnh dữ liệu có dung 
lượng lớn (ví dụ như dung lượng với đơn vị là MB 
trở lên) là khá khó khăn. Do đó, tác giả đề xuất giải 
pháp tự phục hồi dữ liệu khi một số máy lưu trữ 
không tham gia mạng đối với các thông tin, dữ liệu 
với dung lượng hạn chế và yêu cầu chất lượng phục 
hồi không cần độ tin cậy quá cao như ảnh, nhạc, 
phim, ... 
 Với hệ thống đã đề xuất, ta dễ dàng thu được kết 
quả so sánh trong bảng 3 và nhận thấy được tính 
mềm dẻo và ưu việt hơn so với các hệ thống đang 
được tận dụng hiện nay. Tính thực tiễn thể hiện ở chỗ 
là đưa ra được ý tưởng tận dụng tài nguyên dư thừa 
của các máy tham gia mạng để lưu trữ phân tán và 
khai thác thông tin trên mạng với cơ chế kiểm soát 
truy cập. 
Vấn đề tiếp theo của hướng nghiên cứu này là thực 
hiện xây dựng một hệ thống hoàn chỉnh và thực tiễn 
để áp dụng kết quả nghiên cứu trong thực tế. 
TÀI LIỆU THAM KHẢO 
[1]. Gnutella,  
[2]. I. Clarke, A Distributed Anonymous Information 
Storage and Retrival System ,Proc. ICSI Workshop on 
Design Issues in Anonymity and Unobservability, June 
2000 
[3]. Wikipedia,  
[4]. B. Callaghan, (1999), NFS Illustrated, Addition– Wesley 
Profesonal. 
[5]. T.Lee, J.G.Davies, (2000), Microsoft Window 2000 TCP/IP 
Protocols and Services Technical Reference, Microsoft 
Press. 
J.T’s, R.Eckstein, D.Collier Brown, (2003), Using Samba, 
Second Edition, O’Reilly. 
SUMMARY 
AN APPROACH OF PEER-TO-PEER SYSTEM BASED 
ON DISTRIBUTED DATA STORAGES AND CONTROL ACCESS 
Ta Minh Thanh1 , Nguyen Hieu Minh1, Do Thi Bac2 
1Institute of Military Technology, 
2 College of Information and Communication Technology-TNU 
Netwook sharing systems are now commonly in client-server model. Therefore, the data retrievals of this model 
depend mostly on the network operating system or on sharing server but are not uniform on many OS versions. In 
addition, the dramatic development of a sharing Peer-to-Peer network model without regarding user management 
and data retrieval leads to some problems in freedom of access to resources and copyright infringement of 
products. On that basis, the article proposed a new resource-sharing system based on distributed storage system 
incoperated with user management to solve the problems of the current sharing systems. 
Key words: client-server, resource sharing system, Peer-to-Peer, distributed storage, access control. 
 Tel: 

File đính kèm:

  • pdfde_xuat_xay_dung_he_thong_chia_se_tai_nguyen_dua_tren_he_luu.pdf