Khái niệm: Grid là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển lựa vàtập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
-ωω o0o ωω
-BÀI THU HOẠCH MÔN HỌC
ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
TÌM HIỂU ĐIỆN TOÁN LƯỚI-GRID
COMPUTING
GVHD : PGS.TS Nguyễn Phi Khứ HVTH : Phạm Xuân Bình
Trang 2Mục lục
Trang 3I Điện toán lưới
1. Khái niệm:
Grid là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển lựa vàtập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn có, công suất, hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của người sử dụng Điện toán mạng lưới có nghĩa là tất cả hoặc một phần của một nhóm máy tính, máy chủ và thiết bị lưutrữ trong mạng máy tính , được “ảo hóa” (virtualize) thành một cỗ máy tính lớn
• Đặc trưng cơ bản của hệ thống:
- Có sự kết hợp, chia sẻ các tài nguyên không được quản lý tập trung Grid tích hợp và phối hợp tài nguyên, người dùng thuộc nhiều vùng quản lý khác nhau, nhiều đơn vị khác nhau trong một tổ chức, hay nhiều tổ chức khác nhau Công nghệ Grid tập trunggiải quyết các vấn đề về bảo mật, chính sách quản trị, chi phí, thành viên,… nảy sinh trong quá trình chia sẻ và sử dụng tài nguyên
- Sử dụng các giao diện và giao thức chuẩn, mang tính mở, đa dụng Grid được xây dựng trên các giao thức và giao diện tổng quát, đa dụng để giải quyết các vấn đề cơ bản như chứng thực người dùng, phân quyền, tìm kiếm và truy xuất tài nguyên
- Đáp ứng yêu cầu cao về chất lượng dịch vụ Grid cho phép sử dụng phối hợp các tài nguyên để cung cấp nhiều loại dịch vụ với các mức chất lượng khác nhau, liên quan đến ví dụ như thời gian đáp ứng, hiệu suất, tính sẵn sàng, bảo mật, cho phép kết hợpnhiều kiểu tài nguyên để đáp ứng nhu cầu phức tạp của người dùng Mục tiêu là phảiphối hợp làm sao để khả năng của hệ thống sau khi kết hợp phải lớn hơn hẳn tổng khả năng của từng đơn vị cấu thành nên Grid
2. Các loại tài nguyên
a) Tài nguyên tính toán
Đây là tài nguyên phổ biến nhất, là các chu kỳ tính toán (computing cycles) được cung cấp bởi bộ vi xử lý của các thiết bị trong Grid Các bộ vi xử lý không cần phải cùng loại mà có thể
có tốc độ, kiến trúc, chạy phần mềm khác nhau
Có 3 cách để khai thác tài nguyên tính toán của Grid:
Trang 4- Cách đơn giản nhất là chạy các ứng dụng hiện có trên một node của Grid thay vì chạy trên máy tính cục bộ
- Thiết kế ứng dụng, tách các công việc thành các phần riêng rẽ để có thể thực thi song song trên nhiều bộ xử lý khác nhau
- Chạy ứng dụng thực thi nhiều lần trên nhiều node khác nhau trong Grid
b) Tài nguyên lưu trữ
Tài nguyên phổ biến thứ nhì trong Grid là tài nguyên lưu trữ Mỗi thiết bị trong Grid thường cung cấp một số dung lượng lưu trữ phục vụ cho việc thực thi ứng dụng trên Grid Tài
nguyên lưu trữ có thể là bộ nhớ trong, ổ đĩa cứng hoặc các thiết bị lưu trữ khác Bộ nhớ trong thường dùng để lưu trữ dữ liệu tạm thời cho ứng dụng, trong khi các thiết bị lưu trữ ngoài có thể được sử dụng để tăng không gian lưu trữ, tăng hiệu suất, khả năng chia sẻ và đảm bảo tính tin cậy của dữ liệu
c) Phương tiện liên lạc
Khả năng liên lạc giữa các máy tính phát triển nhanh chóng đã giúp cho công nghệ Grid trở nên hiện thực, do đó đây cũng là một tài nguyên quan trọng Ở đây bao gồm việc liên lạc, trao đổi dữ liệu giữa các thành phần trong Grid và giao tiếp giữa Grid với bên ngoài Một số công việc đòi hỏi một lượng dữ liệu lớn nhưng các dữ liệu này thường không nằm trên máy đang thực thi công việc Khả năng về băng thông trong những trường hợp như vậy là một tàinguyên then chốt, ảnh hưởng đến khả năng của Grid
Việc giao tiếp với bên ngoài được thực hiện thông qua mạng Internet Grid có thể sử dụng các kết nối Internet để liên lạc giữa các node Vì các kết nối này không chia sẻ một đường truyền nên làm tăng băng thông truy cập Internet Các đường truyền dự phòng đôi khi cần thiết để giải quyết tốt hơn các vấn đề về hư hỏng mạng và truyền dữ liệu lớn
d) Phần mềm ứng dụng
Grid có thể được cài đặt các phần mềm mà có thể quá mắc để cài trên tất cả mọi máy tính trong Grid Các phần mềm này chỉ cần được cài trên một số node Thông qua Grid, khi một công việc cần đến chúng, nó sẽ gửi dữ liệu đến node đã được cài đặt phần mềm và cho thực thi Đây có thể là một giải pháp tốt để tiết kiệm chi phí về bản quyền phần mềm
Trang 5e) Các thiết bị đặc biệt
Là các thiết bị dùng trong khoa học, kỹ thuật như kính viễn vọng, các bộ cảm biến (sensor),
… Các thiết bị này chủ yếu thu thập các dữ liệu khoa học, phục vụ cho các bước phân tích, xử
lý sau này
Ghi chú: Các tài nguyên trên đây đến từ nhiều nguồn khác nhau, có thể không thuộc quyền quản lý của một tổ chức, của một đơn vị mà có thể thuộc nhiều tổ chức, ở nhiều nơi khác nhau Một số tài nguyên có thể được sử dụng tự do, trong khi một số khác được sử dụng dưới những chính sách nhất định Các tài nguyên được “ảo hóa” (virtualize) để che dấu sự phức tạp, đa dạng nhằm đưa ra một cái nhìn thống nhất, đơn giản về toàn bộ tài nguyên trên Grid sao cho dưới mắt của người dùng, các tài nguyên Grid là một khối thống nhất.
3. Phân loại các hệ thống Grid
Công nghệ Grid Computing có thể được sử dụng theo nhiều cách khác nhau để giải quyết các loại yêu cầu ứng dụng Thông thường Grid được phân loại bởi kiểu của ứng dụng cần giảiquyết Có 3 loại Grid như trình bày dưới đây Tuy nhiên không có ranh giới phân biệt rõ ràng giữa các loại Grid và trong thực tế, các giải pháp Grid thường là sự kết hợp 2 hay nhiều loại khác nhau
a) Grid tính toán (Computation Grid)
Loại Grid này tập trung chủ yếu vào việc sử dụng năng lực tính toán Ở dạng Grid này, phần lớn các node là các máy tính hay các nhóm máy tính(cluster) có năng lực xử lý, tính toán rất lớn Hình thức thực hiện là chia tác vụ tính toán lớn thành nhiều công việc nhỏ thực thi songsong trên các node của Grid Việc phân tán các tác vụ tính toán trong Grid sẽ làm giảm rất đáng kể toàn bộ thời gian xử lý và tăng khả năng tận dụng hệ thống Thông thường một hệ thống chính sẽ chia khối dữ liệu cần xử lý thành các phần nhỏ, sau đó phân phối đến các node trên Grid Mỗi node sẽ thực hiện xử lý dữ liệu và trả kết quả về hệ thống chính để hệ này tổng hợp và trình diễn kết quả toàn cục cho người dùng
b) Grid dữ liệu (Data Grid)
Ở đây, không gian lưu trữ là tài nguyên Một Grid Dữ liệu chịu trách nhiệm lưu trữ và cung cấp khả năng truy cập dữ liệu cho nhiều tổ chức khác nhau Người dùng không cần biết chính xác vị trí dữ liệu khi thao tác với dữ liệu
Trang 6Các cơ sở dữ liệu, đặc biệt các cơ sở dữ liệu liên hợp, đóng vai trò quan trọng trong các Grid
Dữ liệu, nhất là khi có nhiều nguồn dữ liệu và xuất hiện nhu cầu kết hợp các thông tin từ các nguồn dữ liệu này Các Grid Dữ liệu có thể được sử dụng trong lĩnh vực khai thác dữ
liệu(data mining) hoặc các hệ thống thương mại thông minh Trong trường hợp này, không chỉ có hệ thống file hay các cơ sở dữ liệu mà toàn bộ dữ liệu của tổ chức cần tập hợp lại Ở đây có thể phải kết hợp giữa Grid Dữ liệu và Grid Tính toán
(interoperability) cần phải được tập trung giải quyết Trong môi trường mạng, “liên kết hoạt động” đồng nghĩa với việc sử dụng các protocol chung Do đó, kiến trúc Grid sẽ là kiến trúc protocol, với các protocol xác định các cơ chế nền tảng để người dùng và nhà cung cấp tài nguyên thương lượng, thiết lập, quản lý và khai thác các mối quan hệ chia sẻ tài nguyên.Kiến trúc Grid phải là kiến trúc dựa chuẩn, hướng mở, để dễ mở rộng, liên kết hoạt động tốt,
có tính khả chuyển (portability) cao Các protocol chuẩn sẽ giúp định nghĩa các service chuẩn, nhờ đó có thể xây dựng các service cao cấp hơn một cách dễ dàng Sau khi có được kiến trúc Grid, việc tiếp theo là xây dựng các hàm API và các bộ SDK để cung cấp các công cụ cần thiết để phát triển các ứng dụng chạy trên nền Grid Sở dĩ vấn đề “liên kết hoạt động” được xem là vấn đề cơ bản vì các mối quan hệ chia sẻ có thể phải được thiết lập giữa các bên tham gia khác nhau về các chính sách, giữa các môi trường khác nhau về nền tảng, ngônngữ, môi trường lập trình,…Nếu không có nó, các thành viên trong VO sẽ thực hiện các chính
Trang 7sách chia sẻ song phương và không chắc rằng các cơ chế sử dụng cho 2 thành viên này sẽ
mở rộng được cho các thành viên khác Điều này khiến cho việc thành lập các VO động là không thể thực hiện hoặc cũng chỉ thành lập được VO theo một kiểu nào đó mà thôi
b) Chi tiết
Sau gần 10 năm tập trung nghiên cứu, phát triển, tích luỹ kinh nghiệm, các nhà phát triển công nghệ Grid đã có những thống nhất đáng kể về kiến trúc Grid Một trong những kiến trúc Grid được chấp nhận nhiều nhất được đưa ra bởi Ian Foster Theo Ian Foster, kiến trúc Grid là một kiến trúc phân tầng như trong hình bên dưới Các thành phần trong một tầng có chung đặc điểm, tính chất, có thể được xây dựng từ bất cứ tầng dưới nào Các thành phần được phân tầng dựa theo vai trò của chúng trong hệ thống Grid Đây là một kiến trúc mở.Kiến trúc này chỉ quy định các yêu cầu chung nhất về thiết kế và triển khai với mục đích chính là để tham khảo Việc xây dựng, cài đặt cụ thể tuỳ thuộc vào từng dự án, từng lĩnh vựcứng dụng
• Tầng Fabric:
Đây là tầng thấp nhất của kiến trúc, đại diện cho các thiết bị vật lý và toàn bộ tài nguyên của Grid mà các tổ chức, người dùng muốn chia sẻ, sử dụng Các tài nguyên có thể tồn tại dưới dạng vật lý như các máy tính, hệ thống lưu trữ, các danh mục, tài nguyên mạng, các loại sensor, cũng có thể là các thực thể logic - một thực thể trừu tượng - đại diện chomột tập các tài nguyên vật lý, như hệ thống file phân tán, các cluster,… Trong trường hợp các thực thể logic, việc triển khai có thể liên quan đến các protocol cục bộ (ví dụ các protocol phục vụ dạng truy cập NFS, hoặc protocol quản lý tài nguyên, tiến trình trong cluster,…) nhưng các protocol này không liên quan đến kiến trúc Grid
Trang 8Các thành phần của tầng Fabric thực hiện các hoạt động cục bộ trên các tài nguyên cụ thể (vật lý lẫn logic) như là bước tiếp sau của các hoạt động chia sẻ tài nguyên của các tầng trên Do đó, có một mối liên hệ phụ thuộc chặt chẽ giữa các chức năng của tầng Fabric với các hoạt động chia sẻ được hỗ trợ Các chức năng của tầng Fabric càng mạnh, càng nhiều sẽ cho phép các hoạt động chia sẻ phức tạp, phong phú hơn Kinh nghiệm cho thấy, việc quản lý tài nguyên ở tầng này ít nhất cũng phải có cơ chế cung cấp thông tin để xác được cấu trúc, trạng thái, năng lực của tài nguyên và cơ chế điều khiển chất lượng dịch vụ.
• Tầng Connectivity
Tầng Connectivity định nghĩa các protocol liên lạc và chứng thực cơ bản cần thiết cho các giao dịch mạng đặc trưng của Grid Các protocol liên lạc cho phép trao đổi dữ liệu giữa các tài nguyên tầng Fabric Các protocol chứng thực xây dựng trên các dịch vụ liên lạc nhằm cung cấp các cơ chế mã hóa, bảo mật, xác minh và nhận dạng các người dùng
và tài nguyên Việc liên lạc đòi hỏi các công việc như vận chuyển, định tuyến, đặt tên Trong tương lai, việc liên lạc của Grid có thể cần các protocol mới, nhưng hiện nay nên xây dựng trên các protocol có sẵn của bộ TCP/IP protocol stack, cụ thể là các tầng
Network (IP và ICMP), Transport (TCP,UDP) và Application (DNS,OSPF,…)
Về khía cạnh bảo mật của tầng Connectivity, các giải pháp phải dựa trên các chuẩn bảo mật hiện hành khi có thể Cũng giống như liên lạc, rất nhiều chuẩn bảo mật đã được phát triển với bộ Internet protocol có thể áp dụng được Việc chứng thực, phân quyền trong môi trường Grid là rất phức tạp Các công nghệ bảo mật truyền thống chủ yếu tập trung bảo vệ các giao dịch giữa các máy client và server Trong Grid, việc phân biệt client/server không tồn tại, vì các mỗi tài nguyên trong một lúc nào đó có thể là server (khi nó nhận yêu cầu), một lúc khác lại là client (khi nó đề xuất yêu cầu đến các tài nguyên khác) Do đó, các giải pháp chứng thực cho các môi trường VO nên đạt được các yêu cầu về bảo mật trong Grid như đã giới thiệu
• Tầng Resource
Tầng Resource dựa trên các protocol liên lạc và chứng thực của tầng Connectivity để xây dựng các protocol, API và SDK nhằm hỗ trợ việc thươnglượng, khởi tạo, theo dõi, điều
Trang 9khiển, tính toán chi phí và chi trả cho các hoạt động chia sẻ trên từng tài nguyên riêng lẻ một cách an toàn Bản cài đặt các protocol của tầng Resource sẽ gọi các chức năng của tầng Fabric để truy cập và điều khiển các tài nguyên cục bộ.
Các protocol tầng Resource tập trung toàn bộ vào các tài nguyên riêng lẻ, không quan tâm đến trạng thái toàn cục và các hoạt động trong các tập tài nguyên phân tán
Các protocol tầng Resource được phân thành 2 dạng chính như sau:
- Các protocol thông tin
Sử dụng để thu thập thông tin về cấu trúc và trạng thái các tài nguyên ví dụ như cấu hìnhhiện tại, tải hiện tại, chính sách sử dụng,…
- Các protocol quản lý
Sử dụng để thượng lượng truy xuất đến một tài nguyên chia sẻ, xác định rõ, ví
dụ, các yêu cầu về tài nguyên (bao gồm luôn việc giữ chỗ tài nguyên và chất lượng dịch vụ) và các thao tác cần được thực hiện như tạo tiến trình, hoặc truy xuất dữ liệu Do các protocol quản lý chịu trách nhiệm đại diện cho các quan hệ chia sẻ, đảm bảo các hoạt động sử dụng tài nguyên phải phù hợp với các chính sách chia sẻ tài nguyên, bao gồm luôn việc tính toán và chi trả chi phí Mỗi
protocol cũng nên hỗ trợ việc theo dõi trạng thái và điều khiển các hoạt
động Với những yêu cầu như vậy, tập các protocol tầng Resource (và
Connectivity) nên nhỏ gọn và tập trung Các protocol này chỉ nên đáp ứng được các cơ chế chia sẻ với nhiều loại tài nguyên khác nhau (ví dụ, các hệ thống quản
lý tài nguyên cục bộ khác nhau) là đủ Các chức năng chính của tầng Resource cũng giống như của tầng Fabric cộng thêm nhiều ngữ nghĩa mới với cơ chế báo lỗi tin cậy khi hoạt động không thành công
• Tầng Collective
Trong khi tầng Resource tập trung vào các tài nguyên đơn lẻ, tầng Collective chứa các giao thức, dịch vụ, API, SDK không liên hệ đến bất kỳ một tài nguyên cụ thể nào mà thực hiện quản lý toàn cục, tập trung vào các giao tác giữa các tập tài nguyên Tầng
Collective có thể bổ sung thêm nhiều loại hoạt động chia sẻ mới ngoài những gì
Trang 10đã có từ tầng Resource mà không cần bổ sung thêm các yêu cầu mới cho các tàinguyên đang được chia sẻ Các chức năng của tầng Collective có thể được cài đặt nhưcác service (với các protocol tương ứng), hay như các bộ SDK(với các API tương ứng) được thiết kế để liên kết với ứng dụng Trong cả hai trường hợp, các cài đặt này có thể được xây dựng trên các protocol và API của tầng Resource và Connectivity
• Tầng Application
Tầng trên cùng của kiến trúc Grid bao gồm các ứng dụng của người dùng chạy trong mộttrường VO Các ứng dụng được xây dựng theo cách sẽ gọi các dịch vụ định nghĩa bởi các tầng phía dưới Ví dụ : một chương trình phân tích bộ gen người cần phải chạy hàng ngàn tác vụ độc lập, mỗi tác vụ cần nhiều file chứa thông tin từng phần của bộ gen có thể sử dụng các chức năng Grid sau:
- Lấy các thông tin, thẻ chứng thực (các protocol tầng Connectivity)
- Truy vấn hệ thống thông tin Grid và các danh mục để tìm các tài nguyên thích hợp và vị trí các file dữ liệu đầu vào (các dịch vụ tầng Collective)
- Gửi các yêu cầu đến các tài nguyên để thực hiện tính toán, di chuyển dữ liệu,… và kiểm soát quá trình thực thi công việc, thông báo cho người dùng khi mọi thứ hoàn tất, dò tìm
và phản ứng với các điều kiện gây lỗi (tầng Resource)
c) Kiến trúc trong thực tế
Trong thực tế, kiến trúc Grid tổng quan đã được cài đặt và xây dựng như hình bên dưới Kiến trúc Grid gồm 4 tầng tương ứng với các tầng của kiến trúc tổng quát như sau:
Trang 11- Tầng Fabric
Giống như tầng Fabric trong kiến trúc tổng quát
- Tầng Core Middleware (Connectivity và Resource và nửa dưới của Collective)
Cung cấp các dịch vụ như quản lý tiến trình ở xa, kết hợp, phân phối các tài
nguyên, quản lý truy cập không gian lưu trữ, đăng ký và tìm kiếm thông tin, bảo mật và các khía cạnh của QoS như đặt trước, mua bán và trao đổi tài nguyên,… Các dịch vụ này
là sự trừu tượng hoá tính phức tạp và đa dạng của các tài nguyên bằng cách cung cấp một phương pháp chung để truy cập tài nguyên
- Tầng User-level Middleware (Collective)