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

Nghiên cứu và phát triển một số tính năng mở rộng cho hệ thống lưu trữ và chia sẻ dữ liệu lindax

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

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

ĐÀO QUANG MINH

NGHIÊN CỨU VÀ PHÁT TRIỂN MỘT SỐ TÍNH
NĂNG MỞ RỘNG CHO HỆ THỐNG LƯU TRỮ VÀ
CHIA SẺ DỮ LIỆU LINDAX

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

Hà Nội - 2010


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

ĐÀO QUANG MINH

NGHIÊN CỨU VÀ PHÁT TRIỂN MỘT SỐ TÍNH NĂNG
MỞ RỘNG CHO HỆ THỐNG LƯU TRỮ VÀ CHIA SẺ DỮ
LIỆU LINDAX

Chuyên ngành: CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN


NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS NGUYỄN THANH THỦY

Hà Nội, tháng 10 năm 2010


LỜI CAM ĐOAN
Tôi – Đào Quang Minh – xin cam đoan



Luận văn tốt nghiệp Thạc sĩ này là công trình nghiên cứu của bản thân tôi dƣới sự hƣớng
dẫn của PGS.TS Nguyễn Thanh Thủy.
Các kết quả trong Luận văn tốt nghiệp là trung thực, không phải sao chép toàn văn của
bất kỳ công trình nào khác.
Hà Nội, ngày 27 tháng 10 năm 2010

Đào Quang Minh


LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc đến thầy – Phó Giáo sƣ – Tiến sĩ Nguyễn Thanh Thủy, ngƣời
đã hƣớng dẫn tận tình và theo dõi sát sao trong quá trình làm luận văn. Chính Thầy là ngƣời đã
đƣa ra ý tƣởng, giúp tôi lựa chọn đề tài, đƣa ra những nhận xét và lời khuyên định hƣớng để luận
văn của tôi đƣợc hoàn thành.
Tôi xin gửi lời cảm ơn chân thành tới Tiến sĩ Nguyễn Hữu Đức – Phó Giám đốc Trung tâm
Tính toán Hiệu năng cao ĐHBK Hà Nội. Ngay từ khi bắt đầu làm luận văn, Thầy là ngƣời đã tận
tình chỉ dẫn cụ thể từng bƣớc để tôi có đủ kiến thức để hoàn thành luận văn của mình.
Tôi cũng xin gửi lời cảm ơn đến Trung tâm Tính toán Hiệu năng cao – nơi tôi đang làm việc,
đã tạo điều kiện cơ sở vật chất cho các nghiên cứu của mình. Xin đƣợc cảm ơn những đồng

nghiệp, bạn bè của tôi đã luôn ở bên cạnh khi gặp khó khăn, động viên và là nguồn sức mạnh để
tôi tiếp tục công việc của mình.
Cuồi cùng, con xin đƣợc gửi lời cảm ơn sâu sắc nhất đến bố, mẹ và chị đã là chỗ dựa vững
chắc và tin cậy cho con không chỉ trong quãng thời gian làm luận văn mà còn toàn bộ quá trình
làm việc của con.

2


DANH MỤC HÌNH VẼ
Hình 1.1 – Logo Rapidshare ........................................................................................................... 9
Hình 1.2 – Logo MegaUpload ........................................................................................................ 9
Hình 1.3 – Logo MediaFire .......................................................................................................... 10
Hình 1.4 – Logo MegaShare ......................................................................................................... 10
Hình 2.1 – Thành phần của một lƣới ............................................................................................ 14
Hình 2.2 – Tiến trình phân tán sử dung space để phối hơp hoạt động ......................................... 16
Hình 2.3 – Hệ quản trị dữ liệu và mô tơ dữ liệu của nó................................................................ 17
Hình 2.4 – Lƣới dữ liệu so sánh với cơ sở dữ liệu quan hệ .......................................................... 19
Hình 2.5 – Kiến trúc phân tầng lƣới dữ liệu ................................................................................. 23
Hình 2.6 – Các thành phần của Globus Toolkit 4 ......................................................................... 24
Hình 2.7 – Giao thức FTP ............................................................................................................. 25
Hình 2.8 – Truyền dữ liệu song song ............................................................................................ 26
Hình 2.9 – Truyền dữ liệu song song với đối tác thứ ba............................................................... 26
Hình 2.10 – Mối quan hệ giữa GridFTP Client và GridFTP Server ............................................. 27
Hình 2.11 – Kịch bản lựa chọn dữ liệu theo tiêu chí của ứng dụng ............................................. 29
Hình 2.12 – Quan hệ giữa RLI và LRC ........................................................................................ 30
Hình 2.13 – RLS hai tầng ............................................................................................................. 32
Hình 2.14 – Một hình trạng RLS phân cấp ................................................................................... 32
Hình 2.15 – Kiến trúc của Java Cog Kit ....................................................................................... 35
Hình 2.16 – Các lớp của Java Cog Kit .......................................................................................... 36

Hình 3.1 – Mô hình tổng thế hệ thống LindaX ............................................................................. 38
Hình 3.2 – Kịch bản upload .......................................................................................................... 43
Hình 3.3 – Kịch bản download ..................................................................................................... 45
Hình 3.4 – Sơ đồ bố trí vật lý tầng lƣu trữ lƣới ............................................................................ 47
Hình 3.5 – Sơ đồ bố trí logic của tầng lƣu trữ lƣới ....................................................................... 48
Hình 3.6 – Cây thƣ mục trên HeadNode....................................................................................... 49
Hình 3.7 – Sơ đồ truyền tệp .......................................................................................................... 50
Hình 3.8 – Sơ đồ quá trình tạo lập bản sao ................................................................................... 51
Hình 3.9 – Biểu đồ use-case cho module quản lý proxy .............................................................. 52
Hình 3.10 - Lớp SHARED_MEMORY ........................................................................................ 54
3


Hình 3.11 – Lớp PROXY_SERVICE_MONITOR ...................................................................... 55
Hình 3.12 – Module quản lý Proxy............................................................................................... 55
Hình 3.13 – Cây thƣ mục trên DataNode ..................................................................................... 56
Hình 3.14 – Mô hình Push ............................................................................................................ 57
Hình 3.15 – Phát hiện lỗi trong mô hình Push .............................................................................. 58
Hình 3.16 – Mô hình Pull ............................................................................................................. 58
Hình 3.17 – Phát hiện lỗi trong mô hình Pull ............................................................................... 58
Hình 3.18 – Sử dụng kết hợp hai mô hình Push và Pull ............................................................... 59
Hình 3.19 – Module quản lý tài nguyên ....................................................................................... 60
Hình 3.20 – Biểu đồ use-case của module quản lý tài nguyên ..................................................... 62
Hình 3.21 - Lớp RESOURCE_MONITOR_OBJECT ................................................................. 62
Hình 3.22 – Kết quả chạy của module quản lý tài nguyên ........................................................... 63
Hình 4.1 – Kịch bản triển khai LindaX......................................................................................... 64
Hình 4.2 – Trang chủ LindaX ....................................................................................................... 68
Hình 4.3 – Giao diện upload tệp ................................................................................................... 69
Hình 4.4 – Giao diện tiến trình upload ......................................................................................... 69
Hình 4.5 – Upload tệp thành công ................................................................................................ 70

Hình 4.6 – Upload tệp bị lỗi.......................................................................................................... 70
Hình 4.7 – Giao diện download .................................................................................................... 71
Hình 4.8 – Giao diện quá trình download ..................................................................................... 71
Hình 4.9 – Giao diện quản trị........................................................................................................ 72

4


DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

Nghĩa tiếng Anh

Chú giải

API

Application
Programming
Interface

Giao diện lập trình ứng dụng, thƣờng làm một tập
các hàm giúp lập trình viên dễ dàng tƣơng tác với
dịch vụ , hệ thống.

AJAX

Asynchronous
JavaScript and XML


Là một nhóm các công nghệ phát triển web đƣợc
sử dụng để tạo các ứng dụng web động hay các
ứng dụng giàu tính Internet.

Certificate
Authentication

cơ chế chứng thực ngƣời dùng và tài nguyên sử
dụng trong môi trƣờng lƣới. Nó dựa trên nền tảng
khóa công khai để chứng thực các đối tƣợng liên
quan.

CAS

Community
Authorization Service

Dịch vụ chứng thực cộng đồng. Một dịch vụ bảo
mật trong môi trƣờng lƣới cho phép dung hòa giữa
chính sách sử dụng tài nguyên của cộng đồng
ngƣời dùng với chính sách sử dụng tài nguyên của
những nhà cung cấp

FTP

File Transfer Protocol

Giao thức truyền tệp nổi tiếng qua mạng

Globus XIO


Globus eXtensible
Input/Ouput

Giao diện vào ra mức thấp trong kiến trúc Globus

GridFTP

Grid File Transfer
Protocol

GridFTP là mở rộng của giao thức FTP, tích hợp
khả năng bảo mật lƣới, truyền dữ liệu tốt hơn so
với FTP

Grid Security
Infrastructure

Cơ sở hạ tầng bảo mật lƣới trong kiến trúc của
Globus, hỗ trợ giấy chứng nhận theo chuẩn X509
và dùng hệ mã công khai.

GT

Globus Toolkit

Bộ công cụ middleware hỗ trợ tính toán lƣới, cung
cấp một số dịch vụ đệ trình công việc, quản lý tài
nguyên, hạ tầng bảo mật, cũng nhƣ hỗ trợ việc xây
dựng các dịch vụ lƣới…


LDAP

Giao thức đặc tả các kỹ thuật định danh đối tƣợng,
Lightweight Directory
mô hình dữ liệu, tìm kiếm và ghi các khoản mục
Access Protocol
dữ liệu.

LFN

Logical File Name

CA

GSI

5

Tên logic của một thực thể dữ liệu trong lƣới dữ


liệu, hàm chứa nội dung của thực thể dữ liệu đó.
LRC

Local Replica
Catalogue

Catalog định vị bản sao địa phƣơng, lƣu trữ tập các
ánh xạ bao gồm hai trƣờng: {tên logic của thực thể

dữ liệu, vị trí vật lý cụ thể của thực thể đó}

ODBC

Open Database
Connectivity

Giao diện API giúp lập trình viên tƣơng tác với cơ
sở dữ liệu.

PFN

Physical File Name

Tên vật lý của một tệp dữ liệu: nó bao hàm giao
thức truy cập, địa chỉ của máy mà chứa tệp dữ liệu
đó, ngƣời sử dụng có thể dễ dàng truy cập đƣợc
vào thực thể dữ liệu.

RLI

Replica Location
Index

Lƣu các thông tin chỉ mục cho dịch vụ định vị bản
sao, mỗi bản ghi bao gồm {LFN, và con trỏ tới
LRC tƣơng ứng}

RLS


Replica Location
Service

Dịch vụ định vị bản sao trong kiến trúc lƣới dữ liệu
Globus.

TCP

Tranmission Control
Protocol

Giao thức truyền thông nổi tiếng cho mạng Internet

XML

eXtensible Markup
Language

Ngôn ngữ đánh dấu mở rộng, hiện đang đƣợc dùng
nhƣ một chuẩn trao đổi dữ liệu thông dụng.

6


MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................................... 1
LỜI CẢM ƠN ................................................................................................................................. 2
DANH MỤC HÌNH VẼ.................................................................................................................. 3
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................................................ 5
MỤC LỤC ...................................................................................................................................... 7

Chƣơng 1.

GIỚI THIỆU LUẬN VĂN ....................................................................................... 9

1.1

Lý do chọn đề tài .............................................................................................................. 9

1.2

Mục đích nghiên cứu của luận văn................................................................................. 11

1.3

Luận điểm cơ bản và đóng góp mới ............................................................................... 12

1.4

Cấu trúc luận văn............................................................................................................ 12

Chƣơng 2.

LƢỚI DỮ LIỆU ...................................................................................................... 13

Tổng quan về tính toán lƣới và lƣới dữ liệu ................................................................... 13

2.1

2.1.1


Lƣới dữ liệu............................................................................................................. 14

2.1.2

Phân loại lƣới dữ liệu .............................................................................................. 14

2.1.3

Đặc điểm của lƣới dữ liệu ....................................................................................... 17

2.1.4

Kiến trúc của lƣới dữ liệu ....................................................................................... 21

2.2

Globus Toolkit................................................................................................................ 23

2.3

Giao thức chuyển tệp GridFTP[12] .................................................................................. 25

2.3.1

FTP[13] ..................................................................................................................... 25

2.3.2

GridFTP .................................................................................................................. 26


Dịch vụ định vị bản sao RLS ......................................................................................... 28

2.4

2.4.1

Đặc điểm ................................................................................................................. 29

2.4.2

Kiến trúc của dịch vụ định vị bản sao ..................................................................... 30

2.4.3

Kho định vị bản sao cục bộ LRC ............................................................................ 31

2.4.4

Chỉ mục định vị bản sao RLI .................................................................................. 31

2.5

Bảo mật trên lƣới dữ liệu................................................................................................ 33

2.6

Thƣ viện lập trình lƣới Java Cog Kit ............................................................................. 34

2.6.1


Kiến trúc của Java Cog Kit ..................................................................................... 35

2.6.2

Lập trình với Java Cog Kit...................................................................................... 36

Chƣơng 3.

XÂY DỰNG HỆ THỐNG LƢU TRỮ VÀ CHIA SẺ ............................................ 38

7


3.1

Mô hình tổng thể ............................................................................................................ 38

3.1.1

Tầng ứng dụng web ................................................................................................ 39

3.1.2

Tầng lƣu trữ lƣới ..................................................................................................... 39

3.1.3

Kết nối tầng ứng dụng web và tầng lƣu trữ lƣới ..................................................... 40

Yêu cầu chức năng ......................................................................................................... 41


3.2

3.2.1

Cho phép Upload/Download dữ liệu lên lƣới ......................................................... 41

3.2.2

Quản lý không gian lƣu trữ ..................................................................................... 41

3.2.3

Tạo lập và quản lý bản sao ...................................................................................... 41

3.2.4

Quản trị các nút lƣu trữ ........................................................................................... 42

3.3

Kịch bản sử dụng............................................................................................................ 43

3.3.1

Upload ..................................................................................................................... 43

3.3.2

Download ................................................................................................................ 44


Xây dựng tầng lƣu trữ .................................................................................................... 47

3.4

3.4.1

Nút giao dịch (HeadNode) ...................................................................................... 48

3.4.2

Module điều khiển truyền tệp ................................................................................. 49

3.4.3

Module định vị bản sao RLS .................................................................................. 51

3.4.4

Module quản lý Proxy............................................................................................. 52

3.4.5

Nút lƣu trữ (DataNode) ........................................................................................... 56

3.4.6

Module quản lý tài nguyên ..................................................................................... 57

Chƣơng 4.


THỬ NGHIỆM VÀ ĐÁNH GIÁ ............................................................................ 64

4.1

Triển khai và thử nghiệm ............................................................................................... 64

4.1.1

Kịch bản triển khai .................................................................................................. 64

4.1.2

Ứng dụng web ......................................................................................................... 64

4.1.3

Máy chủ HeadNode ................................................................................................ 66

4.1.4

Các DataNode ......................................................................................................... 67

4.1.5

Kết quả triển khai .................................................................................................... 67

Đánh giá ......................................................................................................................... 72

4.2


Chƣơng 5.

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .............................................................. 74

5.1

Kết luận .......................................................................................................................... 74

5.2

Hƣớng phát triển ............................................................................................................ 74

TÀI LIỆU THAM KHẢO ............................................................................................................ 76
8


Chương 1. GIỚI THIỆU LUẬN VĂN
1.1 Lý do chọn đề tài
Đã từ lâu, dữ liệu luôn là vấn đề quan trọng hàng đầu của mỗi cá nhân hay mỗi tổ chức. Ngƣời ta
tìm mọi cách để cất giữ những dữ liệu này một cách an toàn nhất.Đi kèm với việc cất giữ dữ liệu,
nhu cầu lấy ra dữ liệu một cách nhanh chóng cũng là vấn đề đƣợc quan tâm. Mặc dù không nói
ra, nhƣng tất cả mọi ngƣời đều mong muốn rằng dữ liệu của mình lúc nào cũng “đi theo” mình
để chỉ có mình có thể lấy ra đƣợc và lấy ra nhanh nhất. Ngày nay, với cuộc cách mạng Internet
đang diễn ra từng ngày, từng giờ… con ngƣời gần nhƣ sống trong môi trƣờng mà Internet nhƣ là
không khí vậy, đâu đâu cũng có, sẵn sàng để sử dụng và không thể sống thiếu nó.
Nhu cầu đƣợc cất giữ dữ liệu và chia sẻ nhờ vậy đã trở thành một nhu cầu không thể thiếu của
các cá nhân cũng nhƣ các tổ chức có sử dụng Internet. Với những dữ liệu lớn và yêu cầu độ bảo
mật cao, họ sẵn sàng trả tiền để có đƣợc những dịch vụ tốt nhất. Trên thế giới, các dịch vụ lƣu
trữ và chia sẻ dữ liệu đã có từ rất sớm. Trong số đó, các nhà cung cấp sau là đƣợc biết đến hơn

cả:
Rapidshare

Hình 1.1 – Logo Rapidshare








Cho phép ngƣời dùng tải lên tệp tối đa 200MB.
Ngƣời dùng không đƣợc tìm kiếm nội dung trong trang web.
Sau khi upload, ngƣời dùng đƣợc cung cấp 1 link duy nhất để download.
Ngƣời dùng free: phải đợi 1 khoảng thời gian, nhập CAPTCHA, không hỗ trợ resume,
hạn chế tốc độ, chỉ download từng tệp.
Ngƣời dùng trả phí: không bị các hạn chế nhƣ trên. Khi trả phí account ngƣời dùng sẽ có
1 khoảng thời gian sử dụng. Mỗi 5 ngày tài khoản đƣợc upload, download tối đa 25 GB.
Khi chọn máy chủ gần và download bằng tài khoản thì tốc độ rất nhanh.

MegaUpload

Hình 1.2 – Logo MegaUpload


Chƣơng 1 – Giới thiệu luận văn









Dịch vụ miễn phí cho phép tải tệp tối đa đến 500 MB.
Ngƣời dùng trả phí có một khoảng không gian lƣu trữ là 250 GB.
Sau khi upload, dịch vụ cũng trả về một link duy nhất để download.
Các tệp tải lên ẩn danh sẽ bị xóa sau 21 ngày.
Các tài khoản đóng băng sau 90 ngày không sử dụng.
Tất cả ngƣời dùng đều phải nhập CAPTCHA.
Phải cài một Toolbar vào trình duyệt.

MediaFire

Hình 1.3 – Logo MediaFire










Không yêu cầu đăng ký.
Không cần đợi truy cập tệp.
Không giới hạn không gian lƣu trữ.
Không giới hạn số lƣợng tệp download.

Cho phép xóa tệp.
Không phân biệt quốc gia, vùng lãnh thổ.
Hạn chế: không mã hóa tệp, không hỗ trợ FTP, tệp tải lên giới hạn <100MB.
Khi trả phí: đƣợc cung cấp link trực tiếp đến tệp, tệp tối đa lên đến 2GB, băng thông
không hạn chế, hỗ trợ mã hóa SSL, cơ chế backup, không quảng cáo, hỗ trợ kỹ thuật.

MegaShare

Hình 1.4 – Logo MegaShare

Đây là một trong nhiều dịch vụ mới xuất hiện tại Việt Nam với một số đặc điểm nổi bật nhƣ:




Ngƣời dùng Free: giới hạn file upload 500Mb, thời hạn lƣu trữ file là 30 ngày, thời gian
chờ download là 20s, hỗ trợ resume và tốc độ download ở mức trung bình.
Ngƣời dùng Gif: không thời gian chờ download, giới hạn file upload 2Gb, thời gian lƣu
trữ file 90 ngày, cũng hỗ trợ resume và đƣợc cấp một không gian lƣu trữ 100Gb.
Ngƣời dùng VIP: thời gian lƣu trữ vĩnh viễn, hỗ trợ subdomain, hỗ trợ leech file, đƣợc
cấp một không gian lƣu trữ 300Gb và không thời gian chờ download.

Tuy nhiên ngƣời dùng Việt Nam vẫn chƣa hoàn toàn hài lòng với các dịch vụ này vì nhiều lý do


Tài khoản dạng miễn phí rất hạn chế về chức năng, tốc độ rất chậm.
10


Chƣơng 1 – Giới thiệu luận văn







Tốc độ của các dịch vụ trên thế giới đối với tài khoản trả phí là rất nhanh tuy nhiên, với
hệ thống đặt tại Việt Nam cũng có thể đạt tốc độ không thua kém. Dẫn đến ngƣời dùng
băn khoăn không biết nên trả tiền hay là dùng miễn phí.
Việc trả phí cho các dịch vụ trên thế giới còn khá khó khăn với ngƣời dùng Việt Nam.
Giao diện tiếng Anh cũng là một cản trở không nhỏ
V.v..

Xuất phát từ nhu cầu sử dụng của ngƣời dùng Việt Nam, luận văn hƣớng tới xây dựng và phát
triển một hệ thống cho phép các cá nhân, các tổ chức có thể upload dữ liệu và sử dụng các dịch
vụ nhƣ download, chia sẻ hay tạo kho chứa dữ liệu trực tuyến (gồm nhiều các dịch vụ hỗ trợ kèm
theo). Hệ thống hƣớng tới đối tƣợng sử dụng chuyên nghiệp, phục vụ nhu cầu nghiên cứu và cả
nhu cầu làm việc phổ thông. Ngoài ra, hệ thống phải đảm bảo đƣợc cả hai yếu tố tốc độ và bảo
mật.Để xây dựng đƣợc một hệ thống mạnh và đạt những yêu cầu ở trên cần có một nền tảng
công nghệ thích hợp. Nền tảng lƣu trữ này cần phải có khả năng kết hợp gần nhƣ không giới hạn
sức mạnh lƣu trữ của các máy tính khác nhau, đồng thời vẫn phải đảm bảo đƣợc tính riêng tƣ
giữa các tệp tin trên hệ thống. Khi đó, một hệ thống chia sẻ dữ liệu tích hợp nhƣ vậy sẽ cung cấp
cho ngƣời dùng những dịch vụ tốt hơn nhiều so với các hệ thống đơn lẻ khác.
Trong quá trình nghiên cứu của mình, luận văn đã nhận thấy rằng công nghệ lƣới dữ liệu là phù
hợp với những yêu cầu đặt ra.Ƣu điểm của lƣới dữ liệu là có khả năng kết hợp khả năng lƣu trữ
của nhiều tổ chức khác nhau thành một hệ thống chung với những cơ chế xác thực và chứng thực
đáng tin cậy, các tổ chức khi tham gia vào lƣới dữ liệu sẽ có sự tin tƣởng lẫn nhau trong quá
trình chia sẻ tài nguyên. Với giao thức riêng dùng để truyền tải tệp tin trong lƣới - GridFTP, dịch
vụ định vị bản sao - RLS hay cơ sở hạ tầng bảo mật - GSI (Grid Security Infrastructure). Lƣới dữ
liệu hứa hẹn đáp ứng đƣợc các nhu cầu phức tạp của một hệ thống lƣu trữ và chia sẽ dữ liệu.

Luận văn hƣớng tới việc nghiên cứu và phát triển một số tính năng mở rộng cho hệ thống
LindaX, đƣợc xây dựng dựa trên nền tảng lƣới dữ liệu – DataGrid với các kho lƣu trữ nằm phân
tán về mặt địa lý. LindaX là viết tắt của Linda Is Not a Data Archive eXtended

1.2 Mục đích nghiên cứu của luận văn
Luận văn có những mục đích nghiên cứu sau:




Công nghệ lƣới dữ liệu theo định hƣớng sử dụng lƣới dữ liệu cho việc lƣu trữ và chia sẻ.
Các công nghệ hỗ trợ xây dựng các chính sách cho hệ thống lƣu trữ và chia sẻ dữ liệu.
Các dịch vụ cho hệ thống lƣu trữ và chia sẻ triển khai lên lƣới dữ liệu.

Trong đó, các đối tƣợng nghiên cứu gồm:



Lƣới dữ liệu
Web service

11


Chƣơng 1 – Giới thiệu luận văn

1.3 Luận điểm cơ bản và đóng góp mới




Luận văn đã đề xuất đƣợc mô hình hệ thống lƣu trữ và chia sẽ dữ liệu LindaX sử dụng
công nghệ lƣới dữ liệu phục vụ lƣu trữ và chia sẻ dữ liệu.
Luận văn đã triển khai thử nghiệm đƣợc LindaX trong thực tế.

Đóng góp mới của luận văn là việc triển khai và ứng dụng công nghệ lƣới dữ liệu cho vấn đề lƣu
trữ và chia sẻ dữ liệu. Tích hợp lƣới dữ liệu nhƣ là một nền tảng ở dƣới, trong suốt với ngƣời
dùng, dễ dàng đáp ứng yêu cầu của các ứng dụng ở tầng trên.

1.4 Cấu trúc luận văn
Luận văn đƣợc chia làm 5 chƣơng nhƣ sau:
Chương 1: Giới thiệu tổng quát về sự ra đời của hệ thống lƣu trữ và chia sẻ dữ liệu LindaX.
Phân tích một số công nghệ lƣu trữ và chia sẻ dữ liệu hiện nay, lý do lựa chọn công nghệ lƣới dữ
liệu. Ngoài ra trong phần này, luận văn đã giới thiệu những nét cơ bản về những đặc điểm của
công nghệ lƣới dữ liệu.
Chương 2: Đƣa ra cái nhìn tổng quan về tính toán lƣới, đi sâu tìm hiểu và làm rõ về khái niệm
lƣới dữ liệu. Trong chƣơng này, luận văn còn đặc tả và làm rõ một số thành phần của bộ công cụ
quan trọng nhất trong lƣới là Globus Toolkit. Làm rõ một số khái niệm về lƣới dữ liệu nhƣ
GridFTP, RLS, dịch vụ lƣới, bảo mật trên lƣới, v.v..
Chương 3: Trình bày các vấn đề trong việc xây dựng hệ thống lƣu trữ và chia sẻ dữ liệu LindaX
nhƣ:Mô hình của hệ thống nhƣ thế nào? Các chức năng của hệ thống ra sao? Kịch bản sử dụng
hệ thống là gì? Cũng trong chƣơng này, luận văn đã đi sâu diễn giải quá trình triển khai lƣới dữ
liệu, một số kỹ thuật hỗ trợ quá trình upload và download.
Chương 4: Đề cập đến việc triển khai và thử nghiệm hệ thống từ lý thuyết đến thực tế. Giới
thiệu một số kết quả đạt đƣợc khi triển khai hệ thống. Qua đó, nêu ra một số đánh giá chủ quan
trong quá trình triển khai LindaX.
Chương 5: Đánh giá về luận văn, kết quả đạt đƣợc và các mặt còn hạn chế, từ đó đƣa ra các đề
xuất hệ thống trong tƣơng lai.

12



Chương 2. LƯỚI DỮ LIỆU
Trong chƣơng một của luận văn, công nghệ lƣới dữ liệu đã đƣợc đề cập đến và đƣợc luận văn
chọn làm công nghệ sử dụng để xây dựng hệ thống lƣu trữ và chia sẻ dữ liệu LindaX. Trƣớc
những yêu cầu đặt ra của một hệ thống lƣu trữ và chia sẻ lớn, công nghệ lƣới dữ liệu mang trong
mình những sức mạnh nào để thỏa mãn đƣợc những yêu cầu đó? Chƣơng này sẽ xoay các công
nghệ đặc trƣng của lƣới nhƣ giao thức riêng dùng để truyền tải tệp tin trong lƣới - GridFTP, dịch
vụ định vị bản sao - RLS và cơ sở hạ tầng bảo mật - GSI (Grid Security Infrastructure).

2.1 Tổng quan về tính toán lưới và lưới dữ liệu
Trong những năm gần đây, tính toán lƣới – grid computing nổi lên nhƣ một nền tảng hỗ trợ tính
toán phân tán trên những bộ dữ liệu lớn, thực hiện những công việc tính toán phức tạp. Tƣ tƣởng
của Grid là kết hợp sức mạnh tính toán của hàng trăm, hàng nghìn máy tính bình thƣờng nằm
phân tán về mạnh địa lý, tạo thành một cơ sở hạ tầng tính toán tổng hợp tƣơng đƣơng hoặc thậm
chí vƣợt xa sức mạnh của những siêu máy tính hiện đại đắt tiền.
Michael Di Stefano[1] đƣa ra định nghĩa về tính toán lƣới nhƣ sau:
“Lưới tính toan là cụm tài nguyên tính toán nào cung cấp môi trường hỗ trợ chia sẻ và quản lý
tài nguyên cho các công việc phân tán dựa trên chính sách nào đó”.
Còn Ian Foster đƣa ra ba đặc điểm của một lƣới thực sự trong[2]:




Phối hợp sử dụng tài nguyên không dựa trên điều khiển tập trung.
Sử dụng các giao thức chuẩn và có tính mở.
Cung cấp chất lƣợng dịch vụ không tầm thƣờng, theo nghĩa tài nguyên hoạt động kết hợp
trên môi trƣờng lƣới tạo ra chất lƣợng dịch vụ tốt hơn so với tổng chất lƣợng dịch vụ của
các tài nguyên đơn lẻ.

Hiện nay, nhiều ngƣời vẫn lẫn lộn khái niệm “tính toán lƣới” với “tính toán ngang hàng”. Cả hai

có điểm chung là cùng giải quyết bài toán chia sẻ tài nguyên phân tán giữa các tổ chức ảo[3],
cùng đƣợc xây dựng dựa trên kiến trúc phân tầng, và mỗi hƣớng tiếp cận có điểm mạnh, điểm
yếu riêng. Lƣới đƣợc xây dựng trên nền tảng kiến trúc chặt chẽ, phục vụ cộng đồng ngƣời dùng
quy mô nhỏ, thƣờng nằm trong cùng lĩnh vực nghiên cứu mà họ quan tâm, hỗ trợ khả năng tích
hợp tài nguyên mạnh mẽ đa dạng hơn tính toán ngang hàng. Ứng dụng trên lƣới thƣờng là ứng
dụng khoa học, đòi hỏi khả năng tính toán cao và hƣớng ngƣời dùng. Ngƣợc lại, tính toán ngang
hàng[4] đƣợc xây dựng trên nền kiến trúc linh hoạt hơn, phục vụ cho một số lƣợng lớn ngƣời
dùng, có thể lên đến hàng triệu, chủ yếu hỗ trợ ứng dụng chia sẻ tài nguyên nhƣ chia sẻ chu kỳ
tính toán hoặc tệp.


Chƣơng 2 – Lƣới dữ liệu

2.1.1 Lưới dữ liệu
Về mặt vật lý, lƣới bao gồm một số lƣợng lớn các máy tính, cụm máy tính kết nối với nhau qua
một mạng, và đƣợc điều khiển bởi những kỹ thuật quản lý hiệu quả. Về mặt logic, lƣới gồm hai
thành phần tính toán và dữ liệu (hình 2.1).
Lƣới tính toán – Computing Grid: cung cấp dịch vụ quản lý công việc trên môi trƣờng phân tán,
tài nguyên là các chu kỳ CPU rỗi, băng thông mạng, bộ nhớ…
Lƣới dữ liệu – Data Grid: cung cấp khả năng quản lý dữ liệu, cho phép truy cập, đồng bộ hóa và
phân phối dữ liệu trên lƣới. Tài nguyên của lƣới dữ liệu gồm các hệ thống lƣu trữ, băng thông
mạng và các tệp dữ liệu nằm phân tán trên các nút lƣới.

Lưới tính toán
Môi trường tính toán lưới

Lưới dữ liệu

Hình 2.1 – Thành phần của một lưới


Lƣới đƣợc phát triển để giải quyết các bài toán có tính song song hóa. Các bài toán này đòi hòi
tiến hành phân tích trên những bộ dữ liệu lớn, thƣờng là dữ liệu tĩnh, lƣu trữ dƣới dạng tệp.
Những bộ dữ liệu này nằm phân tán trên các nút khác nhau của lƣới tính toán. Làm thế nào để
các nút tính toán truy cập hiệu quả tài nguyên này? Vấn đề đảm bảo tính toàn vẹn, đồng bộ dữ
liệu đƣợc thực hiện thế nào?... Lƣới dữ liệu sẽ giải đáp câu trả lời trên.
Trong bất kỳ môi trƣờng lƣới nào, quản lý dữ liệu đều rất cần thiết, vì tài nguyên quan trọng nhất
của ứng dụng là dữ liệu. Một câu hỏi đặt ra: tại sao không sử dụng các kiến trúc quản lý dữ liệu
sẵn có để giải quyết bài toán quản lý dữ liệu trên lƣới? Câu trả lời: do tính chất phân tán, không
đồng nhất là đặc trƣng riêng của lƣới, nên những giải pháp truyền thống không áp dụng đƣợc.

2.1.2 Phân loại lưới dữ liệu
Lƣới dữ liệu giải quyết bài toán quản lý các bộ dữ liệu phân tán trên môi trƣờng lƣới. Các bộ dữ
liệu này có thể là tĩnh, không thay đổi trong một thời gian, thƣờng gặp trong các ứng dụng khoa
học hƣớng dữ liệu nhƣ mô hình hóa thời tiết, phân tích tính toán vật lý lƣợng tử, tính toán bản đồ
gen…
Tuy nhiên, ta cũng bắt gặp những ứng dụng mà dữ liệu đầu vào của nó biến đổi không ngừng
theo từng ngày, từng giờ. Lớp các ứng dụng loại này bao gồm hệ thống cảnh báo động đất, sóng
14


Chƣơng 2 – Lƣới dữ liệu
thần, dự báo thời tiết, dự báo bão… Trong các hệ thống này, các máy cảm biến đƣợc đặt ở nhiều
nơi, liên tục đo đạc dữ liệu và gửi về cho lƣới tính toán xử lý, phân tích số liệu, từ đó có những
thông báo và điều khiển phù hợp. Ta cũng bắt gặp những bộ dữ liệu động trong các ứng dụng
phân tích thị trƣờng chứng khoán, với tốc độ thay đổi chỉ số chứng khoán nhanh đến chóng mặt
diễn ra tại khắp các sàn giao dịch lớn trên thế giới. Đối với lớp ứng dụng này, đảm bảo tính đồng
bộ, xử lý cập nhật thông tin rất quan trọng, mang tính chất sống còn đối với hệ thống. Ngƣời ta
chia lƣới dữ liệu làm hai loại, tùy thuộc vào tính chất tĩnh hay động của các bộ dữ liệu.
2.1.2.1 Lưới dữ liệu mức 0
Lƣới dữ liệu mức 0 cung cấp khả năng quản lý các bộ dữ liệu tĩnh, có dung lƣợng lớn nằm phân

tán trên các nút lƣới. Đây là loại lƣới dữ liệu đƣợc nghiên cứu triển khai và cài đặt sớm nhất trên
thế giới. Vì dữ liệu không thay đổi theo thời gian nên lƣới mức 0 không giải quyết vấn đề liên
quan đến cập nhật, quản trị giao dịch, tích hợp dữ liệu với các hệ thống ngoài.
Trên lƣới dữ liệu mức 0, vấn đề then chốt là dịch chuyển bộ dữ liệu giữa các nút. Hiện nay, có ba
kỹ thuật cơ bản nhất đƣợc sử dụng để truyền dữ liệu giữa các nút mạng, bao gồm:
Giao thức truyền tệp FTP - File Transfer Protocol: đƣợc sử dụng rộng rãi để truyền dữ liệu
trên mạng. Trong môi trƣờng lƣới, các chức năng do FTP cung cấp là không đủ. Nhóm dự án
Globus đề xuất và phát triển giao thức mới GridFTP hỗ trợ truyền dữ liệu tốt hơn. GridFTP phù
hợp những bộ dữ liệu lớn, không thay đổi theo thời gian.
Hệ thống tệp phân tán - Distributed File System: cũng cho phép quản lý các tệp trên mạng.
Nhìn từ phía ngƣời sử dụng, hệ thống tệp phân tán có dạng cây thƣ mục. Ngƣời sử dụng không
cần biết tệp thực sự đang nằm trên nút nào. Kiến trúc của hệ thống tệp phân tán là kiến trúc dựa
trên máy chủ. Có một máy chủ làm nhiệm vụ quản lý ánh xạ giữa tệp vật lý nằm trên nút cụ thể
với tệp lôgic trong cây thƣ mục. Ngƣời dùng duyệt cây thƣ mục, gửi yêu cầu tới máy chủ. Máy
chủ đàm phán với nút đang lƣu giữ tệp vật lý tƣơng ứng, rồi gửi lại tệp thực sự cho ngƣời dùng.
Ví dụ về hệ thống tệp phân tán là CODA[5] hay hệ thống tệp mạng NFS – Network File System.
Tuy nhiên, do tính phân tán mạnh, không đồng nhất và nguyên tắc điều khiển phi tập trung nên
hệ thống tệp phân tán ít đƣợc sử dụng.
Trung tâm siêu dữ liệu: tích hợp dữ liệu từ các nguồn và khuôn dạng khác nhau vào cấu trúc
nhất quán, có khuôn dạng phù hợp với yêu cầu ứng dụng. Trung tâm siêu dữ liệu nằm ở tầng
trung gian giữa ứng dụng và nguồn dữ liệu, có nhiệm vụ che đi kỹ thuật phức tạp liên quan đến
kết nối, chuyển khuôn dạng, và truyền dữ liệu. Điều này gần giống với khái niệm lƣới dữ liệu áo
– Virtual Data Grid[6].
Điểm chung của ba kỹ thuật trên là không hỗ trợ tính năng quản trị giao dịch và xử lý cập nhật.
Chúng chỉ phù hợp đối với các nguồn dữ liệu bất biến, ít thay đổi theo thời gian.

15


Chƣơng 2 – Lƣới dữ liệu

2.1.2.2 Lưới dữ liệu mức 1
Lƣới dữ liệu mức 1 hỗ trợ bộ dữ liệu động, nội dung thƣờng xuyên thay đổi theo thời gian. Bên
cạnh các chức năng thông thƣờng, lƣới dữ liệu mức 1 cung cấp khả năng quản trị giao dịch và
đồng bộ hóa dữ liệu. Ba kỹ thuật phổ biến đƣợc sử dụng để xây dựng lƣới dữ liệu mức 1 là
JavaSpace, Bộ nhớ phân tán - Distributed Memory và Nhân bản toàn cục - Global Replication.
JavaSpace là kiến trúc lập trình phân tán trong đó tiến trình phân tán liên lạc với nhau bằng trao
đổi đối tƣợng thông qua “không gian” - space hay bộ nhớ chia sẻ, thay vì liên lạc trực tiếp qua
truyền thông điệp hoặc các phƣơng pháp triệu gọi từ xa. Tiến trình có thể “ghi” hoặc “đọc” đối
tƣợng từ một “không gian”. Khi muốn sửa đổi đối tƣợng, trƣớc tiên, tiến trình đƣa đối tƣợng ra
khỏi “không gian”, sửa đổi, rồi đặt nó trở lại. Hình 2.2 cho ta cái nhìn rõ hơn về vấn đề này.

Hình 2.2 – Tiến trình phân tán sử dung space để phối hơp hoạt động

Kỹ thuật quản lý “không gian” của JavaSpace có khả năng truy vấn đối tƣợng dựa trên điều kiện
nào đó, khả năng quản trị giao dịch, đảm bảo tính nhất quán giữa các đối tƣợng, và khả năng chia
sẻ dữ liệu phân tán. Các đặc điểm này phù hợp để xây dựng lƣới dữ liệu mức 1. Vì JavaSpace
chia sẻ đối tƣợng, nên thuộc tính và các phƣơng thức thực thi của đối tƣợng đó cũng đƣợc chia
sẻ. Do đó, JavaSpace mang cả đặc tính của lƣới tính toán. Tuy nhiên, ứng dụng phân tán sử dụng
JavaSpace phải đƣợc viết bằng ngôn ngữ Java. Điều này cản trở tính mở của lƣới dữ liệu.
Nhân bản toàn cục là kỹ thuật cung cấp khả năng lƣu trữ dữ liệu phân tán và bền vững trên các
máy tính của lƣới. Một trong những hệ thống nhƣ vậy là OceanStore của các nhà khoa học thuộc
trƣờng đại học Berkeley, Hoa Kỳ. OceanStore cung cấp một loạt các khả năng quản lý và lƣu trữ
bản sao hiệu quả, đảm bảo tính nhất quán cao giữa các bản sao. Một tính năng quan trọng nữa là
khả năng di chuyển dữ liệu tới những nút mà dữ liệu đƣợc sử dụng thƣờng xuyên nhất. Cũng
giống nhƣ JavaSpace, kỹ thuật này mới chỉ đƣợc triển khai trên ngôn ngữ Java. Vì vậy khả năng
tích hợp với các ứng dụng không viết Java bị hạn chế.

16



Chƣơng 2 – Lƣới dữ liệu
Bộ nhớ phân tán là môi trƣờng truyền thông, cho phép các tiến trình phân tán chia sẻ dữ liệu.
Kỹ thuật quản lý bộ nhớ truyền thống đƣợc áp dụng, nhƣ xử lý tƣơng tranh, các cơ chế khóa tài
nguyên… Điều này giúp đảm bảo tính đồng bộ, nhất quán của dữ liệu. Để dễ hình dung, ta có thể
liên hệ tới môi trƣờng OpenMP phục vụ các hệ thống nhiều bộ vi xử lý SMP – Symetric Multi
Processor, trong đó, các bộ vi xử lý sử dụng không gian nhớ chia sẻ.

2.1.3 Đặc điểm của lưới dữ liệu
Lƣới dữ liệu thƣờng đƣợc so sánh với các phƣơng pháp quản trị dữ liệu truyền thống, cụ thể là
kỹ thuật quản trị dữ liệu quan hệ, từ đó thấy đƣợc đặc điểm nổi bật của lƣới dữ liệu so với các kỹ
thuật trƣớc đó.
2.1.3.1 Các kỹ thuật quản lý dữ liệu truyền thống
Trong số các kỹ thuật quản trị dữ liệu, kỹ thuật quản trị dữ liệu quan hệ đƣợc sử dụng phổ biến
nhất. Đặc điểm của kỹ thuật quản trị dữ liệu quan hệ thể hiện trên một số phƣơng diện:
Mô tơ dữ liệu: là tầng trung gian gắn kết giữa biểu diễn logic của dữ liệu với phƣơng diện vật lý
của dữ liệu đó. Mô tơ dữ liệu bao gồm một chƣơng trình quản trị thiết bị lƣu trữ và một chƣơng
trình quản trị dữ liệu Hình 2.3. Đặc điểm của mô tơ dữ liệu quyết định tốc độ lƣu trữ, tốc độ truy
cập, khả năng mở rộng, tốc độ nhân bản dữ liệu cũngnhƣ hiệu năng của hệ thống.

Hình 2.3 – Hệ quản trị dữ liệu và mô tơ dữ liệu của nó

Cấu trúc dữ liệu: dữ liệu đƣợc tổ chức thành các bảng hai chiều, mỗi dòng là một bản ghi, và
mỗi cột là một thuộc tính của bản ghi đó. Bảng đƣợc ánh xạ tới tệp ở trên đĩa thông qua mô tơ.
Hệ quản trị cơ sở dữ liệu quan hệ có công cụ cho phép thiết lập những mối quan hệ phức tạp giữa
các bảng. Tính duy nhất của bản ghi trong bảng đƣợc thiết lập nhờ khóa chính. Các bảng có
thuộc tính chung có thể kết hợp với nhau nhờcác khóa ngoại.
Truy vấntrong hệ quản trị cơ sở dữ liệu quan hệ đƣợc thực hiện bằng ngôn ngữ truy vấn có cấu
trúc SQL – Structured Query Language. SQL là một ngôn ngữ truy vấn mạnh, đơn giản, dễ học
và dễ sử dụng. Với SQL, ngƣời sử dụng có thể:





Tạo lƣợc đồ dữ liệu
Truy vấn dữ liệu trên các bảng
Tạo mối quan hệ giữa các bảng
17


Chƣơng 2 – Lƣới dữ liệu


Sửa đổi bảng qua câu lệnh cập nhật và xóa

Thông qua ngôn ngữ SQL, ngƣời sử dụng có thể dễ dàng truy cập đến hệ thống. Đây là một
trong nhiều lý do khiến cho kỹ thuật quản trị dữ liệu quan hệ đƣợc sử dụng rộng rãi.
Tính toàn vẹn: khi cập nhật hoặc thêm dữ liệu, ứng dụng phải đảm bảo dữ liệu đúng đắn và
chính xác. Hệ quản trị cơ sở dữ liệu quan hệ chỉ có trách nhiệm đảm bảo tính toàn vẹn cho dữ
liệu. Toàn vẹn dữ liệu là vấn đề đảm bảo – chừng nào còn có thể đảm bảo đƣợc dữ liệu trong cơ
sở dữ liệu đƣợc chính xác ở mọi lúc. Có hai cấp độ toàn vẹn: toàn vẹn bản ghi và toàn vẹn tham
chiếu.
Quản trị giao dịch: giao dịch là một đơn vị thực hiện chƣơng trình có thể truy cập và cập nhật
các khoản mục dữ liệu khác nhau. Hệ quản trị cơ sở dữ liệu phải đảm bảo thực hiện đúng đắn
của giao dịch cho dù có lỗi xảy ra. Cụ thể: hoặc toàn bộ giao dịch đƣợc thực hiện hoặc không
một thao tác nào đƣợc thực hiện. Hơn nữa, quản lý đồng thời các giao dịch phải đƣợc thực hiện
để tránh trạng thái không nhất quán.
Sự kiện: hệ quản trị dữ liệu hỗ trợ và quản lý sự kiện, cả trong lẫn ngoài hệ thống. Khi sự kiện
xảy ra, hệ thống có những hành động phù hợp với sự kiện đó. Ví dụ, khi ngƣời sử dụng xóa dữ
liệu trên một bảng có toàn vẹn tham chiếu đến một số bảng khác, thì dữ liệu tƣơng ứng trong
những bảng này cũng phải đƣợc xóa.

Sao lƣu, phục hồi, tính sẵn dùng của dữ liệu: hệ quản trị dữ liệu phải là nguồn tài nguyên thông
tin tin cậy. Nó lƣu trữ hiểu biết phục vụ cho các đơn vị nghiệp vụ hoạt động. Vì thế, nó phải có
khả năng phục hồi nhanh mỗi khi lỗi xảy ra. Để đảm bảo điều này, sao lƣu là một trong những
biện pháp hữu hiệu. Bên cạnh đó, tính sẵn dùng của dữ liệu, đáp ứng đƣợc yêu cầu của ứng dụng
nghiệp vụ cũng tiêu chí quan trọng. Một số kỹ thuật thực hiện việc này là kỹ thuật nhân bản, kỹ
thuật theo dõi vết, kỹ thuật sao lƣu một phần hoặc toàn phần.
Bảo mật dữ liệu: trong hệ quản trị cơ sở dữ liệu quan hệ, vấn đề bảo mật rất quan trọng. Hệ
quản trị cơ sở dữ liệu có cơ chế thiết lập quyền hạn của ngƣời sử dụng. Dữ liệu chỉ hữu hình đối
với ngƣời có thẩm quyền. Định danh ngƣời dùng, phân nhóm và định rõ quyền hạn trên mỗi
nhóm ngƣời sử dụng, đồng thời tiến hành mã hóa dữ liệu là những kỹ thuật phổ biến nhất đảm
bảo tính bảo mật cho cơ sở dữ liệu.
Trên đây trình bày sơ lƣợc các đặc điểm của hệ quản trị dữ liệu truyền thống. Nhận thấy hai đặc
điểm chính làm cho hệ quản trị cơ sở dữ liệu quan hệ đƣợc ứng dụng sâu rộng là tính dễ sử dụng
và tính nhất quán. Thảo luận chi tiết hơn về cơ sở dữ liệu quan hệ đƣợc trình bày trong các
phần[7].
2.1.3.2 Từ cơ sở dữ liệu quan hệ đến lưới dữ liệu
Hệ quản trị cơ sở dữ liệu quan hệ là cơ sở tốt khi tìm hiểu sự phát triển của quản trị dữ liệu trong
môi trƣờng lƣới. Ngƣời dùng, ứng dụng nghiệp vụ dễ dàng truy vấn cơ sở dữ liệu quan hệ qua
giao diện thân thiện là ngôn ngữ truy vấn SQL. Các kỹ thuật bảo mật, quản trị giao dịch, đảm
18


Chƣơng 2 – Lƣới dữ liệu
bảo toàn vẹn giúp cho dữ liệu luôn ở trạng thái đúng đắn, sẵn sàng… cho dù xảy ra sự cố hỏng
hóc.
Mặc dù hiện hay hầu hết các hệ quản trị dữ liệu đƣợc xây dựng theo mô hình quan hệ, nhƣng đây
là không phải là mô hình phù hợp để quản trị dữ liệu trên lƣới, vì lƣới là môi trƣờng phân tán và
không đồng nhất cao. Dữ liệu trên lƣới thƣờng có tính phi cấu trúc, kích thƣớc lớn, và “trải” trên
hàng nghìn máy tính nằm phân tán về mặt địa lý. Cần có một kiến trúc quản lý dữ liệu phù hợp
với hình trạng phân tán này là lƣới dữ liệu.

Lƣới dữ liệu phải đảm bảo đƣợc hai tính chất dễ sử dụng và nhất quán giống nhƣ trong hệ quản
trị cơ sở dữ liệu quan hệ. Nó cũng phải có đƣợc tính năng nhƣ bảo mật, toàn vẹn dữ liệu và phục
hồi khi bị lỗi. Thêm vào đó, lƣới dữ liệu phải có đặc trƣng riêng biệt phù hợp với hình trạng và
chính sách sử dụng tài nguyên của lƣới. Về mặt kiến trúc, giữa cơ sở dữ liệu quan hệ và lƣới dữ
liệu có những điểm tƣơng đồng Hình 2.4.
Kiến trúc của cơ sở dữ liệu quan hệ và lƣới dữ liệu đều có ba tầng chức năng là: giao diện ngôn
ngữ, mô tơ quản trị dữ liệu và mô tơ quản trị tài nguyên.
Giao diện ngôn ngữ gồm tập công cụ giúp ngƣời phát triển ứng dụng điều khiển, quản trị dữ liệu.
Thông thƣờng, giao diện ngôn ngữ là các hàm API - Apllication Programming Interface, hoặc
tập câu lệnh ngôn ngữ truy vấn… Trong lƣới dữ liệu, các nhà phát triển ứng dụng sử dụng giao
diện ngôn ngữ để xác định, thay đổi, xử lý một đối tƣợng. Lƣới dữ liệu phải biết rõ đƣợc cấu trúc
của đối tƣợng đó.
Mô tơ quản trị dữ liệu cung cấp tập các chức năng giống nhƣ trong hệ quản trị dữ liệu quan hệ,
bao gồm phân vùng, đồng bộ hóa dữ liệu, các chính sách quản trị giao dịch, phối hợp với bộ lập
lịch công việc để cục bộ hóa dữ liệu, cơ chế xử lý sự kiện và cơ chế nạp dữ liệu.

Hình 2.4 – Lưới dữ liệu so sánh với cơ sở dữ liệu quan hệ

19


Chƣơng 2 – Lƣới dữ liệu
Mô tơ quản lý tài nguyên có nhiệm vụ chính là hỗ trợ quá trình truyền và đệm dữ liệu. Khi triển
khai, tùy vào đặc điểm của lƣớimà mô tơ này đƣợc cài đặt khác nhau.
Mô tơ của hệ quản trị cơ sở dữ liệu quan hệ quản lý các tài nguyên vật lý: tệp đƣợc tổ chức nhƣ
thế nào? Làm thế nào để tối thiểu hóa hiện tƣợng phân mảnh đĩa đồng thời có thể truy cập nhanh
nhất? Nó tách khỏi chức năng quản trị dữ liệu mức cao. Trong lƣới dữ liệu cũng vậy, có sự tách
biệt tƣơng tự giữa mô tơ và các chức năng quản lý dữ liệu. Mô tơ vật lý trong lƣới dữ liệu có
nhiều dạng khác nhau: FTP, GridFTP, hoặc hệ thống tệp chia sẻ.
Tóm lại, lƣới dữ liệu có nhiều điểm tƣơng đồng với hệ quản trị cơ sở dữ liệu quan hệ về mặt

chức năng. Lƣới dữ liệu hỗ trợ chất lƣợng dịch vụ giống nhƣ hệ quản trị cơ sở dữ liệu quan hệ,
nhƣng mang một số đặc điểm mới, phù hợp với hình trạng phân tán, không đồng nhất của lƣới.
2.1.3.3 Yêu cầu đối với lưới dữ liệu
Từ phân tích trên, nhận thấy giao diện lập trình ứng dụng API của lƣới dữ liệu phải hỗ trợ các
đặc trƣng quản trị dữ liệu truyền thống nhƣ truy vấn, đánh chỉ mục, quản trị và nhân bản. Bên
cạnh đó, do đặc thù triển khai trên môi trƣờng lƣới với hình trạng phân tán và tính chất không
đồng nhất nên lƣới dữ liệu có những yêu cầu riêng. Những yêu cầu chuyên biệt cho môi trƣờng
lƣới bao gồm:
Phần vùng dữ liệu: Phân vùng dữ liệu là đặc trƣng hiệu năng và quản trị quan trọng. Vùng dữ
liệu là tập dữ liệu trải trên các máy tính phân tán và phục vụ cho nhu cầu sử dụng của nhóm
ngƣời dùng. Vùng quy định cách thức tích hợp dữ liệu và chính sách sử dụng dữ liệu đó. Khái
niệm vùng dữ liệu trên lƣới giống nhƣ khái niệm cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu
quan hệ. Nó bao gồm các cấu trúc hoặc lƣợc đồ dữ liệu thuộc về lĩnh vực nghiệp vụ cụ thể.
Chính sách quản trị vùng dữ liệu mô tả hành vi của vùng nhằm đáp ứng tốt nhất nhu cầu của ứng
dụng nghiệp vụ mà vùng đó hỗ trợ.
Đồng bộ hóa dữ liệu: Đồng bộ hóa dữ liệu động đƣợc thực hiện thông qua chính sách quản trị.
Có hai loại đồng bộ: đồng bộ mạnh và đồng bộ yếu. Đồng bộ mạnh sử dụng trên những lƣới yêu
cầu trễ thấp và tính nhất quán cao. Ngƣợc lại, chính sách đồng bộ yếu chỉ thực hiện đồng bộ dữ
liệu khi cần thiết. Lƣới dữ liệu với chính sách đồng bộ yếu có khả năng mở rộng và tính linh hoạt
cao.
Quản trị giao dịch: Lƣới dữ liệu phải có khả năng phục hồi, xác nhận hoặc quay ngƣợc lại giao
dịch để đảm bảo tính toàn vẹn dữ liệu. Có hai chiến lƣợc chính cho quản trị giao dịch: chiến lƣợc
lạc quan và chiến lƣợc bi quan. Chiến lƣợc lạc quan giả thiết rằng trên lƣới ít hoặc không xảy ra
tình trạng xung đột và khóa tài nguyên. Ngƣợc lại, chiến lƣợc bi quan đƣợc áp dụng khi nguy cơ
xung đột tài nguyên trên lƣới lớn.
Cục bộ hóa – Phân phối dữ liệu là yêu cầu không thể thiếu đối với lƣới dữ liệu. Đây là khả
năng xác định và nhóm dữ liệu cùng mục đích sử dụng dựa trên yêu cầu về hiệu năng cho trƣớc.
Dữ liệu đƣợc giám sát bởi tập các thƣớc đo. Khối dữ liệu có thể di chuyển từ nút này tới nút kia
tùy thuộc theo mẫu sử dụng hoặc vào lịch sử sử dụng. Một cách dễ hiểu, dữ liệu phải đến đƣợc
20



Chƣơng 2 – Lƣới dữ liệu
nút tính toán cần nó một các hiệu quả nhất. Có hai nhóm chiến lƣợc chính giải quyết bài toán
này: chiến lƣợc di chuyển dữ liệu và chiến lƣợc di chuyển công việc.



Trong chiến lƣợc di chuyển dữ liệu, dữ liệu đƣợc truyền tới các nút tính toán dựa trên cơ
sở phân tích thông tin quá khứ về xử lý công việc trên lƣới tính toán.
Ngƣợc lại, trong chiến lƣợc di chuyển công việc, mã thực thi công việc đƣợc lƣới chuyển
tới kho lƣu trữ dữ liệu đầu vào cần cho thực thi công việc đó.

Việc di chuyển dữ liệu hay công việc nhƣ thế nào phụ thuộc vào tiêu chí đánh giá chiphí trên
lƣới dữ liệu đó.

2.1.4 Kiến trúc của lưới dữ liệu
2.1.4.1 Các quyết định thiết kế
Ứng dụng trên lƣới dữ liệu hoạt động trong môi trƣờng phân tán, không đồng nhất, đa ngành, với
các chính sách sử dụng tài nguyên khác nhau. Kiến trúc lƣới dữ liệu và đặc trƣng liên quan có
thể có sự khác biệt rất lớn. Theo Ian Foster, khi thiết kế kiến trúc lƣới dữ liệu, phải tuân theo một
số nguyên tắc[8]:






Trung lập về kỹ thuật: kiến trúc lƣới dữ liệu đƣợc thiết kế sao cho càng độc lập với kỹ
thuật cấp thấp sử dụng để lƣu trữ dữ liệu, siêu dữ liệu, truyền dữ liệu… càng tốt.

Trung lập về chính sách: lƣới dữ liệu đƣợc thiết kế sao cho những chỉ báo quan trọng về
hiệu năng đến đƣợc với ngƣời dùng một cách tƣờng minh.
Tƣơng thích với cơ sở hạ tầng lƣới: kiến trúc lƣới dữ liệu tích hợp với cơ sở hạ tầng lƣới
để giải quyết vấn đề hoạt động trên phạm vi rộng lớn. Cơ sở hạ tầng lƣới hỗ trợ chứng
thực, quản lý tài nguyên và thông tin.
Thống nhất cơ sở hạ tầng truy xuất thông tin: truy xuất thuận tiện, thống nhất tới thông
tin cấu trúc tài nguyên và trạng thái.

Từ nguyên tắc thiết kế trên, lƣới dữ liệu phải có kiến trúc phân tầng. Tầng thấp chứa các dịch vụ
cơ bản. Các dịch vụ mức cao ở tầng trên đƣợc xây dựng dựa trên những dịch vụ cơ bản này. Chi
tiết về kiến trúc của lƣới dữ liệu sẽ đƣợc trình bày ở phần sau.
Bên cạnh đó, chính sách lƣu trữ và đồng bộ hóa dữ liệu phải đƣợc xem xét tới. Liệu lƣới dữ liệu
đƣợc thiết kế theo hƣớng nhân bản hay hƣớng phân tán. Trong kiến trúc hƣớng nhân bản, mỗi
thành viên của lƣới dữ liệu có một vùng đệm lƣu trữ tất cả dữ liệu trên lƣới. Mỗi khi dữ liệu trên
vùng đệm của một thành viên bị sửa đổi, thông tin sửa đổi đƣợc cập nhật tới các vùng đệm còn
lại. Đây là khả năng đồng bộ hóa mạnh, đƣợc bàn tới trong chƣơng trƣớc. Kiến trúc này phù hợp
với lƣới cần đảm tính tin cậy và toàn vẹn dữ liệu cao, nhƣng đổi lại hiệu năng của lƣới thấp vì
chi phí đồng bộ hóa dữ liệu giữa các nút lƣới lớn. Do vậy, lƣới dữ liệu không có khả năng mở
rộng về quy mô.
Ngƣợc lại, kiến trúc hƣớng phân tán chia sẻ dữ liệu dựa trên mô hình mạng ngang hàng. Trong
kiến trúc này, dữ liệu không đƣợc nhân bản tại tất cả các nút. Tuy nhiên, một mức độ nhân bản
21


Chƣơng 2 – Lƣới dữ liệu
nào đó vẫn đƣợc đảm bảo. Ví dụ, một tệp dữ liệu có thể đƣợc nhân thành 10 bản, lƣu tại 10 trên
tổng số 100 nút của lƣới. Nhân bao nhiêu bản trên tổng số các nút lƣới còn tùy thuộc vào hiệu
năng, chính sách sử dụng và đặc thù của lƣới dữ liệu. Khả năng mở rộng quy mô trong trƣờng
hợp này cao hơn nhiều so với kiến trúc hƣớng nhân bản. Có thể tìm thấy sự tƣơng đồng giữa
kiến trúc này với mô hình RAID - Redundant Array of Inexpensive Disk. Trong mô hình

RAID[9], dữ liệu đƣợc “trải” trên một mảng các đĩa cứng. Nhƣợc điểm của kiến trúc hƣớng phân
tán là độ tin cậy và tính toàn vẹn dữ liệu không cao.
Bàn về tính toàn vẹn dữ liệu, có hai chiến lƣợc đảm bảo điều này. Chiến lƣợc thứ nhất, lƣới dữ
liệu có một bộ quản lý tập trung chịu trách nhiệm đồng bộ hóa dữ liệu trên tất cả các nút lƣới.
Một chƣơng trình nhƣ thế rất khó xây dựng, mang nhiều nhƣợc điểm nhƣ khả năng mở rộng kém
hoặc gây ra lỗi single-point-failure, tạm dịch là lỗi thắt nút chai, theo nghĩa nếu chƣơng trình này
hỏng thì toàn bộ hệ thống cũng sẽ ngƣng hoạtđộng. Nếu áp dụng kiểu quản lý này, cần có cơ chế
dự phòng tốt, để khi lỗi xảy ra, hệ thống có thể hoạt động bình thƣờng. Nếu sử dụng chiến lƣợc
quản lý đồng bộ hóa phân tán, trên lƣới có nhiều tiến trình quản lý tính toàn vẹn dữ liệu. Mỗi tiến
trình quản lý một số lƣợng nhỏ các bản sao. Trong ví dụ trên, bộ dữ liệu đƣợc nhân thành 10 bản
lƣu tại 10 trên tổng số 100 nút của lƣới. Khi đó, có một tiến trình luôn giám sát tính đồng bộ giữa
10 bản sao này. Nó không chịu trách nhiệm giám sát tính đồng bộ của dữ liệu trên 90 nút còn lại.
90 nút này hoàn toàn tự do phục vụ cho các yêu cầu khác trên lƣới.
2.1.4.2 Kiến trúc phân tầng
Từ phân tích về nguyên tắc thiết kế và dịch vụ chính trong lƣới dữ liệu, nhận thấy lƣới dữ liệu
phải có kiến trúc phân tầng giống nhƣ kiến trúc của lƣới tính toán. Tầng dƣới cùng bao gồm các
dịch vụ cơ bản, tầng trên là các dịch vụ mức cao đƣợc xây dựng từ dịch vụ mức thấp. Ví dụ, tầng
phía dƣới cung cấp truy cập hiệu năng cao nhƣng không thực thi chính sách sử dụng nhƣ khả
năng chống lỗi. Điều này sẽ đƣợc các dịch vụ mức cao thực thi. Kiến trúc phân tầng có ƣu điểm:






Cung cấp khả năng hoạt động tốt trên môi trƣờng không đồng nhất.
Ngƣời sử dụng đầu cuối trở nên trong suốt với lƣới dữ liệu
Ngƣời phát triển ứng dụng chỉ cần biết các API là có thể lập trình dễ dàng.
Hỗ trợ một số lƣợng lớn các ứng dụng trên lƣới.
Khả năng phát triển, nâng cấp dịch vụ độc lập với xây dựng ứng dụng


Ian Foster, Carl Kesselman[10] đƣa ra kiến trúc lƣới dữ liệu gồm năm tầng nhƣ sau:






Tầng nền: xác định tài nguyên cơ bản tạo nên lƣới dữ liệu, bao gồm các hệ thống lƣu trữ,
hệ thống máy tính, mạng, các kho siêu dữ liệu và kho chứa mã nguồn hoặc mã thực thi.
Tầng kết nối: dịch vụ trong tầng này liên quan đến vấn đề truyền thông và chứng thực.
Tầng tài nguyên: dịch vụ trong tầng này cung cấp khả năng truy cập từ xa an toàn tới hệ
thống lƣu trữ, máy tính và tài nguyên khác. Có thể sử dụng nhiều chuẩn dịch vụ tại tầng
này.
Tầng kết hợp: dịch vụ trong tầng này hỗ trợ quản trị phối hợp các tài nguyên khác nhau.
22


Chƣơng 2 – Lƣới dữ liệu


Tầng ứng dụng: chứa ứng dụng cụ thể trên lƣới dữ liệu, hoạt động bằng cách triệu gọi
thực thi dịch vụ thuộc tầng Tài nguyên và tầng Kết hợp, thông qua giao diện lập trình
API hoặc bộ công cụ phát triển.

Hình 2.5 – Kiến trúc phân tầng lưới dữ liệu

Tầng Tài nguyên và tầng Kết nối là quan trọng nhất. Chúng định nghĩa tập giao cho phép xây
dựng dịch vụ mức cao.


2.2 Globus Toolkit
Globus Toolkit[11] là một bộ công cụ phần mềm sử dụng để xây dựng các hệ thống và ứng dụng
lƣới. Bộ công cụ đƣợc phát triển bởi cộng đồng Globus Alliance và rất nhiều nhà phát triển khác
trên khắp thế giới. Ngày càng nhiều các dự án và các tổ chức sử dụng Globus Toolkit để triển
khai cho lƣới của họ.
Bộ công cụ mã nguồn mở Globus Toolkit hỗ trợ những thành phần cơ bản cho tính toàn lƣới, cho
phép ngƣời sử dụng có thể chia sẻ sức mạnh của các máy tính, cơ sở dữ liệu và những thành
phần khác một cách bảo mật giữa các doanh nghiệp, tổ chức, các vùng lãnh thổ mà không mất
quyền tự chủ. Bộ công cụ bao gồm các dịch vụ và thƣ viện cung cấp các khả năng theo dõi, khai
phá, quản lý, tăng cƣờng bảo mật và quản lý tập tin. Ngoài việc là thành phần quan trọng của các
dự án mà tổng kinh phí gần một nửa tỷ đô la trên toàn thế giới, Globus Toolkit còn đƣợc chọn
làm tầng nền cho các công ty Công nghệ thông tin sử dụng để phát triển các ứng dụng thƣơng
mại về lƣới. Hiện nay, hầu hết các dự án tính toán lƣới nhƣ EU DataGrid, GridPhysics Network,
Particle Physics Data Grid, Earth System Grid… đều đƣợc triển khai trên nền Globus Toolkit.
Globus Toolkit bao gồm các phần mềm dành cho bảo mật, hạ tầng thông tin, quản lý tài nguyên,
quản lý dữ liệu, giao tiếp, phát hiện lỗi, và khả năng di động. Globus Toolkit đƣợc đóng gói
23


×