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.
Trang 1ĐỀ 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 1 *, Nguyễn Hiếu Minh 1 , Đỗ Thị Bắc 2
1 Họ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
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ẻ
Trang 2Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 đượ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
Trang 3trê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
Trang 4Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74
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
Trang 5đ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)
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
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
Trang 6Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 74 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
Trang 7Step 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
Hiệu suất lưu trữ
Quản lý truy xuất
Khả năng phục hồi
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
Trang 8Tạ Minh Thanh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 86(10): 67 - 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, http://www.gnutelliusms.com/
[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, http://en.wikipedia.org/wiki/Servent [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
1
Institute 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