BÁO CÁO SEMINAR
MÔN TÍNH TOÁN LƯỚI
NGƯỜI THỰC HIỆN:
XƠN XAY
NGUYỄN TUẤN VIỆT
TRẦM THẾ PHIÊN
ĐỀ TÀI:
GRID COMPUTING MIDDLEWARE
1.Giới thiệu:
Về khía cạnh người sử dụng thì môi trường lưới có thể được chia làm 3 lớp:
*Lớp ứng dụng
*Lớp giữa
*Lớp cơ sở hạ tầng
1.1.Lớp ứng dụng:
Trong môi trường lưới có rất nhiều loại ứng dụng khác nhau có nhu cầu sử dụng tài nguyên của hệ
thống tính toán lưới bên dưới, trong đó có những ứng dụng như việc truy xuất dữ liệu qua điện thoại
di động, hay các máy trạm cần tài nguyên cho việc tính toán của nó, hay là các hệ thống mô phỏng
cần một lượng rất lớn dữ liệu để trực quan hóa các kết quả thí nghiệm.
1.2.Lớp cơ sở hạ tầng:
Bao gồm các hệ thống siêu máy tính, clusters, các hệ thống lưu trữ dữ liệu, các phòng thí nghiệm, hệ
thống mạng internet toàn cầu, … Các hệ thống cơ sở hạ tầng này cung cấp khả năng tính toán rất
lớn, có khả năng lưu trữ lượng dữ liệu vô cùng lớn, chẳng hạn như dữ liệu thu được từ việc thu thập
dữ liệu khi theo dõi chuyển động của các vì sao,…
1.3.Lớp giữa:
Khi đó lớp giữa (grid middleware) chính là lớp đóng vai trò như là 1 bức tường mỏng bao bọc lấy
lớp cơ sở hạ tầng. Nó có khả năng che dấu mọi sự phức hợp bên dưới của lớp cơ sở hạ tầng, nhưng
lại cung cấp cho lớp ứng dụng những giao tiếp được chuẩn hóa nhằm làm đơn giản hóa cho các user
có khả năng sử dụng dễ dàng hơn. Hình 1 dưới đây sẽ minh họa cho 3 lớp này:
1
Hình 1. Môi trường lưới
Từ đó, ta rút ra được 3 kết quả chính mà môi trường lưới phải đối mặt:
- Sự phức hợp (Heterogeneity): Như đã nói ở trên, cơ sở hạ tầng lưới bao gồm rất nhiều
loại tài nguyên khác nhau, và thuộc vào nhưng vùng quản trị, địa lý khác nhau, có tiềm
năng mở rộng toàn cầu.
- Khả năng mở rộng (Scalability): tức là làm sao để đảm bảo được rằng, khi độ phức tạp
của bài toán tăng lên N lần thì cùng với sự tăng lên khả năng tính toán N lần mà vẫn đảm
bảo được hiệu quả của bài toán gần như ban đầu. Điều này làm tăng mức độ thử thách
cho môi trường lưới, bởi vì như đã nhấn mạnh rằng môi trường lưới có tính phức hợp.
Việc mở rộng bài toán sẽ làm vượt ra ngoài việc sử dụng tài nguyên cục bộ, làm phát
sinh như cầu về sự xác thực, tin tưởng hay về bảo mật. Việc mở rộng bài toán cũng làm
tăng mức độ phức hợp của bài toán vì phải sử dụng đến tài nguyên của các hệ thống bên
ngoài có thể không đồng nhất với hệ thống bên trong.
- Khả năng thích nghi (Adaptability): Trong môi trường lưới, việc xảy ra lỗi là chuyện tất
yếu, không phải là 1 ngoại lệ. Việc sử dụng càng nhiều tài nguyên sẽ làm tăng xác suất
xảy ra lỗi. Do đó, các nhà quản lý tài nguyên lẫn ứng dụng phải làm sao để phản ứng 1
cách linh động để có được hiệu suất tính toán cao nhất từ những tài nguyên và dịch vụ có
sẵn.
2.Định nghĩa Grid middleware:
Grid middleware là phần mềm hệ thống nằm giữa lớp ứng dụng và hệ điều hành.
Nó có khả năng:
- Cung cấp các dịch vụ cho các ứng dụng. Bao gồm các dịch vụ về khám phá tài
nguyên(discovery), lưu trữ (storage), thực thi (execution), thông tin (information), theo
dõi tài nguyên (resource monitoring), kiểm lỗi và phục hồi (failure detector and
recovery),… Đây là các dịch vụ cốt lõi và thiết yếu nhất để làm sao user có thể tham gia
2
vào môi trường lưới. Chẳng hạn, khi 1 user muốn sử dụng 1 tài nguyên tính toán mà đã
được mô tả trước, thì dịch vụ khám phá tài nguyên sẽ dò tìm ra những loại tài nguyên
thích hợp cho user, sau đó sẽ cấp phát cho user ứng với quyền hạn mà user đó có thông
qua các dịch vụ về bảo mật (security). Sau khi được cấp phát, các dịch vụ theo dõi về
thông tin tài nguyên, theo dõi việc thực thi của job, phân bổ job (scheduling) sao cho hợp
lý,… Như vậy, ứng với mỗi quá trình đáp ứng yêu cầu của user, có rất nhiều dịch vụ
tham gia vào quá trình này.
- Che dấu sự phức hợp (heterogeneous) của môi trường lưới: Bởi vì cơ sở hạ tầng của môi
trường lưới là phức hợp, đó là sự tham gia của nhiều tổ chức, nhiều hệ thống máy tính
khác nhau, mỗi hệ thống lại chạy trên nền hệ điều hành khác nhau, như Unix, Linux, Sun
Solaris, Mac OS,… Nhưng đối với cái nhìn của user, môi trường lưới dưới vỏ bọc của
Grid middleware, đó là 1 hệ thống tính toán lớn trong suốt (transparent). Khi user yêu
cầu thực thi 1 công việc nào đó, user không cần quan tâm đến việc thực thi công việc của
mình nằm trên những tài nguyên nào, ở xa hay gần, nằm ở đâu,… quan trọng là kết quả
mà người dùng nhận được, thời gian đáp ứng,…
- Cung cấp các giao tiếp đã được chuẩn hóa cho ứng dụng.
3.Mục đí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ức nà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ác nhận, xác thực, khám phá tài nguyên, truy xuất tài
nguyên. Do đó, việc xây dự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ác giao thức thông thường) mà hệ thống lưới phụ thuộc
vào.
- 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ần của Grid bằng cách cho
phép các thành phần mã được sử dụng lại.
3
4.Kiến trúc phân tầng của lưới:
Hình 2: Kiến trúc phân tầng của hệ thống lưới.
Kiến trúc lưới bao gồm nhiều tầng với những độ rộng khác nhau, được thể hiện thông qua minh
họa dạng hình đồng hồ cát như hình 2 (hình 2.2 – chương 2 – trong quyển “F.Berman,G.Fox,T.Hey-
Grid Computing-Making The Global Infrastructure a Reality (Wiley2003)”. Phần hẹp nhất, phần cổ
của đồng hồ cát là lớp về các giao thức kết nối và giao thức tài nguyên (Resource and connectivity
protocols). Lớp này chứa 1 tập rất nhỏ các giao thức chính và giao diện lập trình ứng dụng mà sẽ
được hiện thực ở mọi nơi. Lớp trên cùng của đồng hồ cát là tập các ứng dụng và công cụ hỗ trợ. Và
phần nằm dưới cùng của đồng hồ cát là lớp cở sở hạ tầng, nó phụ thuộc nhiều vào công nghệ.
Dựa hình 2, ta cũng nhận ra rằng, Grid middleware chính là phần nằm trong hình chữ nhật viền
đen. Nó bao gồm 3 lớp chính:
- Lớp giao thức kết nối – Connectivity layer
- Lớp giao thức tài nguyên – Resource layer
- Lớp giao thức nhóm – Collective layer
4.1.Lớp giao thức kết nối – Connectivity layer
Đây là lớp có chức năng giao tiếp một cách dễ dàng và an toàn. Lớ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ảo
mậ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.
4
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ác thực. Đến lượt chương
trình có thể ủy quyền cho nhưng chương trình khá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ải pháp bảo mật cục bộ có sẵn này
mà không cần phải thay thế 1 giải pháp bảo mật mới, và chỉ cần cho phép ánh xạ
vào môi trường cục bộ.
o Mối quan hệ đáng tin cậy dựa trên user: Để user có khả năng truy xuất vào tài
nguyên từ nhiều nhà cung cấp khác nhau, thì hệ thống bảo mật không cần phải
yêu cầu các nhà cung cấp tài nguyên phải liên lạc với nhau để cấu hình cho môi
trường mạng. Chẳng hạn, nếu user 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 .
4.2.Lớp giao thức tài nguyên – Resource layer
Đây là lớp có khả năng chia sẻ các tài nguyên đơn lẻ. Nó định nghĩa các giao thức về sự thương
lượng an toàn, khởi tạo, theo dõi, điều khiể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ài nguyên đơn lẻ. Lớp tài nguyên sẽ được hiện thực bởi các giao thức để truy xuất và
điều khiển các tài nguyên cục bộ, bao gồm 2 lớp chính:
- 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ấu hình của tài nguyên, tải hiện thời, hay
chính sách sử dụng,…
- 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ài nguyên (bao gồm việc đặt chỗ và chất
lượng dịch vụ) và các thao tác thực hiện như khởi tạo, truy xuất tài nguyên,…
4.3.Lớp giao thức nhóm – Collective layer
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ác giữ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ững yêu cầu mới ứng với mỗi tài nguyên được chia
sẽ. Chẳng hạn:
- 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ó cho phé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.
- 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 hay nhiều tài nguyên và phân bổ các task cho các
tài nguyên thích hợp.
- 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.
- 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, chi phí,…
- 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),…
- Workload management systems and collaboration frameworks
- Software discovery service
5
- Community authorization servers
- Community accounting and payment services
- Collaboratory services
5.Các công nghệ:
Nội dung về công nghệ của Grid middleware sẽ trình bày về Globus Toolkit, gLite, và cuối cùng
là bảng so sánh các công nghệ trên, trong đó có UNICORE.
5.1.Globus Toolkit:
Sự phát triển về công nghệ của Globus Toolkit được thể hiện ở hình vẽ 3 dưới đây:
Hình 3. Quá trình phát triển của công nghệ Globus Toolkit.
Trước những năm 2003 là giai đoạn hình thành ở mức khái niệm với phiên bản nổi bật là GT2.0.
Năm 2003 xuất hiện phiên bản GT3.0 sử dụng kiến trúc dịch vụ lưới mở (OGSA – Open Grid
Service Architecture). Giai đoạn sau năm 2003 là giai đoạn chuẩn hóa với sự xuất hiện của phiên
bản GT4.x sử dụng công nghệ WSRF – Web service resource framwork.
5.1.1.Globus Toolkit phiên bản 2:
Từ năm 1997, GT2 đã trở thành 1 chuẩn thực sự cho tính toán lưới. Phiên bản này tập trung vào
tính sử dụng và tính interoperability, GT2 định nghĩa và hiện thực các giao thức, các giao diện lập
trình ứng dụng và các dịch vụ sử dụng hàng ngàn triển khai trên thế giới. GT2 giải quyết được
những vấn đề chung như sự xác nhận, khám phá tài nguyên, truy xuất tài nguyên. GT2 cũng định
nghĩa và hiện thực các giao thức, dịch vụ chuẩn. GT2 đã đi tiên phong trong việc tạo ra hệ thống
lưới có tính interoperable và cho phép cải tiến hiệu quả công cụ lập trình trên lưới. GT2 được xây
dựng dựa trên kiến trúc phân lớp của môi trường lưới, bao gồm 3 lớp chủ yếu:
- Lớp kết nối:
o Giao thức xác thực: hiện thực giao thức cơ sở hạ tầng bảo mật lưới (GSI – Grid
Security Infrastructure) dựa trên mã khóa công khai. Giao thức này sử dụng cho
việc xác thực, bao vệ kết nối và xác nhận. GSI được xây dựng và mở rộng dựa
vào giao thức bảo mật tầng vận chuyển (TLS – Transport Layer Security – định
nghĩa 1 giao thức về sự riêng tư và toàn vẹn dữ liệu giữa 2 ứng dụng kết nối với
nhau)
o Giao thức giao tiếp dựa trên kiến trúc phân tầng Internet. Tầng Internet sử dụng
giao thức IP và ICMP. Tầng vận chuyển sử dụng TCP, UDP. Tầng ứng dụng sử
dụng DNS, OSPF, RSVP,…
- Lớp tài nguyên: Bao gồm 1 tập nhỏ các giao thức chuẩn. Bao gồm:
6