TestGrid ñược xây dựng trên nền tảng hệ ñiều hành Linux và bộ công cụ
Globus Toolkit phiên bản 4.2.1 [28]. Kiến trúc chung của toàn bộ hệ thống như sau.
Hình 4. 1. Kiến trúc TestGrid
Sau ñây trình bày vai trò và nhiệm vụ của từng môñun trong hệ thống cũng như tương tác giữa chúng.
Dịch vụ an ninh
Trong một môi trường phân tán rộng lớn và phức tạp như môi trường lưới, vấn
ñề an ninh là vấn ñề cần ñược ñặt lên hàng ñầu. Dịch vụ an ninh trong TestGrid
ñảm bảo an ninh cho toàn bộ hệ thống, cung cấp các dịch vụ cơ bản như chứng thực người dùng, ñăng nhập vào môi trường lưới, cung cấp các giấy chứng nhận và các giấy ủy quyền. Người dùng muốn sử dụng các dịch vụ do TestGrid cung cấp nhất thiết phải vượt qua ñược tầng an ninh. Dịch vụ an ninh ñược triển khai theo mô hình
ña cấp và phân tán bao gồm phần phía Portal và phía máy cung cấp dịch vụ.
Hệ ñiều hành Linux
Java Framework Globus Toolkit 4.2.1
DV Thông tin Dịch vụ HPC Grid FTP Gram
Agent Bộ lập lịch TestGrid Portal
Bảo mật
99
Dịch vụ thông tin
Dịch vụ thông tin là một thành phần quan trọng, cung cấp ñầy ñủ thông tin về
các tài nguyên và dịch vụ trong hệ thống ñể giúp các bộ lập lịch và phân phối tài nguyên có thể hoạt ñộng hiệu quả. Trong môi trường lưới phức tạp và rộng lớn việc có ñược ñầy ñủ các thông tin chính xác về tình trạng hiện tại của từng tài nguyên là rất khó, do có quá nhiều yếu tố bất ñịnh ví dụ như: ñường truyền mạng, chính sách cung cấp tài nguyên của người sở hữu,... Do vậy, ñây cũng là một yếu tố làm hạn chế hiệu năng của các bộ quản lý tài nguyên tập trung. Dịch vụ thông tin cung cấp các thông tin về tài nguyên như: loại tài nguyên, tải hiệu dụng, dung lượng tài nguyên còn trống. Ngoài ra, dịch vụ thông tin còn cung cấp thông tin về các loại dịch vụ ñược cài ñặt trong hệ thống. Các thông tin này là hết sức cần thiết cho các bộ lập lịch và môi giới tài nguyên tìm ñúng dịch vụ tính toán mà người dùng yêu cầu.
Agent
Hệ thống Agent ñược xây dựng trong TestGrid là hệ thống Multi-Agent có vai trò gắn kết các thành phần trong lưới. Bản thân các dịch vụ trong TestGrid cũng ñều
ñược thiết kế theo hướng kết hợp giữa dịch vụ lưới và Agent. Đây là ñiểm nhấn khá quan trọng về mặt công nghệ của TestGrid, vì hiện nay trên thế giới việc nghiên cứu
ứng dụng Agent vào lưới cũng mới chỉ ñang ở trong giai ñoạn khởi ñầu và việc tích hợp Agent vào lưới là khá khó khăn. Việc thiết kế các dịch vụ lai Agent cho phép tạo ra các dịch vụ rất linh hoạt gọn nhẹ, kết hợp ñược các ưu ñiểm của cả hai mô hình lập trình là mô hình Agent và mô hình dịch vụ lưới [58].
Trong TestGrid, hệ thống Agent ñược sử dụng ñể tập hợp thông tin tài nguyên trong môi trường lưới làm ñầu vào cho bộ lập lịch và môi giới tài nguyên. Ngoài ra, một ứng dụng rất quan trọng khác của Agent là quản lý từng tài nguyên và dịch vụ ñơn lẻ. Từng tài nguyên và dịch vụ sẽ có một Agent ñại diện và Agent này sẽ chịu trách nhiệm thay mặt người sở hữu tài nguyên ñó ñịnh ra các chính sách sử dụng,
100
thương lượng với agent người dùng. Agent quản lý tài nguyên cũng chịu trách nhiệm thực hiện một số tính năng nâng cao khác của môi trường lưới như tính năng
ñặt trước tài nguyên.
Các dịch vụ tính toán hiệu năng cao
Một trong những ưu ñiểm nổi bật của môi trường lưới là cho phép liên kết nhiều nguồn tài nguyên phân tán ñể tạo ra sức mạnh tính toán lớn hơn. Các công nghệ tính toán hiệu năng cao (HPC) ñã ñược phát triển từ lâu và có rất nhiều ứng dụng. Hiện nay, các trung tâm tính toán hiệu năng cao là các nguồn tài nguyên chính của các lưới lớn trên thế giới.
Dịch vụ tính toán hiệu năng cao trong TestGrid cho phép người dùng triệu gọi và sử dụng từ xa các tiện ích của trung tâm tính toán hiệu năng cao trong ñó dịch vụ
cơ bản nhất là dịch vụ chạy ứng dụng từ xa. Người dùng chỉ việc viết sẵn ứng dụng theo chuẩn MPI sau ñó ñưa lên Portal của TestGrid, dịch vụ tính toán trên cụm máy tính sẽ chịu trách nhiệm ñiều khiển thực thi ứng dụng này và trả lại kết quảñã xử lý cho người dùng.
GRAM
GRAM (Grid Resource Allocation and Management) là thành phần ñệ trình công việc của Globus Toolkit. Nó là một dịch vụ lưới cung cấp khả năng thực hiện và quản lý trạng thái công việc từ xa. Khi khách hàng ñệ trình công việc, yêu cầu ñó
ñược gửi tới bằng thông ñiệp SOAP (Simple Object Access Protocol) và ñược xử lý
bởi thành phần WS GRAM trên máy ñó. WS GRAM có khả năng chuyển các yêu
cầu ñó thành dạng mà các bộ lập lịch ñịa phương hiểu ñược và yêu cầu các bộ lập lịch ñịa phương thực hiện.
Dịch vụ GRAM cung cấp các thông tin sau ñây:
- Thông tin hàng ñợi.
101
- Thông tin bộñếm công việc.
- Thông tin về trạng thái công việc.
- Các thông tin thống kê bộ nhớ.
Dịch vụ GridFTP
GridFTP là một dịch vụ truyền tệp mức thấp trong môi trường lưới. GridFTP phát triển từ giao thức FTP vì FTP là giao thức truyền dữ liệu ñược sử dụng nhiều nhất trên Internet và là ứng cử viên sáng giá ñáp ứng các yêu cầu của lưới.
4.1.2 Mô tả chức năng bộ lập lịch
Vị trí và vai trò
Xét từ phía ứng dụng, bộ lập lịch là một trong những thành phần trung tâm của TestGrid, nó chịu trách nhiệm chính cho sự hoạt ñộng trơn tru của toàn bộ hệ thống. Chức năng của bộ lập lịch bao gồm:
- Khám phá tài nguyên.
- Chọn tập tài nguyên phù hợp ñể thực hiện yêu cầu của người dùng theo những tiêu chí tối ưu mà người dùng ñặt ra.
Có thể gọi bộ lập lịch này là bộ lập lịch ở mức người dùng hay là bộ lập lịch ở
mức ứng dụng. Đặc ñiểm của các bộ lập lịch dạng này là tuy không mang tính tổng quát và phải ñược thiết kế cụ thể cho từng kiểu ứng dụng nhưng ñó cũng chính là một ưu thế của chúng do hiểu rõ và ñược thiết kế chuyên biệt cho từng ứng dụng nên chúng có ñiều kiện tối ưu hóa cho từng loại ứng dụng cụ thể. Đặc ñiểm này sẽ ñược bàn kỹ hơn ở phần sau khi tích hợp các giải thuật luận án ñề xuất vào bộ lập lịch này.
102
Tương tác với các thành phần khác trong hệ thống
Là thành phần giữ vị trí trung tâm, các bộ lập lịch và môi giới tài nguyên có các mối liên hệ với hầu hết các thành phần khác của TestGrid một cách trực tiếp hay gián tiếp. Phần này sẽ trình bày về một số mối tương tác ñó.
a) Dịch vụ thông tin
Để cho các bộ lập lịch hoạt ñộng hiệu quả, yêu cầu ñầu tiên là phải có ñầy ñủ
thông tin về môi trường lưới. Yêu cầu này cũng ñúng cho bất kỳ cơ chế quản lý tài nguyên nào dù là tập trung hay phân tán. Tuy nhiên, nhưñã ñề cập ở các phần trên, do tính chất rộng lớn và phức tạp của môi trường lưới, việc có ñầy ñủ các thông tin một cách kịp thời là rất khó khăn do có quá nhiều yếu tố bất cập nhưñường truyền mạng, lỗi tài nguyên. Do vậy trong phạm vi của mình, các dịch vụ thông tin sẽ cung cấp một cách ñầy ñủ nhất các thông tin về tài nguyên và dịch vụ trong phạm vi quản lý của chúng ñể làm ñầu vào cho các bộ lập lịch. Về phía các bộ lập lịch và môi giới tài nguyên cũng ñược thiết kế ñể có thể hoạt ñộng trong môi trường thiếu thông tin và không chính xác.
Các dịch vụ thông tin trong TestGrid ñược triển khai trên từng tài nguyên nhằm cung cấp các thông tin về chính tài nguyên ñó cũng như các dịch vụ ñược triển khai trên nó. Các thông tin này có thể là thông tin tĩnh như kiểu loại, kiến trúc tài nguyên (máy kiến trúc nào, hệ ñiều hành gì), kiểu loại dịch vụ cung cấp (dịch vụ
tính toán hay lưu trữ, cách thức sử dụng, giá cả, chất lượng dịch vụ...) hoặc có thể là các thông tin ñộng như tải CPU, dung lượng bộ nhớ trống, các tham số về chất lượng phục vụ hiện thời của dịch vụ như số lượng người dùng, tốc ñộ xử lý, ...
Việc thu thập các thông tin trên toàn bộ các tài nguyên sẽ do một hệña Agent
ñảm nhận. Trong TestGrid, bộ lập lịch và môi giới tài nguyên không tương tác trực tiếp với các dịch vụ thông tin mà thông qua hệ Multi-Agent này ñể lấy thông tin.
103
b) Hệ thống Multi-Agent
Hệ thống Multi-Agent trong TestGrid chịu trách nhiệm thu thập các thông tin tài nguyên trong toàn bộ hệ thống lưới và tập trung lại về một kho lưu trữ chung. Các thông tin này sẽ ñược Agent quản lý và cung cấp cho bộ lập lịch theo yêu cầu. Tùy theo ñặc ñiểm riêng của mình mà mỗi bộ lập lịch và môi giới tài nguyên trong lưới sẽ chỉ quan tâm ñến một số kiểu loại tài nguyên và dịch vụ cụ thể. Ngoài ra, hệ
thống Multi-Agent còn phải có khả năng cập nhật thông tin và thông báo kịp thời cho các bộ lập lịch và môi giới tài nguyên về tình trạng hiện thời của lưới ñể có thể ñưa ra các xử lý kịp thời và hiệu quả. Ví dụ, có thêm tài nguyên mới xuất hiện trong lưới phù hợp với sự quan tâm của một bộ môi giới nào ñó.
Có thể kể ra một số Agent tiêu biểu trong hệ thống Multi-Agent này như: -System Agent: Cung cấp các thông tin về tài nguyên. Các dịch vụ do agent
này cung cấp có thểñược dùng bổ sung cho dịch vụ thông tin tài nguyên lưới. -Monitor Agent: cung cấp các thông tin về các dịch vụ khai phá dữ liệu hiện
ñang chạy trên tài nguyên. Các thông tin này rất quan trọng trong việc ñảm bảo chất lượng dịch vụ của tài nguyên. Ví dụ, có tối ña bao nhiêu thể hiện của dịch vụñược phép chạy cùng lúc.
c) Dịch vụ bảo mật
Để bộ lập lịch hoạt ñộng ñược, nó cần thiết phải có một giấy uỷ quyền hợp lệ
và có ñủ thời gian hiệu lực. Trong mỗi phiên làm việc của người dùng trên Portal người dùng phải xin một giấy uỷ quyền từ dịch vụ quản lý giấy chứng nhận ñược cung cấp bởi TestGrid. Giấy chứng nhận cùng các thông tin khác về người dùng sẽ ñược chuyển cho bộ lập lịch ñể tương tác và sử dụng các dịch vụ lưới khác. Các thông tin về người dùng còn ñược sử dụng ñể lưu và các cơ sở dữ liệu về lịch sử sử
104
4.1.3 Thiết kế bộ lập lịch
Trong phần này, luận án sẽ bàn ñến các chi tiết kỹ thuật liên quan ñến việc thiết kế bộ lập lịch. Các chi tiết này có sự liên hệ chặt chẽ với bộ công cụ Globus Toolkit, hệ thống Agent JADE và ngôn ngữ Java ñược sử dụng ñể xây dựng TestGrid [2,4,35,60]. Tuy nhiên, các ý tưởng chủñạo trong thiết kế hoàn toàn có thể áp dụng ñược cho các bộ công cụ và các ngôn ngữ khác.
Các yêu cầu ñối với bộ lập lịch
Trong phần này, luận án sẽ ñặc tả các chức năng ñối với bộ lập lịch. Nhìn từ
phía người sử dụng, bộ lập lịch phải có các chức năng chính sau:
Hình 4. 2. Trường hợp sử dụng của bộ lập lịch
- Tiếp nhận các yêu cầu từ người sử dụng: tập công việc, các ñặc tả về
chi phí và thời gian thực hiện, các yêu cầu về tối ưu hóa quá trình thực hiện như giảm thiểu thời gian, chi phí thực hiện...
- Xem chi tiết các thông tin về quá trình thực hiện công việc: tình trạng hiện thời của các công việc và các tài nguyên ñang ñược sử dụng, thông tin về thời gian thực hiện và chi phí. Xem tình trạng công việc Thêm/bớt công việc Hủy bỏứng dụng Nhận yêu cầu Use Use Use Use User
105
- Ghi lại chi tiết các thông tin về quá trình thực hiện ứng dụng vào cơ
sở dữ liệu ñể làm cơ sở thanh toán cho người dùng sau này. - Thêm bớt công việc, hủy bỏ việc thực hiện ứng dụng...
Bộ lập lịch phải ñược thiết kế ñểñảm bảo hoạt ñộng tin cậy và hiệu quả trong môi trường lưới, trong ñó yếu tố tin cậy phải ñược ñặt lên hàng ñầu. Do ñó trong bộ
lập lịch phải có tích hợp sẵn các chức năng chống chịu lỗi và lập lịch lại khi cần thiết.
Thiết kế bộ lập lịch
Bộ lập lịch cho TestGrid ñược thiết kế phù hợp với toàn bộ tổng thể của kiến trúc lưới tức là cũng ñược thiết kế dưới dạng một dịch vụ lưới. Dịch vụ này ñược triển khai theo mô hình xưởng chế tác. Mỗi người dùng khi sử dụng ứng dụng sẽ ñược khởi tạo một bộ lập lịch mới thay mặt người dùng ñiều khiển toàn bộ quá trình thực hiện ứng dụng. Các bộ lập lịch này hoạt ñộng tương ñối ñộc lập với nhau và tự
do trong việc cạnh tranh sử dụng tài nguyên.
Để cho phép người dùng theo dõi ñược theo thời gian thực toàn bộ quá trình thực hiện ứng dụng, bộ lập lịch sẽ ñược thiết kế theo mô hình lập trình dịch vụ ña luồng trong ñó các luồng tính toán sẽ ñược tách riêng ra khỏi luồng chính của dịch vụ. Khi ñó dịch vụ sẽ luôn có khả năng ñáp ứng tức thì các yêu cầu cung cấp thông tin của người dùng.
Cuối cùng, ñể tương tác với hệ thống Multi-Agent một cách hiệu quả và thuận tiện nhất bản thân dịch vụ lập lịch cũng ñược thiết kế ñể trở thành một dịch vụ lai Agent.
Các lớp chính của bộ lập lịch :
- Lớp SchedulerProvider: lớp này chứa luồng chính của dịch vụ làm nhiệm vụ tương tác với người dùng. Lớp này nhận các thông tin ñầu vào về
106
người dùng cũng như các chiến lược tối ưu sau ñó chuyển cho lớp Broker ñể
xử lý. Sau khi khởi tạo lớp Broker luồng này của dịch vụở trạng thái chờ và sẵn sàng cung cấp các thông tin chi tiết về quá trình thực hiện khi người dùng yêu cầu.
- Lớp Broker: lớp này chứa luồng tính toán chính của dịch vụ chịu trách nhiệm phối hợp hoạt ñộng của các dịch vụ tính toán ñầu cuối và lập lịch theo các tiêu chí tối ưu mà người dùng ñặt ra. Trong lớp này chứa các thuật toán lập lịch là phần trung tâm của bộ lập lịch. Chất lượng của bộ lập lịch phụ thuộc chủ yếu vào các thuật toán này. Lớp Broker không trực tiếp thực hiện công việc tính toán mà khởi tạo một tập các luồng mới từ lớp Worker sau ñó theo dõi quá trình thực hiện công việc của các luồng này. Lớp