Mục đích của đồ án là sử dụng các lưới tính toán có sẵn để xừy dựng tầng lưu trữ lướicho LINDA.Để có thể sử dụng các dịch vụ mà lưới cung cấp, cần phải nghiên cứu và xâydựng module quản
Trang 1Xây dựng và quản lý hạ tầng lưu trữ lưới cho hệ thống lưu trữ và chia sẻ dữ liệu LINDA
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên
Họ và tờn sinh viờn: Đào Hải Hưng
Điện thoại liờn lạc: 0978118659 Email: hunga1_87@yahoo comLớp: Hệ thống thông tin – K50 Hệ đào tạo: Đại học chính quy
Đồ ỏn tốt nghiệp được thực hiện tại:
Trung từm tớnh toỏn hiệu năng cao – Trường đại học Bỏch Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày: 1/ 03/ 2010 đến: 31/ 05/ 2010
2 Mục đích nội dung của ĐATN
Xừy dựng và quản lý tầng lưới lưu trữ cho hệ thống lưu trữ và chia sẻ dữ liệu LINDA
3 Cỏc nhiệm vụ cụ thể của ĐATN
CoG Kit để sử dụng các dịch vụ lưới trên web/servlet
module quản lý tài nguyên của LINDA có khả năng mởrộng và độc lập với các chính sách tài nguyên trên các
4 Lời cam đoan của sinh viờn
Tôi – Đào Hải Hưng - cam kết ĐATN 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ả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ côngtrình nào khác
Sinh viên Đào Hải Hưng – Lớp Hệ thống thông tin – K50 4
Trang 2Xừy dựng và quản lý hạ tầng lưu trữ lưới cho hệ thống lưu trữ và chia sẻ dữ liệu LINDA
Hà Nội, ngày 23 thỏng 5 năm 2010
Tỏc giả ĐATN
Đào Hải Hưng
5 Xỏc nhận của giỏo viờn hướng dẫn về mức độ hoàn thành của ĐATN và cho phộp bảo vệ
Hà Nội, ngày thỏng năm
Giỏo viờn hướng dẫn
PGS TS Nguyễn Thanh Thủy
TểM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
LINDA là hệ thống lưu trữ dữ liệu dựa trên công nghệ lưới dữ liệu, được xây dựng bởisinh viờn K49 tại trung từm Tớnh toỏn hiệu năng cao trường Đai học Bỏch khoa Hà
Nội(phiờn bản này được gọi là LINDA – K49) Hiện tại, hệ thống LINDA – k49 đó xừy
dựng được cỏc chớnh sỏch khỏ hoàn thiện cho người sử dụng, các cơ chế kiểm soát dunglượng, cơ chế hạn chế download/ upload hoạt động ổn định Quá trình upload/ downloadđược thực hiện trên các mỏy chủ tại trung tâm Tính toán hiệu năng cao nên đạt tốc độcao Tuy nhiên, dựa vào những phân tích về tính chất của hệ phừn tỏn, những hạn chế củaLINDA đó làm giảm chất lượng và khả năng triển khai/ mở rộng của hệ thống:
chưa khai thỏc được sức mạnh của cỏc lưới dữ liệu đó đượcxừy dựng và hoạt động ổn định
cung cấp giao diện thêm các thành phần Ngoài ra, các tham
số cấu hình được đặt cố định trong mã nguồn nên hệ thốngkhông có khả năng triển khai rộng rãi
làm cho hệ thống hoạt động không ổn định và hiệu quả
Mục đích của đồ án là sử dụng các lưới tính toán có sẵn để xừy dựng tầng lưu trữ lướicho LINDA.Để có thể sử dụng các dịch vụ mà lưới cung cấp, cần phải nghiên cứu và xâydựng module quản lý giấy ủy quyền (proxy) hiệu quả cho người dùng
Sinh viên Đào Hải Hưng – Lớp Hệ thống thông tin – K50 2
Trang 3Xừy dựng và quản lý hạ tầng lưu trữ lưới cho hệ thống lưu trữ và chia sẻ dữ liệu LINDA
trên các hệ thống lưới
Nhằm nừng cao chất lượng dịch vụ, đồ án nghiên cứu các cơ chế quản lý tài nguyên trênmôi trường lưới, đồng thời đưa ra thiết đế để xây dựng module quản lý tài nguyên.Module quản lý tài nguyên không những phải đảm bảo khả năng phát hiện các thànhphần của hệ thống gặp lỗi, mà còn có khả năng thu nhận thông tin cần thiết về tài nguyêncủa hệ thống để phục phụ cho cỏc module khỏc Các hệ thống tham gia các lưới tính toánthường có các cơ chế quản lý tài nguyên và bảo mật khác nhau Module quản lý tàinguyên được thiết kế độc lập với chính sách quản lý của từng hệ thống, và có thể dễ dàngthay đổi khi cần phải thu nhận những thông tin tài nguyên khác
Trong quá trình hoạt động của hệ thống, một số thành phần có thể gặp lỗi và cần phảithay thế, hoặc khi cần nừng cấp – mở rộng hệ thống Đồ ỏn xừy dựng những điều kiện,
cơ chế và giao diện để thờm cỏc thành phần ở tầng lưới dữ liệu: quy trình thêm Headnode
và Datanode Đầu tiờn, đồ ỏn xỏc định những yờu cầu cỏc mỏy chủ muốn trở thànhHeadnode và Datanode của LINDA cần phải đáp ứng, sau đó Đồ án đưa ra các bước vàgiao diện để thêm các thành phần này
Trong hệ thống đa người dùng như LINDA, việc kiểm soát tài nguyên của từng ngườidùng là điều quan trọng Đồ án đã nghiên cứu và áp dụng cơ chế kiểm soỏt tốc độ upload/download file của người dùng, bằng cách nghiên cứu sự phụ thuộc tốc độ giao thứcGridFTP và số luồng dữ liệu và độ lớn bộ đệm dữ liệu
Thành viên của công trình:
Chủ tịch hội đồng quản trị Viện tin học Phỏp ngữ, - Giỏm đốcTrung từm tớnh toỏn hiệu năng cao - Giảngviờn viện CNTTT và Truyền thông trường ĐHBKHN
toán hiệu năng cao - Giảng viên viện CNTTT và Truyềnthông trường ĐHBKHN
Truyền thông trường ĐHBKHN, cộng tỏc viờn của Trung từmtớnh toỏn hiệu năng cao – DHBKHN
toỏn hiệu năng cao, ĐHBKHN
Trang chủ: http://hpcc hut edu vn/ linda
LỜI NểI ĐẦU
Em xin gửi lời cảm ơn chừn thành tới PGS TSNguyễn Thanh Thuỷ,giỏm đốc
Sinh viên Đào Hải Hưng – Lớp Hệ thống thông tin – K50 3
Trang 4Xừy dựng và quản lý hạ tầng lưu trữ lưới cho hệ thống lưu trữ và chia sẻ dữ liệu LINDA
Trung Từm tớnh toỏn hiệu năng cao, trường đại học Bách Khoa Hà Nội, người đã tạo cho
em cơ hội được học tập và nghiên cứu trong một môi trường khoa học lý tưởng, ngườitận tình hướng dẫn em trong suốt thời gian thực tập tốt nghiệp cũng như giai đoạn làm đồ
án tốt nghiệp
Em xin bày tỏ lòng biết ơn sâu sắc tới TS Nguyễn Hữu Đức,người đã có những đóng
góp quý báu cho nội dung của đồ án, đã hướng dẫn tận tình nhóm sinh viên chúng emtrong suốt quá trình thực tập và làm đồ án tốt nghiệp tại trung tâm
Em cũng xin gửi lời cảm ơn tới KSPhạm Hồng Phong, KSLê Đức Hùng đã có những
lời khuyên và đóng góp quý báu để đồ án của em được hoàn thiện
Em xin gửi lời cảm ơn tới viện Công nghệ thông tin và truyền thông, Trung từm Tớnhtoỏn hiệu năng cao cùng toàn thể các thầy cô, anh chị và các bạn đã nhiệt tình tạo mọiđiều kiện thuận lợi cho em trong quá trình nghiên cứu và học tập tại trường Đại HọcBách Khoa Hà Nội
Mình xin gửi lời cảm ơn tớibạn cùng nhómLINDA là Bùi Hải Phong, cùng cỏc bạn sinh
viờn K50 tại Trung từm Tớnh toỏn hiệu năng cao – Trường đại học Bỏch Khoa HàNộiđó sỏt cỏnh giúp đỡ nhau vượt qua những khó khăn trong quá trình thực tập, hoànthành đồ án
Cuối cùng, con xin gửi lời biết ơn vô hạn tới bố mẹ, bố mẹ luôn là điểm tựa vững chắccho con trong mọi công việc Chính sự hy sinh to lớn của bố mẹ đã giúp con có đượcngày hôm nay
Hà Nội, thỏng 5 năm 2010
Sinh viờn thực hiện
Đào Hải Hưng
Trang 5DANH MỤC HốNH ẢNH
Hình 1.1 – Mô hình LINDA 19
Hình 1 2 - Cỏc trung từm và viện nghiờn cứu thành viờn tham gialướiPRAGMA 20
Hình 2 1 - Tổng quan một lưới dữ liệu 24
Hình 2 2 - Kiến trúc chung của một lưới dữ liệu 25
Hình 2.3 – Cỏc thành phần của Globus Toolkit 4 27
Hình 2 4 - Kiến trúc của Java CoG kit 29
Hình 2 5 –Cỏc lớp của Java Cog Kit 30
Hình 2 6 - Sự tương ứng giữa các gói với các lớp kiến trúc trong Java Cog Kit 31
Hình 2 7 – Biểu tượng lưới PRAGMA 32
Hình 2 8 - Giao thức FTP 33
Hình 2 9 - Truyền dữ liệu song song 34
Hình 2 10 - Truyền dữ liệu song song với đối tỏc thứ ba 34
Hình 2 11 - GateKeeper 38
Hình 2 12 - Sơ đồ vật lý của hệ thống 41
Hình 2 13 - Sơ đồluồng dữ liệu upload file từ người dùng: Các gói tin được chuyển tiếp thông qua bộ đệm trên Headnode tới Datanode là các server trên Lưới dữ liệu 42
Hình 2 14 - Sơ đồ download filetừ Datanode thông quabộ đệm nằm trờn Headnode 43
Hình 2 15 - Sơ đồ bố trí các dịch vụ trên Headnode 43
Hình 3 1 - Lưu giấy ủy quyền lờn mỏy chủ lưu trữ 46
Hốnh 3 2 - Truy xuất giấy ủy quyền từ mỏy chủ lưu trữ 47
Hình 3 3 –Biểu đồ use case của module quản lý proxy 48
Hình 3 4 – Lớp SHARED_ MEMORY 50
Hình 3 5 –Lớp PROXY_ SERVICE_ MONITOR 51
Hình 3 6 - Lược đồ tuần tự cho module quản lý proxy 51
Hình 3 7 - Biểu đồ tuần tự cho các chức năng khác 54
Hình 3 8 – Module quản lý proxy 54
Hình 4 1 – Cây thư mục trên Headnode 57
Hình 4 2 – Import file cấu hình cho Headnode 59
Hình 4 3 –Tạo cơ sở dữ liệu trờn Headnode 60
Hình 4 4 –Khởi tạo cỏc dịch vụ trờn Headnode 60
Hình 4.5 – Cừy thư mục trờn DATANODE 61
Hình 5 1 - Phỏt hiện lỗi phần cứng 63
Hình 5 2 - Phỏt hiện lỗi đường truyền 63
Hình 5 3 - Mô hình Push 64
Hình 5 4 - Phát hiện lỗi trong mô hình Push 65
Hình 5 5 - Mô hình Pull 65
Hình 5 6 - Phát hiện lỗi trong mô hình Pull 66
Hình 5 7 Sử dụng kết hợp hai mô hình Push và Pull 66
Trang 6Hình 5 8 – Module quản lý tài nguyên 68
Hình 5 10 – Lớp RESOURCE_ MONITOR_ OBJECT 70
Hình 5 11 –Biểu đồ tuần tự lấy trạng thỏi của tài nguyờn 70
Hình 5 12 – Biểu đồ tuần tự quản lý module quản lý tài nguyên 72
Hình 5 13 – Module quản lý tài nguyên 73
Hình 6 1 - GridFTP nhiều luồng TCP với mô hình thời gian liên tục 75
Hình 6 2 – sự ảnh hưởng của số luồng dữ liệu vào tốc độ của GridFTP 77
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 10
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 10
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
CÁC TỪ VIẾT TẮT VÀ CHÚ GIẢI
Từ
viết
tắt
Nghĩa
tiếng Anh
Chú giải
API Applicati
on
Program
ming
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
CAS Communi
ty
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
Trang 7Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 12
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
LRC Local Replica
Catalogue
Catalog định vị bản sao địa phương, lưu trữ tậpcác ánh xạ bao gồm hai trường: {tên logic củathực thể dữ liệu, vị trí vật lý cụ thể của thực thểđó}
ODBC Open Database
Trang 8giao thức truy cập, địa chỉ của máy màchứafile 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à contrỏ tới LRC tương ứng}
CHƯƠNG 1 – ĐẶT VẤN ĐỀ
1.1.Giới thiệu hệ thống LINDA – K49
1 1 2 Nhu cầu cho hệ thống lưu trữ trực tuyến
Hiện nay, nhu cầu upload, cất giữ dữ liệu trực tuyến đã 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 Cỏctổchứckhoahọc,cáctrườngđạihọc,cácviện,cáctổchứckinhtế,chođếnrấtnhiềungườidùngcánhân đềucónhucầulưugiữvàchiasẻdữliệucủahọ.Vớinhữngdữliệulớn,họsẵnsàngtrảtiềnchodịchvụlưutrữđó.TrênInternethiệnnàycórấtnhiềutrangwebcungcấpcácdịchvụnhưvậynhư:RapidShare,MegaUpload…TuynhiênngườidùngViệtNam vẫn chưa hài lòng với các dịch vụnày vì nhiều lý do
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 13
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Xuất phát từ nhu cầu như vậy, nhóm dự án quyết định xây dựng một công cụ cho phépcác tổ chức, các cá nhân có thể upload dữ liệu và sử dụng các dich vụ như download, chia
sẻ dữ liệu, hoặc tạo các kho chứa lớn của mình (gồm rất nhiều các dịch vụ hỗ trợ kèmtheo ) Dự án 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à hướng tới cả người dùng phổ thông
Để xây dựng được một dịch vụ mạnh và đạt yêu cầu cần có một nền tảng công nghệ thíchhợp Nền tảng công nghệ này cần có khả năng kết hợp sức mạnh lưu trữ của nhiều máytính Một hệ thống chia sẻ dữ liệu như vậy sẽ cung cấp cho người dùng những dịch vụ tốthơn nhiều so với các hệ thống đơn lẻ khác Qua quá trình nghiên cứu, nhóm thấy rằngcông nghệ lưới dữ liệu là phù hợp với những yêu cầu đặt ra cho một hệ thống như vậy.Với những điểm mạnh về công nghệ tại Trung tâm tính toán hiệu năng cao trường ĐHBách Khoa Hà Nội, hệ thống LINDA được xừy dựng bởi cỏc sinh viờn k49 trờn nền lưới
Trang 9dữ liệu (DataGrid) với cỏc kho lưu trữ nằm phừn tỏn về mặt địa lý k49).LINDA là viết tắt của LINDA Is Not a Data Archive.
(LINDA-1 (LINDA-1 3 Những vấn đề cho dịch vụ lưu trữ trực tuyến
1.1.3.1 Tính cục bộ
Có nhiều tiêu chí để đánh giá một dịch vụ chia sẻ dữ liệu Chất lượng của dịch vụ cũngphụ thuộc vào nhiều yếu tố Trong số đó, yếu tố được người dùng đánh giá cao nhất là tốc
độ truyền file Đây cũng là điều được các nhà cung cấp dịch vụ lưu trữ và chia sẻ dữ liệu
ưu tiên hàng đầu Để tăng tốc độ truyền tải dữ liệu giữa người dùng, người ta có nhiềugiải pháp
Một trong những giải pháp đó là đầu tư tiền vào một hệ thống máy chủ lưu trữ tập trungvới quy mô lớn, tài nguyên phần cứng và tài nguyên mạng dồi dào Hệ thống này có khảnăng đáp ứng một lượng lớn người sử dụng và khả năng lưu trữ lớn, đủ sức cung cấp chocộng đồng một dịch vụ chất lượng cao Đây là phương pháp đạt hiệu quả vì tính tiệndụng, nhanh chóng và dễ xừy dựng Tuy nhiên phương pháp này lại khá tốn kém và cần
có sự đầu tư ban đầu rất lớn Mặt khác, do hạ tầng mạng, hệ thống này khó phát huy tối
đa khả năng của mình
Đểgiảmtảiviệcđòihỏimộtlượnglớntàinguyênmạng,ngườitachiatoànbộhệthốngthànhcáccụmmáychủlưutrữkhácnhau,đặttạinhữngvịtríđịalýkhácnhau.Ngườidùngnhờvậycóthểthựchiệnviệctruyềndữliệutớinhữngmáychủgầnmìnhhơnvàđạttốcđộtốthơnnhiềusovớimáychủtậptrungtạimộtđịađiểm.Khiyêucầutớidịchvụ,ngườidùngsẽlàmviệcvớimáychủởgầnhoặcmáychủcókhảnăngđápứngtốthơn
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 14
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Việc đặt các máy chủ ở nhiều địa điểm khác nhau làm tăng tính cục bộ cho hệ thống Tuynhiên khi hệ thống được chia làm nhiều thành nhiều cụm máy sẽ nảy sinh những khókhăn trong việc quản lý, bảo mật và đồng bộ hoá
vụ đều dựa trên cơ chế chia sẻ file thông qua đường liên kết logic
Dưới khung nhìn của người dùng, mỗi đường dẫn logic ánh xạ đến một file duy nhấttrong hệ thống nhưng đường dẫn này lại độc lập với cỏc file tin thực được lưu trữ Đườngdẫn logic cũng độc lập với hệ thống quản lý người dùng và việc phân chia lớp ngườidùng Nhờ vậy, người sử dụng tham gia hệ thống có thể chia sẻ file cho nhau thông qua
Trang 10đường dẫn logic này mà không cần quan tâm đến file đó của ai hay được lưu trữ ở đâu.Đương nhiên người dùng có quyền quản lý các đường dẫn logic do mình tạo ra.
Bên cạnh việc sử dụng cơ chế đường dẫn logic, các dịch vụ chia sẻ dữ liệu còn cung cấpchức năng cho phép người dùng chia sẻ file theo nhóm Người dùng có thể tạo ra mộtdanh sách các file tin muốn chia sẻ và một đường dẫn logic đến danh sách này để nhữngngười dùng khác có thể truy cập
1 1 4 Cỏch tiếp cận của hệ thống LINDA – K49
Dịch vụ lưu trữ dữ liệu đã được phát triển từ rất lâu trên thế giới, từ khi mạng Internet bắtđầu phổ biến với người dùng Tuy nhiên công nghệ lưu trữ và phân bố file tin trong hệthống được cỏc nhà phỏt triển che giấu
Đểxâydựngđượcmộtdịchvụmạnhvàđạtyêucầucầncómộtnềntảngcôngnghệthíchhợp.Nềntảngcôngnghệnàycầncókhảnăngkếthợpsứcmạnhlưutrữcủanhiềumáytính.Mộthệthốngchiasẻdữliệunhưvậysẽcungcấpchongườidùngnhữngdịchvụtốthơnnhiềusovớicáchệthốngđơnlẻkhác.Quaquátrìnhnghiêncứu,nhómthấyrằngcôngnghệlướidữliệulàphùhợpvớinhữngyêucầuđặtrachomộthệthốngnhưvậy.Vìlýdođó,dựánLINDA được xây dựng với việc sử dụng hạ tầnglưới phục vụ cho mục đích lưu trữ và chia sẻ
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 15
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
1.2 Khảo sỏt hệ thống LINDA – K49
1 2 1 Tớnh chất của hệ thống phân tán
Một hệ thống phừn tỏn, như Tannenbaum định nghĩa trong [1]:
Một hệ phân tán là một tập hợp các máy tính độc lập nhau, tồn tại với người dùng như một hệ thống đơn nhất.
Định nghĩa này có hai khía cạnh chính Khía cạnh thứ nhất về phần cứng: các máy tínhtrong hệ phân tán là các hệ thống độc lập với nhau, có thể có kiến trúc khác nhau và đượcliên kết, cộng tác với nhau trong suốt với người dùng Điểm thứ hai về phần mềm: người
sử dụng quan sát hệ thống như một hệ thống đơn nhất Nghĩa là mọi tương tác với hệthống của người sử dụng hay các hệ thống khác theo một cách cố định và duy nhất,không phụ thuộc vào không gian, thời gian mà tương tác đó diễn ra Cỏc mục đích chínhkhi xây dựng các hệ phân tỏn:
1.2.1.1 Liờn kết người sử dụng và tài nguyờn
Mục đích chính của các hệ phân tán là nhằm cung cấp phương tiện cho người dùng truycập và sử dụng các tài nguyên ở xa Các tài nguyên có thể là máy in, dung lượng lưu trữ,
dữ liệu hay các chương trình trên các máy tính khác Liên kết người dùng và các tàinguyên còn nâng cao tính cộng tác và trao đổi dữ liệu Sự bùng nổ của Internet đã dấn tới
Trang 11sự thành lập của nhiều tổ chức ảo năm phân tán về mặt địa lý, các thành viên trong tổchức cộng tác với nhau thông qua các hệ thống phân tán.
Tuy nhiờn, khi sự liờn kết và chia sẻ tài nguyờn tăng lờn, vấn đề bảo mật cũng trở nờnquan trọng hơn Cỏc hệ thống phừn tỏn vừa phải giải quyết được cỏc yờu cầu bảo mậtcủa
hệ thống vừa phải phù hợp với chính sách bảo mật của từng thành phần trong hệ thống.LINDA– K49 là hệ thống khai thác khả năng lưu trữ của các hệ thống trên các lưới dữliệu cho mục đích lưu trữ file cho người sử dụng Nhờ những ưu điểm của lưới dữ liệu, hệthống có một nền tảng công nghệ bảo mật, ổn định và mạnh mẽ
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 82
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
1.2.1.2 Tính trong suốt
Một tính chất quan trọng khác của các hệ phân tán là làm ẩn đi thực tế các quá trình, tàinguyên nằm trên các máy tính phân tán về địa lý Một hệ phân tán có khả năng xuất hiệndưới quan sát của người dùng hay các chương trình ứng dụng khác như một hệ thống
nằm trên một máy tính được gọi là tính trong suốt (transparency).
Khỏi niệm trong suốt trong hệ phân tán có thể áp dụng cho cỏc khía cạnh khỏc nhau của
hệ thống:
tính khác nhau phải tuân theo định dạng, quy ước dữliệu riờng ở từng máy tính cục bộ Vì trong hệ phân tán, cácmáy tính động lập nhau, nên định dạng dữ liệu trên mỗi máykhác nhau Hơn nữa, các máy có hệ điều hành khác nhau dẫnđến cấu trúc cây thư mục và quy ước tên file khỏc nhau
Một ví dụ khác là các hệ thống Sun SPARC sử dụng big
endian, còn các hệ thống của Intel thì sử dụng little endian.
Quá trình truyềnfile trờn hệ thống LINDA– K49 có thể đượcchia thành hai loại:file do người dùng đang upload được lưuvào một mỏy chủ lưu trữ, và file được lưu trong quá trìnhnhân bản Các quá trình này đòi hỏi sự cộng tác của các máykhác nhau trong hệ thống, do sử dụng giao thức chuẩn duynhất – GridFTP ở tầng lưu trữ lưới, nờn LINDA – K49 đã
đảm bảo được tính trong suốt về truy cập dữ liệu trong hệ
thống
nguyên của hệ thống là ẩn với người sử dụng Nói chung, sựtrong suốt về vị trí có thể đạt được nhờ vào việc đặt tên chocác tài nguyên Người sử dụng dùng những tên này để ánh xạtới tài nguyên mà không quan tâm tới vị trí của tài nguyên Ví
Trang 12dụ, để download một file trên hệ thống LINDA – K49, người
sử dụng phải sử dụng một link có dạnghttp://hpcc.hut.edu.vn/
nhất trên hệ thống mà người dùng có thể download về máytính, nhưng không chỉ ra vị trí thực của file đó nằm ở mỏychủ và thư mục nào Như vậy, hệ thốngLINDA – K49 đó đảm
bảo được tính trong suốt vị trí của quá trình download.
với ban đầu, nhưng sự truy cập tới tài nguyên đó không thayđổi Bằng cách sử dụng tên ánh xạ hay tờn logic, ví dụ đường
12345làhttp://hpcc.hut.edu.vn/LINDA/download?id=12345, ta
có thể đạt được tính trong suốt vị trí File có id như trên có thểđược chuyển giữa các mỏy chủ lưu trữ, nhưng quá trìnhdownload hay tìm kiếm file từ người dùng là không đổi
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 17
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
quan trọng nhằm tăng tính sẵn sàng của các hệ phân tán Tínhchất này chỉ ra rằng, mặc dù một filecó thể có các bản sao ởnhiều nơi khác nhau, hệ thống có thể lựa chọn vị trí tốt nhất
mà người dùng không phải quan tâm tới đó là bản sao nào Đểđạt được tính chất này, cỏc file phải có tên duy nhất và cácbản sao phải có cùng tên
Trong hệ thống LINDA – K49, tờn file được lưu trong hệthống là tờn của file do người dùng upload Khi hai ngườidùng upload file có cùng tên thìđiều kiện tờnfile duy nhất
không được đảm bảo, do đó hệ thống chưa có tính trong suốt
nhừn bản.
Do hệ thống quản lý file tập trung, tất cả thông tin về file đượcquản lý bởi WebServer, nên ta có thể gán cho mỗi file một giỏtrị id duy nhất File được lưu trong hệ thống dưới tờn id +filename sẽ đảm bảo mỗi file trong hệ thống có một tên duynhất
quan trọng của các hệ phân tán là cho phép người dùng chia sẻtài nguyên Một tài nguyên tại một thời điểm có thể được sửdụng bởi nhiều người dùng Các tình huống xảy ra tranh chấp
Trang 13trong LINDA– K49 như khi hai người dùng upload file cócùng một tên, hay khi người sở hữu một file xúa file trongkhi file đó đang được chia sẻ và sử dụng bởi người dùngkhỏc… Hiện nay hệ thống tập trung vào file có nội dung cốđịnh, trong tương lai khi cung cấp thêm các dịch vụ thay đổinội dung file trong hệ thống, cần phải xem xét sự nhất quángiữa các nhân bản và quá trình tương tranh xảy ra khi haingười dùng cùng thay đổi một file.
sự cố xảy ra trên một số máy tính Đây là một trong nhữngmục tiêu rất khó đạt được trên hệ phân tán, để đạt được một hệthống có tình chịu lỗi cao, hệ thống phải được thiết kế cho tất
cả các lỗi có thể xảy ra
Đây là một tính chất quyết định tới chất lượng dịch vụ của hệ thống Hệ thống cần đượcthiết kế với một module quản lý tài nguyên hiệu quả, có khả năng phát hiện được các lỗixảy Hệ thống LINDA– k49 hiệntạichưacómodulequảnlýtàinguyên nên chưa đảm bảo
được tính trong suốt về lỗi.
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 18
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
1.2.1.3 Tính mởTính mở phản ánh tính mềm dẻo của hệ thống Hệ thống nên được thiết kế dựa trên càng
ít các điều kiện tiền định ban đầu càng tốt Những thay đổi trong các kiến trúc, các giaothức của nền tảng công nghệ đang sử dụng cần phải được tính tới Ngoài ra, tính mở còn
phản ánh khả năng thay đổi về “kích thước” Nếu một hệ thống có tính mở, người quản
trị dễ dàng thêm vào hoặc bớt đi cách thành phần mà không làm gián đoạn sự hoạt độngcủa hệ thống
1 2 2 Đỏnh giỏ
Hiện tại, hệ thống LINDA– K49 đó xừy dựng được cỏc chớnh sỏch khỏ hoàn thiện chongười sử dụng, cỏc cơ chế kiểm soỏt dung lượng, cơ chế hạn chế download/ upload hoạtđộng ổn định Quá trình upload/ download được thực hiện trờn cỏc mỏy chủ tại trung từmTớnh toỏn hiệu năng cao nờn đạt tốc độ cao Tuy nhiên, dựa vào những phân tích về tínhchất của hệ phân tán như đã chỉ ra ở phần trờn, những hạn chế của LINDA – K49 đólàmgiảm chất lượng và khả năng triển khai/ mở rộng của hệ thống:
chưa khai thỏc được sức mạnh của cỏc lưới dữ liệu đó đượcxừy dựng và hoạt động ổn định
cung cấp giao diện thêm các thành phần Ngoài ra, các tham
Trang 14số cấu hình được đặt cố định trong mã nguồn nờn hệ thốngkhông có khả năng triển khai rộng rãi.
này đã làm cho hệ thống hoạt động không hiểu quả, cácmodule khác thường xuyờn gặp lỗi
1.3 Mục tiờu và vị trí của đồ ỏn
1 3 1 Mô hình của hệ thống
LINDAcung cấp dịch vụ lưu trữ và chia sẻ file, LINDA hướng tới cỏc chức năng:
chia sẻ cho cỏc ứng dụng khỏc sử dụng hệ thống
quyền lợi dựa trên các đóng góp
Hệ thống LINDA bao gồm 2 tầng chính: tầng giao diện giao tiếp người dùng và tầng lưutrữ lưới
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 19
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Hình 1.1 – Mô hình LINDA
xử lý các yêu cầu của người dùng, sau đó trả lời yêu cầungười dùng Người dùng liên hệ với dữ liệu ở tầng dưới thông
Trang 15qua tầng giao diện này Giao thức được sử dụng ở tầng giaotiếp là giao thức HTTP.
người dùng Các filecủa người dùng sẽ được lưu trữ trên lưới
và hoàn toàn độc lập với tầng giao diện Dữ liệu của ngườidùng khi lưu trữ trên lưới sẽ tuân theo các chính sách và cơchế lưu trữ file trờn lưới
1.3.2 Cỏch tiếp cận mới cho tầng lưới dữ liệu
Để khai thỏc sức mạnh lưu trữ của cỏc lưới dữ liệu sẵn có, tầng lưu trữ lưới sẽ sử dụngcác hệ thống có sẵn trên cỏc lưới tớnh toỏn Sự thay đổi này đòi hỏi tầng lưu trữlướiphải được thiết kế lại để phù hợp với chính sách bảo mật và cỏc dịch vụ mà cỏc lướitớnh toỏn cung cấp.Ngoài ra, do tính chất phân tán của các hệ thống tham gia lưới,module quản lý tài nguyên phải được thiết kế để không những có khả năng phát hiện cácthành phần lỗi trên hệ thống, mà còn có khả năng thu thập các thông tin trạng thái của cácthành phần
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 82
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Trang 16Hình 1 2 - Cỏc trung từm và viện nghiờn cứu thành viờn tham gialưới PRAGMA
1 3 3 Vị trí của đồ ỏn
Mục đích của đồ ỏnlà xừy dựng và quản lý tầng lưới dữ liệu của LINDA trên các lướitính toán có sẵn Công việc cụ thể bao gồm:
quyền(proxy) cho cỏc mỏy trờn hệ thống.
dữ liệu của hệ thống
CoG Kit để sử dụng cỏc dịch vụ lưới trờnweb/servlet
module quản lý tài nguyờn của LINDAcó khả năng mởrộng và độc lập với cỏc chớnh sỏch tài nguyờn trờn cỏc
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 21
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Chương 2: Nền tảng công nghệ
Chương này trình bày cơ bản về các công nghệ sử dụng trong đề tài, từ khái niệm, tới môhình lập trình Phần cuối của chương đưa ra mô hình vật lý và sơ đồ bố trí dịch vụ của hệthống Nội dung chính bao gồm:
GT4
Trang 17- Khái niệm và mô hình lập trình cho các dịch vụ trênlưới: GridFTP, RSL, GRAMJOB.
Chương 3: Quản lý giấy ủy quyền cho cỏc Headnode
Chương này xừy dựng module quản lý giấy ủy quyền (proxy) cho Headnode Bắt đầu từviệc tìm hiểunhững yêu cầu cần phải có proxy, giới thiệu mô hình và cách sử dụng dịch
vụ MyProxy trong LINDA Phần cuối chương trình bày những phân tích và thiết kếmodule quản lý giấy ủy quyền trên các Headnode
Chương 4: Quy trình thêm các thành phần cho hệ thống LINDA
Nhằm cung cấp khả năng mở rộng và triển khai của hệ thống, chương này phừn tớch vàthiết kếquy trình bổ sung cỏc mỏy chủ thành Headnode và Datanode cho LINDA
Chương 5: Quản lý tài nguyờn ở tầng lưới dữ liệu cho LINDA
Chương 5 xỏc định những tài nguyờn cần phải quản lý trờn hệthống.Nghiêncứucácmôhìnhquảnlýtàinguyêntrênlưới.Đưaranhữngyêucầuchomodulequảnlýtàinguyên.CuốicùnglàphântíchvàthiếtkếmodulenàychoLINDA
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 22
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Chương 6: Kiểm soỏt tốc độ truyền file của hệ thống
Dựa trờn những nghiờn cứu ảnh hưởng của kích thước bộ đờm dữ liệu và số luồng TCPtới tốc độ truyền file của giao thức GridFTP, việc lựa chọn giỏ trị độ lớn của bộ đệm dữliệu và số luồng TCP sẽ giúp hệ thống có khả năng kiểm soát tốc độ download/ uploadhay nhân bản file
Chương 7: Kết luận và hướng phỏt triển.
Trình bày kết quả đồ án đã đạt được Đưa ra phương hướng phát triển cho đề tài
Trang 18CHƯƠNG 2–NỀN TẢNG CễNG NGHỆ
Chương trước đã trình bày tổng quan về dịch vụ lưu trữ và chia sẻ dữ liệu dựa trên côngnghệ lưới Đồng thời cũng đã phân tích nhiều khía cạnh mà mỗi hệ thống phân tán cầnphải đỏp ứng để có thể hoạt động ổn định và tối ưu Để đưa ra giải phỏp cho những yờucầu mà hệ thống LINDA cần phải đảm bảo, trước tiên chúng ta xem xột những côngnghệ được sử dụng trong đề tài Phần cuối chương sẽ đưa ra mô hình của hệ thống
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 82
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
2.1 Lưới dữ liệu
2.1.1 Bối cảnh ra đời
Lưới dữ liệu ra đời trong bối cảnh các ứng dụng khoa học trong rất nhiều lĩnh vực khácnhau như vật lí năng lượng cao, mô hình húa phân tử, và khoa học trái đất đã tạo ra mộtlượng lớn các bộ dữ liệu từ việc mô phỏng hay từ các thí nghiệm qui mô lớn Việc phântích các bộ dữ liệu này cũng như lan truyền nú giữa các nhà khoa học ở nhiều nơi khácnhau đòi hỏi những tài nguyên mạnh như siêu máy tính, mạng băng thông rộng, và các hệthống kho chứa lớn
Sự kết hợp của kích cỡ bộ dữ liệu lớn, sự phân tán địa lí của người dùng cũng như tàinguyên, và yờu cầu cần tớnh toỏn trờn bộ dữ liệu lớn đặt ra các yêu cầu về độ phức tạp
và hiệu năng khắt khe mà không có một hạ tầng quản lí dữ liệu nào hiện có đáp ứngđược Một cộng đồng khoa học lớn có thể tạo ra nhiều truy vấn, mỗi truy vấn có thể làtruy nhập tới hàng gigabyte hay terabyte dữ liệu Để sự thực thi những truy vấn đó hiệuquả và tin cậy đòi hỏi việc quản lí một cách cẩn thận các cache cỡ terabyte, hàng gigabyte
dữ liệu truyền trên mạng WAN, đồng lập lịch cho cả dữ liệu và tính toán siêu máy tính,ước lượng hiệu năng chính xác để định hướng việc chọn lựa bộ dữ liệu nhân bản, và các
kĩ thuật khác nhằm tối ưu việc sử dụng kho dữ liệu lớn, mạng, và các tài nguyên tínhtoán
Trong bối cảnh đó, lưới dữ liệu ra đời trên nền tảng của công nghệ tính toán lưới, đáp ứngđược những yêu cầu đã kể trên Do vậy, lưới dữ liệu đã trở thành sự lựa chọn tối ưu chorất nhiều các tổ chức uy tín hàng đầu trong các lĩnh vực nghiên cứu khoa học
2.1.2 Khỏi niệm về lưới dữ liệu
Một lưới dữ liệu cung cấp các dịch vụ giúp người dùng có thể tìm kiếm, truyền, và sửdụng các bộ dữ liệu lớn trên các kho chứa phân tán và tạo ra và quản lí các bản sao củanhững bộ dữ liệu này Ở mức cơ bản nhất, một lưới dữ liệu cung cấp 2 chức năng: một cơchế truyền dữ liệu tin cậy, hiệu năng cao, và một cơ chế quản lí và tìm kiếm bản sao mềmdẻo.Tựy thuộc vào các yêu cầu ứng dụng, các dịch vụ khác có thể được cung cấp thêm
Trang 19vào Ví dụ là việc quản lí nhất quán cho các bản sao, quản lí siêu dữ liệu và bộ lọc dữliệu, cũng như các cơ chế qui tập Tất cả các hoạt động trong một lưới dữ liệu được chêmmột lớp bảo mật để quản lí chứng thực các thực thể và đảm bảo sự tiếp nối chỉ nhữnghoạt động đã được chứng quyền
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 23
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Hình 2 1 - Tổng quan một lưới dữ liệu
Hình vẽtrình bày lưới dữ liệu nhìn ở mức khái quát bao gồm các tài nguyên tính toánởcỏc tổ chức khỏc nhau được kết nối qua một mạng tốc độ cao Đường nột đậm làmạngcó băng thông cao nối các trung tâm chính, và đường nét mảnh là các mạng băngthông thấp nối trung tâm dữ liệu với hệ thống phụ trợ cho nú
Một lưới dữ liệu, vì vậy, cung cấp một nền tảng thông qua đó người dùng có thể truynhập các tài nguyên mạng, tính toán và kho chứa được phối kết hợp với nhau để thực thicác ứng dụng sử dụng bộ dữ liệu lớntrờn cỏc hệ thống ở xa Nú đưa ra một môi trườngphong phú cho người dùng để phân tích dữ liệu, chia sẻ kết quả với đối tác, và bảo trìthông tin trạng thái về dữ liệu một cách liền mạch qua các biên giới về vật lí
2.1.3 Kiến trúc của lưới dữ liệu
Các thành phần của lưới dữ liệu có thể được phân chia dưới dạng một kiến trúc phân cấpnhư hình vẽ dưới Mỗi lớp được xây dựng dựa trên các dịch vụ được đưa ra bởi tầng thấphơn cùng với sự tương tác và phối hợp giữa các thành phần trong cùng một lớp Chúng ta
có thể mô tả các lớp từ thấp đến cao như sau:
Trang 20 Lớp cơ sở: bao gồm cỏc tài nguyờn tớnh toỏn phừn tỏn
(cluster, supercomputer), cỏc tài nguyờn lưu trữ, và cỏc tàinguyờn khỏc (cỏc thiết bị thu thập và sản sinh dữ liệu ) đượckết nối với nhau bởi các mạng băng thông cao
tiếp:baogồmcỏcgiaothứcđượcsửdụngđểtruyvấntàinguyờnởcỏcl
ớpcơsởcũngnhưtruyềndữliệugiữacỏclớpcơsởtươngứng.CỏcgiaothứcnàyđượcxừydựngdựatrờncỏcgiaothứcgiaotiếpnềntảngnhưTCP/IPvàcỏcgiaothứcchứngthựcnhưPKI(kiếntrúc khúa côngkhai), và SSL
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 25
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Hình 2 2 - Kiến trúc chung của một lưới dữ liệu
Trang 21 Lớp dịch vụ lưới dữ liệu: cung cấp các dịch vụ quản lí và xử lí
dữ liệu trong một lưới dữ liệu Các dịch vụ cốt lõi như nhânbản, khai phá dữ liệu và đệ trình công việc cung cấp sự truynhập trong suốt tới các dữ liệu và tính toán phân tán Các dịch
vụ mức người dùng như môi giới dữ liệu (lựa chọn tài nguyêndựa trên yêu cầu của ứng dụng và yêu cầu của người dùng), vàquản lí bản sao cung cấp các cơ chế cho phép quản lí tàinguyên một cách hiệu quả Các dịch vụ này sẽ cung cấp cholớp ứng dụng trên nú giao diện gồm các lệnh trực quan và cácAPI
đượccungcấpbởimôitrườnglưới.GiaodiệnphổbiếnnhấtlàcácPortals.Portallàgiaodiệnwebcungcấpsựtruynhậptớicácdịchvụcácứngdụngcũngnhưcáctàinguyênmàlướiđưara.Cácgiaodiệnnàylạiđượccấuhìnhvàsửdụngmộtphùhợphướngtớilĩnhvựcmàngườidùngmongmuốnnhưvậtlínănglượngcao,môhìnhhúakhí thời tiết…
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 26
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
2.2 Bộ công cụ Globus Toolkit
2.2.1 Giới thiệu
Globus Toolkit là một bộ công cụ phần mềm sử dụng để xây dựng các hệ thống và ứngdụ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ụngGlobus 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ànlướ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ãnhthổ 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ấpcá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àiviệ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êntoà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àinguyên, quản lý dữ liệu, giao tiếp, phát hiện lỗi, và khả năng di động Globus Toolkit
Trang 22được đóng gói thành một tập hợp các thành phần có thể được sử dụng độc lập, hoặc kếthợp với nhau để phát triển các ứng dụng.
Các tổ chức có chế độ vận hành riêng, và sự hợp tác giữa các tổ chức luôn gặp trở ngại do
sự không tương thích về tài nguyên như hệ thống lưu trữ, máy tính, mạng Globus Toolkit
đã gỡ bỏ được chướng ngại đó trong việc kết nối các tổ chức, cho phép người sử dụngtruy cập vào các tài nguyên từ xa một cách trong suốt, giống như họ đang truy cập vào tàinguyên cục bộ của mình, song cũng cũng cấp khả năng kiểm soát khi người dùng kháctruy cập tài nguyên của mình
GlobusToolkitđượcpháttriểnthôngquamộtchiếnlượcmãnguồnmởtươngtựnhưpháttriểnhệđiềuhànhLinux.Nhờvậy,sảnphẩmđượcquảngbárộngrãivàđượccácmọingườitrênkhắpthếgiớicùngpháttriển
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 27
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Dưới đừy là cỏc sơ đồ cỏc thành phần của Globus Toolkit 4:
Trang 23Hình 2.3 – Cỏc thành phần của Globus Toolkit 4
Chia theo phương thức vận hành, cấu trúc của bộ Globus Toolkit được chia làm 2 phần:
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 82
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
phần chính:
Trang 24 Execution Management: Quản lý thực thi công việc trên lưới.
động của lưới
Ngoài việc sử dụng các thành phần có sẵn được cung cấp trong Globus Toolkit, đồ án đãtriển khai thêm các chức năng khác phù hợp với đề tài LINDA
2.2.2 Thư viện lập trình lưới Java Cog Kit
2.2.2.1 Giới thiệuJava Cog Kit là bộ dụng cụ phỏt triển lưới, ánh xạ giữa công nghệ Java và Globus
Toolkit, cho phép các nhà phát triển xây dựng các ứng dụng lưới bằng ngôn ngữjava.Java Cog kit được lựa chọn để phỏt triển lưới bởi một số lý do sau đừy:
phần mềm
triển, do vậy nú tương thích với môi trường không đồng nhấtnhư lưới Ngoài ra nú cung cấp nhiều thư viện cho phép pháttriển các ứng dụng mạng, các kỹ thuật liên tác JASS, JINI,CORBA, IIOP…
2.2.2.2 Kiến trúc của Java Cog Kit
Dưới đây là kiến trúc của Java Cog Kit
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 28
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Trang 25Hình 2 4 - Kiến trúc của Java CoG kit
Grid Middleware & Fabric: Đây là tầng thấp nhất trong kiến trúc, chứa tất cả
các gói để giao tiếp với các dịch vụ và các tài nguyên Hiện tại Java Cog Kit cungcấp một số dịch vụ cơ bản sau đây:
Các thành phần giao diện lưới mức thấp (Low-Level Grid Interface
Components): ánh xạ tới các dịch vụ lưới hay sử dụng, được xây dựng bằng
công nghệ Java Bean và Enterprise Java Bean
Các thành phần tiện ích mức thấp (Low-Level Utility Components): cung cấp
các tiện ích mức thấp cho phép tăng hiệu quả trong việc liên kết các thành phầnGlobus Toolkit được cài đặt bằng ngôn ngữ C
Các thành phần giao diện mức thấp (Low-Level GUI Components): cung cấp
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 29
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
tập các thành phần giao diện mức thấp có khả năng tái sử dụng như: bộ soạn
thảo LDAP, RSL, trình duyệt LDAP,
Các thành phần giao diện và tiện ích mức ứng dụng (Application Level Utility
Trang 26& GUI components): là cầu nối giữa Java Cog với các ứng dụng thực tế.Với kiến trúctrên, Java Cog Kit cho phép
2 2 2 3 Lập trình với Java Cog Kit
Kiến trúc của Java Cog Kit cung cấp nền tảng ổn định cho phát triển các ứng dụng trênlưới Người sử dụng có thể dùng các lớp và phương thức không chỉ cho các thành phầnchức năng của lưới, mà còn có khả năng hiện thực húa các luồng công việc thông qua sự
mô tả bằng XML, từ dòng lệnh hay từ giao diện đồ họa Các lớp kiến trúc của Java CogKit cung cấp cho người sử dụng được tổ chức như sau:
Hình 2 5 –Cỏc lớp của Java Cog Kit
Java Cog Kit với tầng middleware của lười hay cỏc phần mềmphừn tỏn Java Cog Kit đó được phỏt triển cho GT2, GT4,
Condor.Khisửdụngcáclớptrừutrượng,haycácinterface,củaJavaCogKit,ngườisửdụngkhôngcầnphảilolắngvềnhữngthayđổicủatầngmiddlewaretrênlưới Các thư viện được tự động biên dịchlúc chạy, nên những lựa chọn cho phiên bản có thể được quyếtđịnh tại thời điểm chạy LINDA sử dụng Java Cog Kit đã đảmbảo được tính mở đối với những thay đổi của lưới trong tươnglai
Trang 27Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 31
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
với cỏc phiờn bản lưới Những lớp trừu tượng này bao gồmcác quá trình chuyển file, cách truy cập flie, đệ trình job vàchứng thực Các lớp này được lựa chọn để phù hợp với hầuhết, nhưng không phải tất cả người dùng trên lưới
tượng cơ bản, Java Cog Kit còn cung cấp nhiều lớp trừu tượngnâng cao để hỗ trợ cho cỏc mô hình lưới phức tạp
Hình 2 6 - Sự tương ứng giữa các gói với các lớp kiến trúc trong Java Cog
Kit Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 82
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Trang 282.3 Giới thiệu lưới PRAGMA
Hình 2 7 – Biểu tượng lưới PRAGMA
PRAGMA(The Pacific Rim Application and Grid Middleware Assembly) được thành lập
vào năm 2002 với mục đích duy trì sự cộng tác và nâng cao khả năng sử dụng tớnh toỏnlưới cho cỏc ứng dụng của cỏc trung từm tớnh toỏn thuộc khu vực chừu Á Thỏi BỡnhDương Hiện tại, có hơn 35 tổ chức tham gia lưới PRAGMA Trong PRAGMA, cỏc ứngdụng là trung từm cho việc tích hợp và cộng tác của những nền tảng phần cứng, phầnmềm để nâng cao chất lượng của ứng dụng
Vào thỏng 3 năm 2008, Trung từm tớnh toỏn hiệu năng cao, trường Đại học Bỏch Khoa
Hà Nội (HPCC) đã trở thành thành viên chính thức của tổ chức tình toán lưới quốc tế
PRAGMA Đây không những là sự kiện đỏnh dấu sự phỏt triển của Trung từm, sự ghinhận của giới chuyên môn quốc tế đối với Trung tâm, mà còn là cơ hội cho các ứng dụngđang phát triển tại trung tâm được triển khai trên những môi trường tính toán thực tế.Xừydựng tầng lưới dữ liệu của hệ thống LINDA trờn cỏc hệ thống tham gia lướiPRAGMA làmục đích của đề tài này
2.4 Lập trình sử dụng các dịch vụ của lưới bằng Java Cog Kit
Phần này giới thiệu các dịch vụ cơ bản của lưới, cách thức lập trình các dịch vụ này thôngqua bộ thư viện Java Cog Kit
2 4.1 Giao thức truyền file trờn lưới –GridFTP
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 32
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Trang 29Hình 2 8 - Giao thức FTP
cầu tới mỏy chủ FTP tại cổng 21, và duy trì liên kết này trongsuốt phiên làm việc Luồng điều khiển được dùng để gửi cáclệnh điều khiển luồng dữ liệu (data connection), định danhngười dùng và mật khẩu người dùng
công luồng điều khiển, luồng dữ liệu được khởi tạo từ mỏykhỏch (chế độ passive) hay từ mỏy chủ(chế độ active) Dữ liệutruyền có thể dưới dạng: ASCII (hay text, Image Code (haybinary), EBCDIC hay local mode (chế độ tựy chọn) Luồng dữliệu có thể được khởi tạo dưới các mode: Stream mode, Blockmode, Compressed mode
2.4.1.2 GridFTP
Giao thức GridFTP được thiết kế dựa trên FTP để giải quyết những giới hạn đó GridFTP
kế thừa và mở rộng một số khả năng mới:
xác thực, đảm bảo toàn vẹn, tin cậy cho dữ liệu là rất quantrọng GridFTP hỗ trợ cơ sở hạ tầng bảo mật lưới GSI và xácthực Kerberos, với cấp độ cài đặt do người dùng định nghĩa
cho các tổ chức phân tán, GridFTP cung cấp chức năng điềukhiển đối bởi tác thứ ba trong truyền dữ liệu Chức năng nàycho phép người dùng hoặc ứng dụng tại một miền có thể khởitạo, giám sát và điều khiển một tiến trình truyền dữ liệu giữanguồn và đích của quá trình truyền
song:đốivớiliênkếtmạngdiệnrộng,sửdụngsongsongnhiềuluồng
Trang 30Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 34
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Hình 2 9 - Truyền dữ liệu song song
Hình 2 10 - Truyền dữ liệu song song với đối tỏc thứ ba
xen giữa nhiều máy chủ, như trong vùng đệm đĩa mạng trong
hệ thống DPSS GridFTP cho phép khởi tạo truyền dữ liệuphân đoạn, sử dụng nhiều luồng TCP Truyền phân đoạn giúp
mở rộng băng thông hơn nhiều so với truyền song song
cập đến một phần của file thay vì truy cập toàn bộ Giao thứcFTP chuẩn chỉ hỗ trợ khả năng truyền phần còn lại của file bắtđầu từ địa chỉ lệch nào đó GridFTP hỗ trợ khả năng truyềnmột phần bất kỳ của file
Trang 31 Tự động thương lượng vùng đệm TCP:ápdụngthiếtlậptốiưuvùngđệmTCPcóthểlàmtăngđángkểhiệuquảtruyền.Tuynhiên,tựthiếtlậpkíchthướcvùngđệmnàyrấtkhókhăn,thườngkhôngđượcthựchiện.GridFTPhỗtrợcảthiếtlậpthủcôngvàtựđộngđàmphánvềkíchthướcvùngđệmTCP.
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 35
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
lại : Truyền dữ liệu tin cậy đóng vai trò quan trọng trong ứngdụng quản lý dữ liệu Cần có phương pháp phục hồi khi có lỗi.Chuẩn FTP định nghĩa khả năng bắt đầu lại pha truyền dữliệu, nhưng tính năng này không được cài đặt rộng rãi.GridFTP khai thác và mở rộng các đặc tính này, tạo nên mộtgiao thức kênh dữ liệu mới
2.4.1.3 Mô hình lập trình
Phần hướng dẫn lập trình sau giả sử rằng đã biết sẵn địa chỉ URL của các mỏychủGridFTP, đồng thời đảm bảo rằng tiến trình chủ trên những máy này luôn chạy Phầntiếp theo sử dụng Java Cog Kit để viết chương trình minh họa khả năng truyền đối tác thứ
ba của GridFTP trong môi trường lưới Trình tự thực hiện truyền dữ liệu như sau:
dụng có đủ thẩm quyền để thực hiện quá trình truyền
Xỏc định giấy ủy nhiệm
/ / Load credentials from proxy file
private void getCredentials() throws Exception {
/ / read from harddisk or get from MyProxy server
}
Khởi tạo đối tượng khỏch
//Khởi tạo GridFTPClient trờn mỏy nguồn
private void initSourceClient() throws Exception {
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 82
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Trang 32/ / init with source url, proxy, buffer size, tranfer mode
}
//Khởi tạo GridFTPClient trên máy đích
privatevoid initDestClient() throws Exception {
/ / init with des url, proxy, buffer size, tranfer mode
2.4.2 Đệ trình job sử dụng ngụn ngữ đặc tả tài nguyên - RSL
2.4.2.1 Ngôn ngữ đặc tả tài nguyên RSL
RSL là một ngôn ngữ được sử dụng nhằm xác định công việc sẽ chạy Mọi yêu cầu đệtrình công việc đều được mô tả bằng xâu RSL, nú bao gồm các thông tin như file thựcthi; các tham số của file này; các thông tin về sự định hướng lại của stdin, stdout, vàstderr… Về cơ bản, nú cung cấp một cách chuẩn để xác định tất cả các thông tin cần thiết
khi thực hiện một công việc, độc lập với môi trường được lựa chọn Sau đó job
manager sẽ chịu trách nhiệm phân tích các thông tin và khởi phát công việc một cách
thích hợp Cú pháp của RSL rất dễ hiểu Mỗi lệnh nằm trong một ngoặc đơn Các chúthích nằm trong ngoặc đơn với dấu sao dưới dạng (* chú thích *) Các thuộc tính thườngđược sử dụng khi đệ trình một công việc là:
dùng làm thư mục mặc định để chạy công việc được yêucầu Mặc định: thư mục làm việc hiện tại được thiết lập bởigatekeeper
xa Nếu giá trị là một GASS URL, file sẽ được truyền đếngass cache của máy đó trước khi thực hiện công việc và xúa
bỏ sau khi đã kết thúc Mặc định: không có
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 37
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
lệnh cho file thực thi Sử dụng dấu nháy kép “quotes” nếu
Trang 33có dấu cách (space) trong tham số Mặc định: NULL Chẳnghạn với (arguments=" a and b" ccc d) thì argv[1]=" a and b"argv[2]="ccc" argv[3]="d"
file thực thi trên máy ở xa Nếu giá trị là một GASS URL,file được truyền đến gass cache trước khi thực hiện côngviệc và xúa bỏ khi đẵ kết thúc Mặc định: / dev/ null
chuẩn của công việc Nếu giá trị là một GASS URL, đầu rachuẩn của công việc sẽ được tự động chuyển về máy yêucầu trong suốt quá trình thực hiện công việc Giá trị mặcđịnh: /dev/null
trên máy thực hiện Nếu giá trị là một GASS URL, lỗichuẩn của công việc được truyền một cách động về máyyõu cầu Mặc định: / dev/ null
chuyển đến máy được lựa chọ cùng file thực thi Mặc định:không có
xúa bỏ khi công việc kết thúc Mặc định: không có
2.4.2.2 GateKeeper và đệ trình job lờn lưới (directory=job submission)GateKeeper là dịch vụ trên mỗi máy có nhiệm vụ đảm bảo cơ chế an ninh trong lưới:
chứng thực và chứng quyền Nú nhận các yêu cầu từ các máy khách, thực hiện việcchứng thực hai bên với máy khách Mỗi khi có yêu cầu từ máy khách, dịch vụ này sẽchứng thực quyền và chứng quyền nú khởi tạo một job manager chạy dưới sự ủy quyền(credential) của người dùng đã chứng thực
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 38
Trang 34Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Hình 2 11 - GateKeeper
Một Job Manager được tạo ra bởi Gatekeeper dựa vào mỗi yêu cầu nhận được Job
manager xử lý các đặc tả công việc được gửi từ các client theo kết quả lập lịch Nú cũngcung cấp giao tiếp cho việc điều khiển phân bố tài nguyên Các chức năng chính của núlà:
trình cho các công việc
ra các tiến trình cho nú
từ client Ứng dụng có thể cần các khả năng này để cungcấp feedback cho người dùng hay giải phóng các nguồn tàinguyên Ví dụ như trong trường hợp một công việc của ứngdụng bị lỗi, các công việc khác phụ thuộc vào nú cần phảiđược huỷ bỏ trước khi làm lãng phí các tài nguyên có thểcần dùng cho các công việc khác
2.4.2.3 Mô hình lập trình
Mô tả chuỗi RSL cho job: Job được đệ trình nhờ vào phương thức request() của
lớpGramJob
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 39
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
Trang 35cỏc mỏy để thực hiện GassServer được tạo ra và được ghi nhớ những luồng input,
output của các job, sau đó thông tin này được bổ xung vào các chuỗi RSL Kết quả
làGassServer có khả năng thu nhận được kết quả sau khi kết thúc job.
2.4.3.2 Mô hình lập trình
GassServer được tạo ở các máy client, ghi nhớ thông tin của các server trong chuỗi RSL,
ta có thể thu được kết quả của các job trên máy client
Ghi nhớ thông tin của GassServer với chuỗi RSL:
Sinh viên Đào Hải Hưng – lớp Hệ thống thông tin – K50 40
Xừy dựng và quản lý tầng lưu trữ lưới của hệ thống lưu trữ và chia sẻ dử liệu LINDA
String gRSL = RSL +
+ "(stdout=x-gass-cache: //$(GLOBUS_GRAM_JOB_CONTACT)stdout test)"