Thiết kế kiến trúc lưới• Việc xây dựng một hệ thống tính toán lưới không chỉ đơn thuần là cài đặt các phần mềm, các ứng dụng trên các tài nguyên kết nối sẵn có mà phải thiết kế một các
Trang 1Chương 4 Triển khai môi trường
lưới tính toán
Giảng viên: TS Đàm Quang Hồng Hải
TÍNH TOÁN LƯỚI
Trang 2Nhu cầu triển khai môi trường lưới tính toán
• Ngày nay mạng máy tính phát triển mạnh, nhất là mạng Internet với hàng triệu máy
tính kết nối với nhau Đối với người dùng
bình thường công suất tính toán của máy
tính thường không được sử dụng hết
• Xây dựng môi trường lưới cho phép khai
thác thời gian rỗi của các máy tính trong
xã hội để phục vụ các nghiên cứu khoa học phức tạp.
Trang 3Môi trường lưới cho phép khai thác tài nguyên
Trang 4Những bài toán cần thực thi trên môi trường lưới
• Bài toán thu và xử lý những tín hiệu từ bên ngoài trái đất nhằm có thể tìm ra một nền văn minh nào
đó bên ngoài trái đất, nếu dùng một máy tính có công suất tính toán lớn cũng phái mất rất nhiều thời gian để xử lý
• Bài toán phá mã với phép thử lần lượt tất cả
trường hợp có thể của khóa cho đến khi tìm được khóa đúng
• Dự án nghiên cứu khả năng chống căn bệnh ung thư, cần phân tích số lượng lớn mô ung thư cùng một lúc, nếu dùng một máy tính thông thường
mất khoảng 168 năm
Trang 5Khảo sát yêu cầu triển khai
• Trong thiết kế kiến trúc lưới, bước khảo sát yêu cầu là bước rất quan trọng, kết qủa của nó sẽ ảnh hưởng trực tiếp đến tất cả các bước tiếp theo
• Người thiết kế phải đưa ra được những thông tin cần thiết như:
– Mục đích của việc xây dựng lưới là gì?
– Lưới có những yêu cầu gì về nghiệp vụ, hạ tầng và ứng dụng?
• Cuối cùng cần phải tinh chỉnh và xem xét lại xem những yêu cầu này có phù hợp với hạ tầng phần cứng và phần mềm cũng như nguồn nhân lực sẵn
có hay không
Trang 6Thiết kế kiến trúc lưới
• Việc xây dựng một hệ thống tính toán lưới không chỉ đơn thuần là cài đặt các phần
mềm, các ứng dụng trên các tài nguyên
kết nối sẵn có mà phải thiết kế một cách bài bản, chuyên nghiệp.
• Cần thiết phải có các phân tích tổng thể
bao gồm quy mô, phần mềm, cấu trúc lưới
…
Trang 7Các tài nguyên hạ tầng
triển khai môi trường lưới
Trang 8Lựa chọn hạ tầng lưới
• Khái niệm hạ tầng ở đây bao gồm cả phần cứng vật lý và các phần mềm được sử dụng để kểt nối các máy tính của một lưới lại với nhau Hạ tầng
này cung cấp các dịch vụ cho việc kết nối, đảm
bảo an toàn và quản trị
• Người quản trị cần nắm được đủ những tài nguyên nào mình có được như: máy tính, máy chủ, đường truyền … nhằm có thể triển khai hệ thống lưới
• Xác định quy mô của hệ thống lưới mình định xây dựng
Trang 9• Intragrid: thường được triển khai trong các tổ
chức hoặc doanh nghiệp Dựa trên kiến trúc mạng LAN hoặc mạng Intranet dùng riêng của tổ chức, doanh nghiệp đó
• Intragrid có băng thông và mức độ sẵn sàng cao;
Cơ chế an toàn, bảo mật riêng rẽ;
• Môi trường tác nghiệp độc lập Topo lưới dạng này rất phù hợp khi triển khai các lưới tính toán hoặc lưới dữ liệu
Trang 10Quy mô lưới tình toán
Trang 11• Extragrid: được thiết lập dựa trên hai hoặc nhiều Intragrid Đặc trưng của loại topo này là: Cơ chế
an toàn, bảo mật phân tán; Có sự tham gia của
nhiều tổ chức doanh nghiệp;
• Dựa trên mạng WAN Extragrid thích hợp với các tổ chức muốn xây dựng kết nối mạng với các đối tác của mình (B2B) nhằm chia sẻ tài nguyên, dữ liệu dựa trên sự tin tưởng lẫn nhau
Trang 12• Intergrid: xây dựng trên mạng WAN hoặc Internet và được sử dụng bởi các công ty công nghệ, tập đoàn công nghiệp, hoặc nhà sản xuất công nghiệp Đặc trưng của Intergrid là: Có sự tham gia của nhiều tổ chức; Kết nối nhiều đối tác; Kết nối nhiều mạng liên kết; Cơ chế an ninh phức tạp, phân tán.
Trang 13• Lưới tính toán Quốc tế: European Middleware
Initiative (EMI) Europe, World Community Grid,
Berkeley Open Infrastructure for Network Computing (BOINC)
• Lưới tính toán quốc gia: GridPP (UK), CNGrid (China), France Grilles (France), D-Grid (Germany), GARUDA (India), VECC (Calcutta, India), IsraGrid (Israel),
INFN Grid (Italy), HunGrid (Hungary), InteGrade
(Brazil), PL-Grid (Poland), National Grid Service (UK), Open Science Grid (USA), TeraGrid (USA)
Trang 15Môi trường lưới tính toán
công cộng
• Có hàng triệu máy tính ở nhiều quốc gia trên thế giới đã tình nguyện tham gia, cho phép các nhà khoa học sử dụng năng lực
xử lý trong máy tính của họ những lúc
không dùng tới để nghiên cứu
• Ví dụ: BOINC (Berkeley Open
Infrastructure for Network Computing) là phần mềm trung gian cho tính toán tình
nguyện và tính toán lưới, gồm có hai phía: phía server và phía client
Trang 16Tham gia Lưới công cộng
• Người dùng cần tải một ứng dụng về máy tính để kết nối vào mạng lưới cùng với
những máy tính tình nguyện khác
• Mỗi khi máy tính của người dùng rảnh rỗi, năng lực xử lý của máy tính đó sẽ được tận dụng để phục vụ cho nghiên cứu khoa học.
• Người dùng có thể lựa chọn tham gia các
dự án khác nhau
Trang 17Các dự án trong lưới Boinc
Trang 18Dự án Boinc
• Ban đầu BOINC được xây dựng để phục vụ dự án SETI@home, một dự án tìm kiếm tín hiệu ngoài trái đất Sau đó nó trở lên phổ biến và được sử dụng cho nhiều dự án tính toán khác nhau trong nhiều lĩnh vực như toán học, y học, sinh hoc…
• 60 dự án sử dụng mạng lưới Boinc với khả năng
xử lý lên tới 2.500 teraflop (gấp hai lần khả năng
xử lý của siêu máy tính lớn nhất thế giới hiện
Trang 19Kiến trúc của mạng BOINC
• Hệ thống BOINC gồm có
2 thành phần chính là hệ thống Server và phần
mềm
Trang 20Work Unit trong Boinc
• Work Unit là một khái niệm có nhiều nghĩa trong
dự án Boinc được hiểu là một đơn vị tính toán sẽ được thực hiện BOINC cung cấp các chương trình tiện ích và cả các chương trình C cho việc tạo ra các workunit
• Work Unit là một khối lượng thông tin (dữ liệu) cần tính toán có thể có kích thước nhỏ (200-500 KB) tới kích thước lớn vài MB
• Work Unit có thể là một tính toán nhỏ của bài
toán, được thực hiện trên hệ thống
• Một Work Unit có thể bao gồm nhiều Task, Result
là kết quả của một task, Server sẽ tự động tạo ra những tập kết quả tương ứng với các Work Unit khi một Work Unit được tạo
Trang 21Work Unit
Trang 22Server của hệ thống BOINC
• BOINC Server (Backend Server) có thể
chạy trên một hoặc nhiều máy tính khác nhau, điều này giúp cho hệ thống BOINC
dễ dàng mở rộng quy mô của dự án
• BOINC Server chạy trên nền tàng hệ điều hành Linux và sử dụng APACHE, PHP và
MySQL làm nền tảng cho hệ thống web và
cơ sở dữ liệu.
Trang 23Hoạt động của Bonic
• Các ứng dụng tính toán chạy trên máy tính thành viên, kết quả được gưi lên cơ sở dữ liệu của ứng dụng tính toán, tại đây nó sẽ được xử lý
• Trước khi kết quả được gửi lên cơ sở dữ
liệu của ứng dụng tính toán, nó được kiểm tra tính đúng đắn bởi Server Backend
• Server Backend kiểm tra tính đúng đắn
của kết quả bằng cách gửi các workunit tới nhiều máy khác nhau, và so sánh kết quả nhận được của một workunit khác nhau.
Trang 24Quá trình trao đổi giữa Client và Server
Trang 25Hoạt động của Server dự án
• Project back end: cung cấp các ứng dụng và work unit, xử lý các kết quả tính toán
• BOINC server complex: quản lý sự phân phối và tập hợp dữ liệu Bao gồm:
– Một hay nhiều trình phục vụ lập lịch, giao tiếp với các
– Dữ liệu server: phân phối các file dữ liệu đầu vào cho
tính toán và tập hợp các file chứa kết quả Dựa vào giao thức HTTP, chương trình CGI với lệnh POST.
Trang 26Mạng máy tính cộng đồng toàn cầu (World Community Grid)
• Môi trường tính toán lưới của IBM, với hệ
thống World Community Grid cho phép các nhà nghiên cứu truy cập vào và sử dụng
sức mạnh của siêu máy tính, đã giành giải thưởng hàng đầu về cộng tác trong cộng
đồng tính toán hiệu năng cao
• Community Grid là siêu máy tính ảo lớn
nhất thế giới với khả năng tính toán tương đương Siêu máy tính lớn thứ 3 trên thế
giới.
Trang 27World Community Grid
• Hướng tới việc tận dụng năng lực chưa
được sử dụng hết của các máy tính tại
doanh nghiệp cũng như hộ gia đình bằng cách “tuyển dụng” chúng để phân tích các
dữ liệu trong nghiên cứu y khoa, xã hội và môi trường
Trang 28Hoạt động của World
Community Grid
• Người dùng tải về một chương trình tại địa chỉ www.worldcommunitygrid.org Sau đó, mỗi khi máy tính ở trạng thái nghỉ, nó sẽ gửi truy vấn tới một máy chủ của World
Community Grid, thực hiện các phép tính rồi gửi trả kết quả cho server.
Trang 30Lưới tính toán của Đại học
• Các trường Đại học trên thế giới đề hình thành các trung tâm tính toán hiệu năng cao với các lưới tính toán cho phép giảng viên và sinh viên truy cập xử lý các bài
toán quy mô lớn.
• Các trung tâm (High-Performance
Computing Center) được trang bị các hệ thống máy tính có tốc độ cao, đường
truyền có thông lượng lớn cho phép tích hợp một khả năng tính toán và lưu trữ rất cao.
Trang 31University
of Florida
Trang 32Quy trình triển khai một hạ tầng lưới tính toán
• Danh sách công việc cần thực hiện: Dự kiến và quy định tài nguyên của lưới;
• Lựa chọn phần mềm trung gian;
• Lựa chọn các công cụ quản trị,
• xây dựng quy trình quản trị đối với phần mềm
Trang 33Yêu cầu an toàn của lưới
• Tính an toàn: lưới sau khi triển khai phải giảm
thiểu rủi ro đến mức chấp nhận được, nghĩa là
trong bản thiết kế cần phải vạch rõ các yêu cầu
về an toàn, bảo mật của hệ thống, đồng thời phải đưa ra các công cụ và các biện pháp nhằn tăng tính an toàn và bảo mật cho hệ thống
• Mức độ an toàn và bảo mật của hệ thống tính
toán lưới còn phụ thuộc vào topo lưới và dữ liệu cũng như tài nguyên cần bảo mật
• Mức độ bảo mật cũng khác nhau giữa các lưới
được dùng trong các công ty có tính chất nghiệp
vụ khác nhau
Trang 34Bảo mật cho Lưới
• Các mô hình an toàn và bảo mật cho một hệ
thống tính toán lưới cũng có những rủi ro tiềm ẩn
Do đó, khi thiết kế một mô hình bảo mật cho lưới cũng cần tính đến một vài phương án dự phòng
• Hạ tầng bảo mật: giải pháp bảo mật hay được áp dụng cho các hệ thống tính toán lưới là sử dụng tường lửa
• Giải pháp này bảo vệ được các máy chủ trong lưới tránh khỏi những tấn công từ bên ngoài và tạo lập thêm một hàng rào bảo vệ, ngăn cản những truy nhập không mong muốn từ người sử dụng bên
ngoài lẫn bên trong
Trang 35Hạ tầng bảo mật lưới
Trang 36Khả năng đáp ứng của lưới
• Tính sẵn sàng: được hiểu một cách đơn giản là
phần trăm thời gian mà hệ thống đáp ứng trở lại các yêu cầu của thực thể tham gia lưới
• Trong giai đoạn thiết kế, cũng cần đưa ra mức độ sẵn sàng của hệ thống
• Dựa trên mức độ này, người thiết kế xác định
được tài nguyên dư thừa cần có của hệ thống và
dự phòng được các phương thức xử lý sự cố hỏng hóc khi cần thiết
Trang 37Lựa chọn loại lưới
• Lưới tính toán (Computational Grid): dùng khi
muốn kết hợp và tăng sức mạnh tính toán của các
hệ thống tính toán phân tán Đặc trưng cơ bản
nhất của lưới tính toán là dựa trên sự tích hợp các đơn vị có sức mạnh tính toán nhưng khả năng lưu trữ không cao
• Lưới dữ liệu (Data Grid): chủ yếu dùng vào việc
cung cấp khả năng truy cập đến các nguồn dữ liệu
hỗn hợp, phân tán và bảo mật cho các thực thể
tham gia lưới Lưới dữ liệu nó giữ vai trò liên kết các dữ liệu rời rạc thành một cơ sở dữ liệu ảo
thống nhất và người dùng có thể truy cập cơ sở
dữ liệu này qua một giao diện duy nhất
Trang 38Computational Grid
Trang 39Data Grid
Trang 40Hạ tầng mạng
• Hạ tầng mạng: phải cung cấp băng thông đủ lớn cho các ứng dụng và dịch vụ trên nó Hạ tầng
mạng cần phải thường xuyên được bảo trì, tuỳ
chỉnh nhằm đảm bảo hiệu suất hoạt động và tính sẵn sàng cao nhất
• Yêu cầu mạng của
GridCom
Trang 41Hạ tầng lưu trữ
• Hạ tầng lưu trữ: đây là một trong những sức
mạnh vô tận của hệ thống tính toán lưới Khi thiết
kế hệ thống, người thiết kế phải trả lời được các câu hỏi như:
– cách thức nào dùng để bảo đảm an toàn cho các thiết bị lưu trữ,
– cách thức nào dùng trong nhân bản dữ liệu, và làm sao để quản lý các thiết bị này một cách hiệu quả nhất
– Mục tiêu cuối cùng của việc thiết kế các lưới là phải đảm bảo sự sẵn sàng của dữ liệu cho các tài nguyên và người dùng khi có yêu cầu
Trang 42Các dịch vụ cơ bản cho lưới
• Tập các dịch vụ này gồm các thành phần:
– Bộ cung cấp các tính năng bảo mật;
– Tập các thành phần cơ bản như Grid clients;
– CA; GateKeepers; MDS (GRIS/GIIS);
– Các chứng chỉ số cho việc xác thực;
– Bộ lập lịch công việc cơ bản;
• Các thiết bị hạ tầng thông dụng như mạng quản trị, tường lửa, hệ thống phát hiện truy cập trái phép; Mạng các thiết bị lưu trữ …
Trang 43Quản trị lưới tính toán
• Đối với người quản trị lưới, cần phải nắm rõ các
sản phẩm liên quan và các tính năng của hệ thống tính toán lưới Các sản phẩn liên quan đến hệ
thống tính toán lưới bao gồm: Phần mềm tầng
trung gian; Hệ thống giám sát hiệu suất lưới; Grid
• portals; Môi trường lập trình; Bộ lập lịch; Hệ
thống phát triển và kiểm thử lưới
• Các tính năng của hệ thống tính toán lưới: Quản
lý dịch vụ; Truyền thông dịch vụ; Quản lý chính
sách; Lựa chọn và triển khai các phần mềm trung gian, lựa chọn các ứng dụng, trả kết quả về cho các ứng dụng; Điều khiển dịch vụ; SLAs;
• Quản lý hiệu suất/tài khoản/lỗi; an toàn và bảo
mật
Trang 44Triển khai một lưới
• Một lưới tính toán đơn giản có thể được xây dựng dựa trên một thư viện lập trình hỗ trợ các tính
năng tính toán lưới, như sử dụng các tính năng được cung cấp bởi bộ công cụ Globus Toolkit
• Tuy nhiên, khi hệ thống được mở rộng và trở nên phức tạp, ta cần phải tiếp cận theo phương thức khác
Trang 45Triển khai mô hình lưới
Trang 46Cài đặt Globus Toolkit
• Đầu tiên là bước thiếp lập hạ tầng cho một lưới tính toán đơn giản dựa trên Globus Toolkit bao gồm các cài đặt trên máy chủ và các máy trạm như:
Trang 47Thiết lập ứng dụng, dịch vụ
• Tiếp theo là các bước thiết lập ứng dụng, dịch vụ cho hệ thống tính toán lưới vừa được cài đặt dựa trên Globus Toolkit hoặc bất cứ bộ công cụ nào dựa trên chuẩn OGSA bao gồm:
– Định nghĩa các dịch vụ của lưới bằng ngôn ngữ WSDL;
– Sinh mã Java cho việc định nghĩa WSDL; Viết
mã cài đặt phía máy chủ, máykhách;
– Triển khai và thử nghiệm các dịch vụ lưới sử dụng trình duyệt OGSA
Trang 48Globus Toolkit 4
• Globus Toolkit 4 là phiên bản hỗ trợ dịch vụ Web - WSRF
• Globus Tookit 4 cung cấp các thành phần được
chia theo các danh mục sau:
Trang 49Cài đặt Grid với Globus Toolkit 4
• Globus Toolkit 4 có thể cài đặt trên nhiều môi
trường như Linux, Windows, Mac …
• Có thể cài đặt từ source với compiler C và Java
Trang 50Java SDK
• Java SDK - Java software Development Kit) bao gồm tất cả các thư viện lõi của Java
• Ngôn ngữ Java cho phép các lập trình viên viết
một chương trình để chạy trên bất cứ nền tảng
nào
• Java có 3 ấn bản, ấn bản chuẩn (Standard), ấn bản doanh nghiệp (Enterprise), và ấn bản di động (Mobile), hai ấn bản sau tương ứng dành cho việc phát triển ứng dụng doanh nghiệp và thiết bị cầm tay
• Download tại địa chỉ: http://java.sun.com/
Trang 51• Để kiểm tra Java SDK đã được cài đặt thành công:
– [root@hosta]# java version
Trang 52Apache Ant
• Ant là một công cụ để build code java dựa trên trình biên dịch java do James Duncan Davidson – tác giả tạo ra Ant,
• Ant là từ viết tắt của "Another Neat Tool", tạm dịch là một "Công cụ gọn nhẹ khác“
Trang 53Cài đặt Apache Ant
• Lấy gói tin Apache Ant tại http://ant.apache.org/
• Bung tệp nén Apache Ant:
– [root@hosta]# tar xvzf apache-ant-1.8.2-bin.tar.gz
• Để kiểm tra Apache Ant đã cài đặt thành công:
– [root@hosta]# ant version
Trang 54Cài đặt một Grid
• Cấu hình phần cứng của lưới bao gồm nút lưới
chính và các nút lưới tính toán
• Nút lưới chính quản lý CA và các nút trong mạng
có thể nhìn và liên lạc được với nhau
• Có thể cài đặt trên các máy ảo bằng phần
• Tạo một user "globus", đây là user thực hiện công việc quản trị Globus Toolkit
• Tạo các thư mục cần thiết