- Tính quy mô lớn large-scale: một hệ thống lưới kết hợp nhiều dạng tài nguyên trên phạm vi cả thế giới cho nên một hệ thống lưới sẽ rất phức tạp vàkhó mà có thể biết được một hình thù c
Trang 1KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
MÔN HỌC: TÍNH TOÁN LƯỚI
BÁO CÁO SEMINAR
ĐỀ TÀIGRID MIDDLEWARE
Trang 2MỤC LỤC
Giới thiệu:
1.1 Môi trường lưới
Một số đặc điểm thường thấy trên hệ thống lưới như:
- Tính không đồng nhất (Heterogeneity): tài nguyên trên lưới là đa dạng, thuộc
nhiều loại khác nhau từ kiến trúc phần cứng (CPU, các loại thiết bị lưu trữ, thiết
bị truyền thông,…) đến phần mềm (hệ điều hành, các thư viện, công cụ), ngônngữ
- Tính quy mô lớn (large-scale): một hệ thống lưới kết hợp nhiều dạng tài
nguyên trên phạm vi cả thế giới cho nên một hệ thống lưới sẽ rất phức tạp vàkhó mà có thể biết được một hình thù cụ thể của nó tại một thời điểm
- Một hệ thống lưới phải có tính thích nghi, đáp ứng cao và có khả năng mở rộng:
hệ thống lưới phát triển trên môi trường không đồng nhất đương nhiên phải cókhả năng xử lý ngoại lệ, chịu đựng lỗi tốt, có thể bắt tay với một số hệ thốngkhác để thực hiện tác vụ nhưng vẫn đảm bảo vấn đề an toàn thông tin Bên cạnh
đó, hệ thống lưới phải có khả năng mở rộng, hệ thống phải đảm bảo là khi giatăng hay giảm đi các phần tử trên lưới (tăng giảm quy mô) thì hệ thống khôngcần phải điều chỉnh lớn lao làm ảnh hưởng đến hoạt động của cả hệ thống như
là cả hệ thống phải sụp đổ tạm thời khi thêm, bớt một đơn vị lưới nào đó sau đómới hoạt động trở lại
Từ đó, cho thấy tính cấp thiết của một thành phần của hệ thống lưới có thể đáp ứngđược các yêu cầu, một nhóm chương trình có chức năng, nhiệm vụ làm trung gian
để tương tác giữa các ứng dụng lưới từ phía người dùng và môi trường lưới bên
dưới, gọi là middleware
Trang 3Hình 1 Người dùng chỉ cần cắm và sử dụng dịch vụ mà không cần quan tâm đến
phía sau đó là gì
1.2 Định nghĩa Grid Middleware:
- Grid middleware là gói phần mềm nằm giữa lớp ứng dụng và hệ điều hành.
- Grid middleware quản lý sercurity, truy cập và trao đổi thông tin:
• Cung cấp khả năng kết nối số lượng lớn user
• Che dấu các tài nguyên chia sẽ rời rạc như máy tính, trung tâm dữliệu,các thiết bị khác…
• Cung cấp các công cụ để quản lý,khởi tạo các liên kết trao đổi thông tin
1.3 Nhiêm vụ và lợi ích của grid middleware:
Có 3 mục đích:
• Xây dựng các giao tiếp, và các giao thức có tính mục đích chung, tính mở
và tính chuẩn Bởi vì hệ thống lưới được xây dưng trên những giao tiếp và
giao thức với rất nhiều mục đích khác nhau Những giao tiếp và giao thứcnày điều chỉ ra được các kết quả cơ bản, mang tính nền tảng như về việc xácnhận, xác thực, khám phá tài nguyên, truy xuất tài nguyên Do đó, việc xâydựng các giao tiếp, giao thức chuẩn và mở là rất quan trọng, nếu không,chúng ta chỉ xây dựng được những ứng dụng mang tính đặc thù mà thôi
• Định nghĩa các giao thức chuẩn: Nó định nghĩa nội dung và chuỗi các sự
kiện trao đổi thông điệp sử dụng các thao tác yêu cầu từ xa Điều này rất
quan trọng và thiết để thực hiện tính interoperability (nghĩa là khả năng mà
2 thực thể khác nhau có thể làm việc với nhau, và được thực hiện bởi cácgiao thức thông thường) mà hệ thống lưới phụ thuộc vào
Trang 4• Cung cấp các API chuẩn: đó là các giao diện lập trình ứng dụng chuẩn, định
nghĩa các giao tiếp chuẩn để viết mã thư viện, và cấu trúc các thành phầncủa Grid bằng cách cho phép các thành phần mã được sử dụng lại
Khi có grid middleware thì giúp:
• Tránh cho các nhà phát triển ứng dụng không cần lập trình các mức thấp,
tránh error-prone flatform như việc lập trình mạng mức socket.
• Giảm chi phí thời gian phát triển phần mềm khi tập trung phát triển chuyên
môn trước rồi mới phát triển ứng dụng bằng cách tái sử dụng framework
chứ không cần xây dựng lại từ đầu
• Cung cấp các trừu tượng hướng mạng ở mức cao gần với yêu cầu ứng dụngcho việc phát triển hệ thống rời rạc
• Cung cấp nhiều dịch vụ phát triển, như đăng nhập và bảo mật giúp cho việchoạt động hiệu quả trong môi trường mạng
1.4 Kiến trúc Grid Middleware :
Hình 2 Các thành phần của middleware nằm giữa Application và Fabric
Grid Middleware nằm giữa hai lớp:
• Lớp ứng dụng (application): chứa các ứng dụng của người dùng, như
việc mô phỏng hay các vấn đề đòi hỏi sức mạnh tính toán, truy cập dữliệu từ xa, và kết nối với các thiết bị khoa học Lớp ứng dụng cung cấpcác dich vụ ứng dụng dạng web cho phép người dùng cung cấp thông số,
và thu thập các kết quả cho những công việc trên những tài nguyên từ xathông qua web
Trang 5• Lớp kết cấu (fabric): bao gồm các giao thức, các giao diện ứng dụng và
các toolkit cho phép phát triển các ứng dụng cùng những thành phần chophép truy cập, điều khiển các tài nguyên như máy tính, tài nguyên lưutrữ, các thiết bị khoa học…Tài nguyên tính toán có rất nhiều cấu trúcnhư clusters, siêu máy tính, server, PC chạy trên nhiều hệ điều hành khácnhau (UNIX, Windows…) Các thiết bị khoa hoc như kính hiểm vi, cảmbiến cung cấp dữ liệu thời gian thực được truyền trực tiếp qua bộ phậntính toán hay được lưu trữ trong cơ sở dữ liệu
Grid middleware gồm 2 lớp chính:
• Lớp các dịch vụ tập hợp – Collective services: Có khả năng quản lý 1 tập
các tài nguyên trong khi lớp tài nguyên chỉ tập trung vào việc tương tácgiữa các tài nguyên đơn lẻ Và nó dựa trên lớp kết nối và lớp tài nguyên
để hiện thực rất nhiều hành vi chia sẽ mà không cần phải thay thế nhữngyêu cầu mới ứng với mỗi tài nguyên được chia sẽ Chẳng hạn:
o Directory service cho phép các thành viên tham gia vào tổ chức ảo có
thể khám phá ra tài nguyên hay các thuộc tính của tài nguyên Nó chophép user truy vấn về tài nguyên bằng tên hoặc các thuộc tính nhưkiểu, sự sẵn sàng, hay tải
o Coallocation-allocation, scheduling, and brokering services cho
phép các thành viên của tổ chức ảo yêu cầu việc định vị cho 1 haynhiều tài nguyên và phân bổ các task cho các tài nguyên thích hợp
o Monitoring and diagnotics services hỗ trợ việc theo dõi các tài
nguyên của tổ chức ảo về lỗi, việc tấn công hay việc quá tải
o Data replication services hỗ trợ quản lý việc lưu trữ tài nguyên để tối
đa hiệu quả truy xuất như thời gian đáp ứng, khả năng tin cậy, chiphí,…
o Grid-enabled programming systems cho phép các mô hình lập trình thân thiện, chẳng hạn như MPI (Message-passing Interfaces),…
o Workload management systems and collaboration frameworks
o Software discovery service
o Community authorization servers
o Community accounting and payment services
o Collaboratory services
• Lớp các giao thức kết nối tài nguyên – Resource and Connectivity Protocols: Đây là lớp có chức năng giao tiếp một cách dễ dàng và an toàn.
Trang 6Lớp kết nối định nghĩa giao thức giao tiếp (communication) và giao thức xác thực (authentication) Giao thức giao tiếp cho phép các thông điệp có thể được trao đổi với nhau giữa các tài nguyên của lớp Fabric Giao thức
xác thực xây dựng trên các dịch vụ giao tiếp bằng cách cung cấp cơ chế bảomật mã hóa cho việc xác định user và tài nguyên Các giải pháp xác thực
cho môi trường tổ chức ảo (VO – Virtual Organization) có thể có 4 đặc tính
sau:
o Single sign-on: User có thể được xác thực chỉ 1 lần bằng cách đăng
nhập vào hệ thống và có thể truy xuất vào nhiều tài nguyên lưới
o Việc ủy quyền: User có khả năng ủy quyền cho 1 chương trình khác
để thực thi giống như những hành vi của user khi user đã được xácthực Đến lượt chương trình có thể ủy quyền cho nhưng chương trìnhkhác 1 cách tùy chọn
o Việc tích hợp với nhiều giải pháp bảo mật cục bộ: Đó là việc mỗi tổchức, mỗi tài nguyên đã có nhưng giải pháp bảo mật riêng cho mình
Do đó, các giải pháp bảo mật của hệ thống lưới sẽ tận dụng các giảipháp bảo mật cục bộ có sẵn này mà không cần phải thay thế 1 giảipháp bảo mật mới, và chỉ cần cho phép ánh xạ vào môi trường cụcbộ
o Mối quan hệ đáng tin cậy dựa trên user: Để user có khả năng truyxuất vào tài nguyên từ nhiều nhà cung cấp khác nhau, thì hệ thốngbảo mật không cần phải yêu cầu các nhà cung cấp tài nguyên phảiliên lạc với nhau để cấu hình cho môi trường mạng Chẳng hạn, nếuuser có quyền truy xuất vào tài nguyên của tổ chức A và B, thì user
có thể truy xuất vào cả 2 tài nguyên của tổ chức A và B với nhau màkhông cần sự liên lạc giữa những nhà quản trị bảo mật của tổ chức A
và B
Cũng trong lớp này, các tài nguyên đơn lẻ có khả năng chia sẻ Nó địnhnghĩa các giao thức về sự thương lượng an toàn, khởi tạo, theo dõi, điềukhiển, tài khoản và sự trả chi phí cho việc chia sẽ các thao tác trên những tàinguyên đơn lẻ Lớp tài nguyên sẽ được hiện thực bởi các giao thức để truyxuất và điều khiển các tài nguyên cục bộ, bao gồm 2 lớp chính:
o Giao thức thông tin (Information protocol) được sử dụng để rút ra
thông tin về cấu trúc và trạng thái của tài nguyên chẳng hạn như cấuhình của tài nguyên, tải hiện thời, hay chính sách sử dụng,…
o Giao thức quản lý (Management protocol) được sử dụng để thỏa
thuận việc truy xuất vào tài nguyên chia sẽ, chẳng hạn về yêu cầu tàinguyên (bao gồm việc đặt chỗ và chất lượng dịch vụ) và các thao tácthực hiện như khởi tạo, truy xuất tài nguyên,…
2 Một số middleware
Trang 7dễ dàng truy xuất tới các tài nguyên ở xa ngay trên máy cục bộ củamình.
Globus được phát triển bởi tổ chức Globus Alliance, phiên bản 1.0 rađời vào năm 1998, phiên bản gần đây nhất là phiên bản 5.0 ra đời vàotháng 1 năm 2010
2.1.2 Kiến trúc
Cấu trúc của Globus gồm 3 nhóm dịch vụ chính, các dịch vụ này
được truy xuất thông qua một tầng bảo mật (security layer) Ba nhóm dịch vụ đó là: dịch vụ quản lý tài nguyên (Resource Management), dịch
vụ quản lý thông tin (Information Service), dịch vụ quản lý dữ liệu (Data Management) Globus đóng gói các dịch vụ này lại với nhau,
chúng có thể được sử dụng một cách độc lập hoặc kết hợp chung vớinhau để phát triển ứng dụng
Hình 3: Kiến trúc của Globus Toolkit
Trang 8Tầng local-service chứa các dịch vụ của hệ điều hành, dịch vụ mạng
như là TCP/IP, … Tầng chính chứa các công cụ để xây dựng các cơ chế
bảo mật, gửi các công việc để thực thi (job submission), quản lý tài
nguyên, quản lý thông tin tài nguyên Tầng cao hơn cung cấp các dịch vụ
và công cụ để tương tác với các dịch vụ bên dưới và hiện thực các chứcnăng còn thiếu
2.1.2.1 Tầng bảo mật GSI
Tầng này cung cấp các phương thức xác thực của người dùng trongmôi trường lưới và cơ chế bảo một trong trao đổi dữ liệu Nó dựa trênnền tảng SSL, PKI và chuẩn X.509 Tầng GSI cung cấp các dịch vụ,giao thức và thư viện để thực thi các vấn đề bảo mật trong môi trườnglưới như:
- Xác thực một lần (single sign-on) trong việc sử dụng các dịch
vụ của hệ thống lưới thông qua chứng nhận (certificate) của
người dùng
- Xác thực việc sử dụng tài nguyên thông qua certificate của host
- Mã hóa dữ liệu
- Ủy quyền Người dùng muốn truy cập vào các tài nguyên của hệ thống lưới
cần phải có một certificate subject ánh xạ với một tài khoản trên máy ở
xa được cung cấp bởi người quản trị của hệ thống Chứng thực này cầnphải được ký bởi một tổ chức (CA) mà hệ thống tin tưởng Hầu hết cácdịch vụ đòi hỏi người dùng phải được xác thực trước khi sử dụng cácchức năng của nó Điều này đảm bảo việc chống thoái thác trách nhiệm
và bảo mật dữ liệu cho cả người sử dụng lẫn hệ thống
2.1.2.2 Quản lý tài nguyên (resource management)
Gói này gồm các thành phần chính sau:
- Globus resource allocation manager (GRAM): GRAM cung
cấp khả năng thực thi các công việc trên các máy ở xa, và trả kếtquả thực hiện lại cho trình khách Khi người dùng gửi một công
việc lên gatekeeper deamon trên máy ở xa, thì gatekeeper deamon sẽ kiểm tra xem người dùng này đã được xác thực hay
chưa Nếu người dùng này đã được xác thực thì nó sẽ tạo mộtjob manager để quản lý và điều khiển việc thực thi công việc
này Tùy thuộc vào biểu thời gian (scheduler) của hệ thống mà
job manager có được tao ra ngay lập tức hay không Có nhiều
Trang 9loại biểu thời gian như: Portable batch system (PBS), Load sharing facility (LSF), và Load Leveler Trong GRAM chứa Globus resource specification language (RSL) dùng để chứa
các thông tin về tài nguyên mà một công việc cần để thực thinhư số lượng CPU, kích thước tối thiểu của bộ nhớ,…
- Globus access to secondary storage (GASS): GASS là cơ chế
truy cập tới các tập tin trong hệ thống, nó cho phép ứng dụng cóthể đọc, ghi các tập tin trên hệ thống từ xa GASS sử dụng GSI
để đảm bảo đúng quyền hạn khi đọc ghi dữ liệu trên hệ thống
2.1.2.3 Dịch vụ cung cấp thông tin của tài nguyên (Information
services)Gói này cung cấp thuộc tính của các nút (node) tham gia vào hệ
thống lưới Monitoring and dscovery service (MDS) cung cấp các hổ
trợ để thông báo và truy vấn các thông tin tài nguyên của hệ thống
MDS gồm ba tầng: tầng dưới cùng là Information providers (IPs), nó
chịu trách nhiệm tập hợp dữ liệu về thông tin, trạng thái của tài
nguyên; tầng thứ hai là Grid resource information service (GRIS), nó
chịu trách nhiệm trả lời các truy vấn về thông tin của tài nguyên và cập
nhật vào cache; tầng trên cùng là Grid information index service (GIIS), nó làm đề mục (index) cho thông tin tài nguyên được cung cấp
bởi GRIS và GIIS khác mà đăng ký với nó
2.1.2.4 Quản lý dữ liệu (Data management)
Gói này cung cấp các tiện ích và thư viện để truyền tải, lưu trữ vàquản lý các tập dữ liệu lớn Nó gồm 2 thành phần chính:
- GridFTP: Đây là giao thức mở rộng của giao thức FTP nhằm
đảm bảo dữ liệu được chuyển đổi trong môi trường lưới đượcbảo mật, đáng tin cậy và hiệu quả Ngoài ra, nó được chạy trêntầng GSI nhằm đảm bảo quá trình truyền nhận được xác thựcđúng người, đúng quyền
- Replica location and management: thành phần này hỗ trợ một
file có thể được lưu trữ nhiều nơi trong môi trường lưới
Replica location service (RLS) chịu trách nhiệm tạo và xóa các
bản sao (replica)
2.2 UNICORE
2.2.1. Giới thiệu
Trang 10UNICORE cung cấp một môi trường lưới bao gồn client và server.
UNICORE hỗ trợ việc truy cập tới các tài nguyên tính toán và dữ liệutrong môi trường lưới một cách dễ dàng, liền mạch và an toàn
2.2.2. Kiến trúc
Hình 4: Kiến trúc của UNICORE
UNICORE được thiết kế theo kiến trúc ba tầng (Hình 4) Theo cáchnhìn từ phía người dùng đầu cuối, UNICORE là hệ thống khách-chủ đượcxây dựng theo mô hình ba tầng gồm:
- Tầng người dùng: người dùng chạy UNICORE client trên máytrạm hoặc máy cá nhân
- Tầng máy chủ: Mỗi trung tâm máy tính tham gia định nghĩa mộthoặc một vài Usite (UNICORE Grid site) để trình khách có thểkết nối vào
- Tầng hệ thống: Usite cung cấp cơ chế truy cập đến các tàinguyên tính toán và tài nguyên dữ liệu Chúng được tổ chứcthành một hoặc một vài Vsite (Virtual site) Vsite có thể xemnhư là một hệ thống thực thi và lưu trữ tại các máy trung tâm
UNICORE client bao gồm hai thành phần: JPA (job preparation agent) và JMC (job monitor component) JPA dùng để khởi tạo các công
việc, JMC điều khiển việc nhận kết quả thực thi công việc Các công việc,trạng thái của một yêu cầu và kết quả thực thi được mô tả trong AJO
(abstract job object) Trình khách kết nối với UNICORE Usite gateway và
gửi công việc thông qua các AJO
Trang 11UNICORE gateway là lối vào duy nhất cho tất cả các kết nối với Usite.
Nó cung cấp một địa chỉ và một cổng để người dùng có thể kết nối vàobằng cách sử dụng giao thức SSL
UNICORE Vsite gồm hai thành phần: NJS (network job supervisor) và TSI (target system interface) NJS quản lý tất cả các công việc được gửi
vào hệ thống UNICORE, thực hiện việc xác thực người dùng bằng cáchtìm kiếm một chứng thực hợp lệ của người dùng trong cơ sở dữ liệu của
nó UUDB TSI nhận các công việc từ NJS và đưa chúng vào hệ thống đểthực thi
2.2.3. Tổng quan về quá trình thực hiện một công việc trong
UNICORE middleware
Trình khách UNICORE tạo, thao tác, quản lý các công việc, đồng bộcác công việc, di chuyển dữ liệu giữa các hệ thống, các site Trình kháchtạo một AJO để gửi công việc về cho trình chủ Trình chủ UNICORE sẽthực thi các công việc sau:
- Chuyển các AJO thành các action phù hợp với hệ thống
- Đồng bộ hóa các action với nhau.
- Chuyển các công việc và dữ liệu giữa các máy trạm, các hệthống, và các site với nhau
- Quản lý trạng thái
Một đơn vị thực thi của UNICORE là một công việc NJS sẽ thực thicác công việc do người dùng gửi vào hệ thống Một công việc có thể cómột hoặc nhiều công việc nhỏ Các công việc nhỏ cũng là một công việc
và được xem như là một tác vụ đơn giản
Khi NJS thực thi một công việc, nó sẽ tạo một thư mục trên hệ thống
cho công việc này Thư mục này được xem như là một Uspace của công
việc Tất cả các tập tin sử dụng trong quá trình thực thi công việc sẽ được
lưu trữ trong Uspace của công việc Tất cả các tác vụ thực thi trong quá
trình thực thi một công việc đều không được phép truy cập trực tiếp vào
các tập tin của hệ thống (Xspace) Thay vào đó, khi một tác vụ nào đó muốn sử dụng một tập tin của hệ thống , nó sẽ chép tập tin đó vào Uspace,
lúc nào tất cả các thao tác trên tập tin sẽ được thực hiện trên tập tin được
lưu trữ trong Uspace Khi AJO hoàn thành việc thực thi thì Uspace của nó
sẽ được xóa đi
2.3 gLite (gee-lite):