- Thứ hai: Một cách thực hiện hiệu quả hơn là phân bố lại hợp lý các nguồn tài nguyên trong tổ chức hoặc thuê thêm các nguồn tài nguyên từ bên ngoài dĩ nhiên là với chi phí rẻ hơn nhiều
Trang 1TIỂU LUẬN MÔN TÍNH TOÁN LƯỚI
TÌM HIỂU CÔNG NGHỆ TÍNH TOÁN LƯỚI VÀ BỘ
CÔNG CỤ GLOBUS TOOLKIT
Giảng viên hướng dẫn : TS Nguyễn Phi Khứ
Trang 4I Tổng quan
Cũng như các công nghệ tính toán khác, tính toán lưới (Grid Computing) ra đời
xuất phát từ nhu cầu tính toán của con người Thực tế, ngày càng có nhiều bài toán phức tạp hơn được đặt ra và do đó các tổ chức cũng cần phải có những năng lực tính toán mạnh mẽ hơn Có thể giải quyết vấn đề này bằng hai cách:
- Thứ nhất: Đầu tư thêm trang thiết bị, cơ sở hạ tầng tính toán (mua thêm máy
chủ, máy trạm, siêu máy tính, cluster ) Rõ ràng là cách làm này hết sức tốn kém
- Thứ hai: Một cách thực hiện hiệu quả hơn là phân bố lại hợp lý các nguồn tài
nguyên trong tổ chức hoặc thuê thêm các nguồn tài nguyên từ bên ngoài (dĩ nhiên là với chi phí rẻ hơn nhiều so với việc đầu tư cho cơ sở hạ tầng tính toán) Thực tế cho thấy có một phần lớn các nguồn tài nguyên của chúng ta đang bị sử dụng lãng phí: các máy để bàn công sở thường chỉ hoạt động khoảng 5% công suất, ngay cả các máy chủ cũng có thể chỉ phải hoạt động với 20% công suất Việc tận dụng hiệu quả các nguồn tài nguyên này có thể mang lại một sức mạnh tính toán khổng lồ
Cách giải quyết thứ hai này chính là mục tiêu của tính toán lưới Tính toán lưới hướng đến việc chia sẻ và sử dụng hiệu quả các nguồn tài nguyên thuộc về nhiều tổ chức trên một quy mô rộng lớn (thậm chí là quy mô toàn cầu) Chính các công nghệ mạng và truyền thông phát triển mạnh mẽ trong những năm qua đã biến những khả năng này dần trở thành hiện thực Các nghiên cứu về tính toán lưới đã và đang được tiến hành nhằm tạo
ra một cơ sở hạ tầng lưới cho phép dễ dàng chia sẻ và quản lý các tài nguyên đa dạng và phân tán trong môi trường lưới
- Các thách thức mà công nghệ tính toán lưới đang phải giải quyết bao gồm:
- Các tài nguyên hết sức đa dạng, không đồng nhất Tài nguyên ở đây được hiểu theo nghĩa hết sức tổng quát Đó có thể là các tài nguyên phần cứng: tài nguyên tính toán, tài nguyên lưu trữ, các thiết bị đặc biệt khác ; các tài nguyên phần mềm: các cơ sở dữ liệu, các phần mềm đặc biệt và đắt giá ; các đường truyền mạng
- Các tài nguyên này có thể rất khác nhau vềmặt kiến trúc, giao diện, khả năng
xử lý Việc tạo ra một giao diện thống nhất cho phép khai thác và sử dụng hiệu quả các nguồn tài nguyên này hoàn toàn không dễ dàng Ban đầu tính toán lưới được đặt ra chủ yếu là để tận dụng các nguồn tài nguyên tính toán nhưng
Trang 5hiện nay mục tiêu của nó đã được mở rộng sang rất nhiều nguồn tài nguyên khác như đã kể trên.
- Các tài nguyên không chỉ thuộc vềmột tổ chức mà thuộc về rất nhiều tổ chức tham gia lưới Các tổ chức phải tuân thủ một số quy định chung khi tham gia vào lưới còn nhìn chung là hoạt động độc lập tức là các tài nguyên này đều có quyền tự trị Các tổ chức khác nhau thường có chính sách sử dụng hay cho thuê tài nguyên của họ khác nhau và do vậy cũng gây khó khăn cho việc quản lý
- Các tài nguyên phân tán rộng khắp về mặt địa lý do vậy phải có các cơ chế quản lý phân tán
- Đảm bảo an toàn thông tin cho một môi trường phức tạp như môi trường lưới
là rất khó khăn trong khi đây là một trong những điểm ưu tiên hàng đầu
Trang 6II Một số khái niệm cơ bản
II.1 Tính toán nâng cao
Tính toán nâng cao (Advanced Computing) là một thuật ngữ chung nói đến các
dạng tính toán vượt xa những tinh toán tiêu dùng, kinh doanh hàng ngày Thường bao hàm một số thứ liên quan đến các thanh phần tính toán nhanh chông và tích hợp nhiều thành phần như thế
Trong một vài trường hợp cũng có thể hiểu Tính toán nâng cao là những phần mềm tiên tiến (advanced softwares), nhưng thường thì để chỉ về những phần cứng tiên tiến (advanced hardwares)
II.2 CyberInfrastructure
Cyberinfrastructure là sự tích hợp các tiềm năng đa dạng phong phú của những máy tính, màn hình, các thiết bị ảo hóa, dữ liệu, hệ thống lưu trữ, dụng cụ, cảm biến, … thông qua phần mềm và mạng máy tính để :
- Cung cấp khả năng toàn diện
- Cung cấp khả năng tổng hợp
- Đôi khi cũng dùng để chia sẻ tài nguyên
II.3 Tính toán hiệu năng cao
Siêu máy tính (Super computer), một thuật ngữ cũ, là một máy tính vượt trội trong khả năng và tốc độ xử lý Thuật ngữ Siêu Tính Toán được dùng lần đầu trong báo New York World vào năm 1920 để nói đến những bảng tính (tabulators) lớn của IBM làm cho trường Đại học Columbia Siêu máy tính hiện nay có tốc độ xử lý hàng nghìn teraflop (một teraflop tương đương với hiệu suất một nghìn tỷ phép tính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính hiện đại nhất hiện nay gộp lại (một máy có tốc độ khoảng
từ 3-3,8 gigaflop)
Có thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song
Tính toán song song (Parallel Computing) là quá trinh tích hợp nhiều máy tính hoặc bộ vi xử lý để giải quyết vấn đề bằng cách phân chia công việc
Tính toán hiệu năng cao (High-Performance Computing HPC) là công nghệ liên quan đến sử dụng Siêu máy tính và các quá trình song song để giải quyết nhiều phép tính phức tạp cùng một lúc một cách nhanh chóng, hiệu quả, chính xác, ổn định và tin cậy nhất mà máy tính cá nhân hoặc lớn hơn như workstations không làm được, dù nối rất nhiều máy tính cá nhân với nhau
Trang 7Siêu máy tính IBM Blue Gene/L nhanh nhất thế giới
Ví dụ, với những công tác thống kê để tính toán về lưu lượng giao thông ở một thành phố, hay biến đổi khí hậu, tình trạng ngập úng đô thị hoặc lớn hơn là kinh tế của một quốc gia các chuyên gia cần đến HPC mới có thể cho ra đời những lời giải về cách giải quyết những tình huống phát sinh
II.4 Tính toán phân tán
Tính toán phân tán (Distributed Computing) bao gồm bất kỳ dạng tính toán nào
mà sử dụng nhiều hơn một máy tính được kết nối với mạng máy tính
Chúng ta sử dụng tính toán phân tán hàng ngày với các ứng ụng web, email, …II.5 Tính toán lưới
Tính toán lưới (Grid Computing) sử dụng tính toán phân tán để cho phép sử dụng
đa máy tính (các máy tính này thường được phân tán khác nhau theo địa lý), vì những mục đích sau :
- Chia sẻ tài nguyên
- Chia sẻ dữ liệu
- Các ứng dụng quy trinh làm việc
Trang 8- Tích hợp nhiều hệ thống (ứng dụng kép, siêu tính toán - metacomputing, tính toán năng suất cao - high throughput computing)
II.6 Điện toán đám mây
Điện toán đám mây (Cloud Computing), còn gọi là điện toán máy chủ ảo, là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet
Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được
bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các
cơ sở hạ tầng chứa trong nó
Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó
Theo tổ chức Xã hội máy tính IEEE “Điện toán đám mây là hình mẫu trong đó thông tin được lưu trữ thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các phương tiện máy tính cầm tay, ” Điện toán đám mây là khái niệm tổng thể bao gồm cả các khái niệm như phần mềm dịch vụ, Web 2.0 và các vấn đề khác
Trang 9xuất hiện gần đây, các xu hướng công nghệ nổi bật, trong đó đề tài chủ yếu của nó là vấn
đề dựa vào Internet để đáp ứng những nhu cầu điện toán của người dùng
Ví dụ, dịch vụ Google AppEngine cung cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy nhập từ một trình duyệt web, còn các phần mềm và dữ liệu đều được lưu trữ trên các máy chủ
II.7 Tính toán năng suất cao
Tính toán năng suất cao (High Throughput Computing – HTC) sử dụng công nghệ tính toán phân tán (có khả năng tính toán lưới) để cho phép nhiều công việc được sắp xếp
để sử dụng nguồn lực có sẵn để hoan thành một các nhanh nhất có thể
Thuật ngữ này được phổ biến bởi dự án Condor (Miron Livny, đại học Wisconsin)
Ví dụ các dự án sử dụng công nghệ HTC như :
- Condor flocks: http://www.cs.wisc.edu/condor/
- World Community Grid: http://www.worldcommunitygrid.org
- LHC Project
- Open Science Grid
- …II.8 Tính toán đa tiến trinh
Tính toán đa tiến trình (Many-task computing) là một thuật ngữ mới, được cho là
tương tự như High Throughput Computing
“Sự thực thi một cách độc lập, các công việc liên tiếp có thể được sắp xếp một cách riêng biệt trên nhiều nguồn tài nguyên tính toán khác nhau trên nhiều biên giới hành chính” (Ian Foster)
Trong tính toán, đa tiến trình là một phương thức sử dụng nhiều tiến trình Những công việc chia sẻ nguồn tiến trình chung, như là CPU và bộ nhớ chính Trong trường hợp máy tính với CPU đơn thì chỉ một công việc được tiến hành tại một thời điểm Nhiều tiến trình được giải quyết bằng cách sắp xếp công việc nào có thể một lần thực thi tại thời điểm được sắp xếp, và khi một công việc khác đợi để quay vòng Việc đăng ký lại một CPU từ một task đến một task khác gọi là context switch Khi context switch xảy ra một cách thường xuyên đủ để sự song song ảo được thực hiện.Ngay cả trên những máy tính với nhiều CPU , đa tiến trình cho phép nhiều task có thể thực thi hơn so với nhiều CPU
Hệ điều hành có thể làm theo một trong những chiến lược sau:
- Trong hệ thống đa chương trình (Multiprogramming System), task đang thực
thi được thực thi cho tới khi nó gọi một thao tác yêu cầu đợi một sự kiện bên
Trang 10ngoài hoặc cho tới khi hết lịch biểu, phải hoán đồi cho một task khác ngoài CPU Hệ thống này được thiết kế để sử dụng tối đa hiệu năng của CPU.
- Trong thống hệ chia sẻ thời gian (Time-Sharing Systems), task đang thực thi
được yêu cầu phải nhường CPU, hoặc do tự nó, hoặc bởi sự tác động của sự kiện bên ngoài Hệ thống này được thiết kế để cho phép một vài chương trình thực thi cùng một lúc
- Trong hệ thống thời gian thực, một vài task đang chờ đợi được bảo đảm đưa tới CPU khi một sự kiện bên ngoài xảy ra Hệ thống này được thiết kế để điều khiển các thiết bị máy móc như robot, …
Trang 11III Tính toán lưới
III.1 Khái niệm
IV
V Khái niệm Tính toán lưới đã bắt đầu xuất hiện vào đầu thập niên 90 với nghĩa ẩn dụ là làm cho việc sử dụng sức mạnh của máy tính dễ dàng như là việc sử dụng điện năng Ngày nay có rất nhiều định nghĩa về tính toán lưới Một định nghĩa về Grid khá hoàn chỉnh được đưa ra bởi tiến sỹ Ian Foster như sau:
VI “Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn,
kết hợp các tài nguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng, khả năng, chi phí của chúng và yêu cầu về chất lượng dịch vụ(QoS) của người dùng để giải quyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại Từ đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạm thời giữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năng nhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính”
VI.1 Đặc trưng của một hệ thống lưới
Trang 12VII 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 trung giả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
VIII 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
IX Đá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ợp nhiề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ải phố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
IX.1 Tài nguyên của hệ thống tính toán lưới
X 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:
- 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
XI 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
XII 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ề
Trang 13băng thông trong những trường hợp như vậy là một tài nguyên then chốt, ảnh hưởng đến khả năng của Grid
XIII 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
XIV 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
XV 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
XV.1 Kiến trúc Grid
XV.1.1 Bản chất Kiến trúc Grid
XVI “Tổ chức ảo” (VO) là đơn vị cơ bản quan trọng trong hệ thống Grid Việc thiết lập, quản lý, khai thác các quan hệ chia sẻ tài nguyên giữa các tổ chức ảo đòi hỏi phải có kiến trúc hệ thống mới, kiến trúc Grid Kiến trúc Grid dưới đây được xây dựng dựa trên quan niệm “để các VO hoạt động hiệu quả đòi hỏi phải thiết lập được các quan
hệ chia sẻvới bất kỳ đơn vị tham gia tiềm năng nào” Để làm được điều này, vấn đề “liên kết hoạt động” (interoperability) cần phải được tập trung giải quyết
XVII 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
XVIII.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
XIX 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
Trang 14XX 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ôn ngữ, 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 sá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 Cũng giống như Web đã làm bùng nổ việc chia sẻ thông tin bằng cách cung cấp các protocol và cú pháp chuẩn (HTTP và HTML) dùng cho việc trao đổi thông tin, ở đây cũng cần các protocol và cú pháp chuẩn để chia sẻ tài nguyên
XXI Để giải quyết vấn đề “liên kết hoạt động”, việc xây dựng các protocol là
quan trọng Vì protocol xác định cách các thành phần phân tán trao đổi với nhau để đạt được một mục đích nào đó, xác định các cấu trúc thông tin cần thiết trong quá trình trao đổi Các VO thường hay thay đổi, nên các cơ chế xác định, chia sẻ và sử dụng tài nguyên cần phải mềm dẻo, gọn nhẹ, để các thỏa thuận chia sẻ tài nguyên có thểđược thiết lập, thay đổi một cách nhanh chóng Các cơ chế chia sẻ không được ảnh hưởng đến các chính sách cục bộ, và phải cho phép các thành viên quản lý được các tài nguyên của họ Vì các protocol quy định việc giao tiếp giữa các thành viên chứ không quy định thành viên đó phải như thế nào, nên khi dùng các protocol, các chính sách cục bộ được giữ lại Do đó các protocol được cần đến
XXII Khi đã có các protocol, thì việc xây dựng các service là cần thiết và quan trọng, các service là bản cài đặt cụ thể của các protocol Việc xây dựng các service cơ bản phục vụ truy cập đến tài nguyên tính toán, dữ liệu, tìm kiếm tài nguyên, lập lịch và đồng
bộ hoá, sao chép dữ liệu,… cho phép xây dựng các service cao cấp hơn cho ứng dụng đồng thời trừu tượng hoá các chi tiết về tài nguyên Cũng cần phải xây dựng các bộAPI
và SDK, vì các nhà phát triển ứng dụng cần phải có công cụ để hỗ trợ phát triển các ứng dụng phức tạp trong môi trường Grid, người dùng cũng phải có khả năng thực thi được các ứng dụng này Sức mạnh, tính đúng đắn của ứng dụng, chi phí phát triển và bảo trì là những mối quan tâm quan trọng Các API và SDK có thể giúp tăng tốc việc phát triển mã, cho phép chia sẻ mã, tăng tính khả chuyển cho ứng dụng Tất nhiên, API và SDK chỉ hỗ trợ thêm chứ không thể thay thế các protocol được
XXII.1.1 Kiến trúc Grid tổng quát
XXIII.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
XXIV Kiến trúc Grid, theo Ian Foster, là một kiến trúc phân tầng nhưtrong hình
2-8 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ừ
Trang 15bấ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ở
XXV 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
XXVI
XXVII
XXVIII Tầng Fabric
XXIX.Đâ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 cho mộ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
XXX Cá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
Trang 16thô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ụ.
XXXI.Tầng Connectivity
XXXII 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,…)
XXXIII 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
XXXIV Tầng Resource
XXXV 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ương lượng, khởi tạo, theo dõi, điều khiể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ộ
XXXVI 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
XXXVII 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ình hiệ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ư
Trang 17tạ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
XXXVIII 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à đủ
XXXIX 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
- Directory service: Cho phép các thành phần tham gia VO phát hiện sự tồn tại
và/hoặc đặc tính của các tài nguyên trong VO Một directory service có thểcho phép người truy vấn tài nguyên qua tên và/hay các thuộc tính như kiểu, khả năng, tải, …
- Co-allocation, scheduling, và broker service: Cho phép các thành phần tham
gia VO yêu cầu cấp phát các tài nguyên cho các mục đích cụ thể và lập lịch cho các tác vụ trên các tài nguyên tương ứng
- Monitoring ang dianostics sevice: Hỗ trợ việc kiểm soát các tài nguyên của
VO, kiểm tra xem có bị lỗi, bị tấn công, bị quá tải,… hay không
- Data replication service: Hỗ trợ quản lý tài nguyên lưu trữ của VO để tối ưu
hiệu suất truy cập dữ liệu theo các độ đo như thời gian đáp ứng, tính toàn vẹn, tin cậy, chi phí, …
Trang 18- Grid-enable programming system: Cho phép các sử dụng các mô hình lập trình
hiện tại trong môi trường Grid, sử dụng nhiều loại dịch vụ Grid để giải quyết các vấn đề như phát hiện, tìm kiếm tài nguyên, bảo mật, cấp phát tài nguyên,…
- Workload management system and collaboration framework: Cung cấp khả
năng đặc tả, sử dụng, quản lý các luồng công việc đa thành phần, bất đồng bộvà qua nhiều bước
- Software discovery service: Tìm kiếm và chọn ra các cài đặt phần mềm tốt nhất
và môi trường thực thi dựa theo ứng dụng cần được giải quyết
- Community authorization server: Thực hiện các chính sách công cộng quản lý
truy cập tài nguyên, cho phép các thành viên của cộng đồng truy cập đến các nguyên dùng chung Các server này sử dụng các dịch vụ xây dựng trên các protocol thông tin, quản lý tài nguyên của tầng Resource và protocol bảo mật ởtầng Connectivity
- Community accounting and payment service: Thu thập các thông tin sử dụng
tài nguyên để tính toán chi phí, thực hiện chi trả và/hoặc giới hạn việc sử dụng tài nguyên của người dùng trong cộng đồng
- Collaboratory service: Hỗ trợ việc trao đổi thông tin đồng bộvà bất đồng bộ trong cộng đồng người dùng
XLIII Các protocol và dịch vụ tầng Collective rất phong phú, đa dạng Trong khi các protocol tầng Resource phải là các protocol tổng quát và triển khai rộng rãi, thì các protocol tầng Collective có thể trải dài từ việc phục vụ các vấn đề chung trong Grid đến việc phục vụ cho các lĩnh vực ứng dụng cụ thể, có thể chỉ tồn tại trong các VO cụ thể Theo nguyên tắc, càng phục vụ nhiều người dùng thì các protocol và API của tầng Collective càng phải được dựa theo chuẩn
XLIV 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
XLV Tầng Application
XLVI 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ột trường VO
Trang 19XLVII 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).XLVIII Các tầng trong kiến trúc trên có thể được hiện thực hóa bằng nhiều sản phẩm khác nhau, được phát triển bởi nhiều nhà phát triển phần mềm, các tổ chức, cộng đồng mã nguồn mở, các nhà sản xuất máy tính trên khắp thế giới
XLVIII.1.Kiến trúc Grid trong thực tế
XLIX Trong thực tế, kiến trúc Grid tổng quan đã được cài đặt và xây 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:
- 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): Tận dụng các giao diện ởtầng Core
Middleware để cung cấp các dịch vụ có mức độ trừu tượng cao hơn Tầng này bao gồm các môi trường phát triển phần mềm, công cụ lập trình, resource broker, bộ lập lịch,…
- Tầng Application và Portal (Application): Giống như tầng Fabric trong kiến
trúc tổng quát
XLIX.1 Chuẩn hoá Grid
Trang 20L Một trong những vấn đề lớn của bất kỳ công nghệ tính toán nào là làm sao
để các thành phần khác nhau có thể “nói chuyện” được với nhau Không có gì quan trọng
hơn việc làm cho các nền tảng khác nhau giao tiếp được với nhau Đây cũng là một trong
những thách thức của công nghệ Grid Computing Bởi vì công nghệ Grid Computing cần
phải đáp ứng nhiều nhu cầu khác nhau, hỗ trợ nhiều loại công nghệ, tài nguyên, trải rộng khắp thế giới, do nhiều tổ chức tham gia xây dựng, nên để các thành phần Grid, ứng dụng Grid tương thích được với nhau cần phải có một chuẩn chung, một ngôn ngữ chung thống nhất cho toàn bộ nền công nghệ Trong công nghệ Grid Computing, việc thiếu chuẩn hóa
sẽ dẫn đến toàn bộ các công ty, tổ chức, nhà phát triển xây dựng, phát triển công nghệ với các kỹ thuật và giải pháp khác nhau Trong thế giới riêng của mỗi nhóm phát triển Grid thì có thể không là vấn đề lớn, nhưng khi mở rộng môi trường Grid, liên kết các nhóm vào thế giới rộng hơn thì đây lại là vấn đề lớn, nó sẽ gây ra sự chia cắt, bất đồng và nhiều hạn chế khác
LI Việc xây dựng và áp dụng các chuẩn trong Grid mang lại lợi ích rất lớn, cơ bản nhất là mang lại khả năng mở rộng các số lượng tài nguyên sẵn sàng cho Grid Bên cạnh đó, còn mang lại nhiều lợi ích khác như:
- Liên kết hoạt động: Cho phép các hệ thống Grid có thể được thiết kế và phát
triển theo nhiều ngôn ngữ lập trình, nhiều môi trường, nhiều nền tảng khác nhau một cách dễ dàng và hiệu quả
- Tăng tính mềm dẻo: Với sự chuẩn hóa, người dùng có thể chuyển đổi qua lại
giữa các hệ thống Grid, có nhiều lựa chọn hơn trong việc xây dựng các dự án
- Tăng năng lực của Grid: Khi có nhiều môi trường và nền tảng được hỗ trợ
hơn, khả năng phát hành các dịch vụ sẽ dễ dàng hơn, và từ đó sẽ làm tăng năng lực của hệ thống Grid
- Tăng tốc độ phát triển ứng dụng: Sử dụng các bộ toolkit được chuẩn hóa sẽ
làm giảm thời xây dựng, phát triển các hệ thống Grid Thay vì dành nhiều thời gian cho việc xây dựng các chức năng giao tiếp, các hệ thống quản lý, với việc
sử dụng các hệ thống chuẩn hoá có sẵn, các nhà phát triển ứng dụng sẽ có nhiều thời gian hơn để tối ưu các chức năng xử lý dữ liệu
LII Để đáp ứng nhu cầu đó, tổ chức Global Grid Forum(GGF) ra đời với thành viên là hầu hết các nhà nghiên cứu, các tổ chức hàng đầu trong việc xây dựng công nghệ Grid Computing GGF đã và đang phát triển các chuẩn về Grid Computing như: Open Grid Services Architecture (OGSA), Open Grid Services Infrastructure (OGSI), Web Services Resource Framework (WSRF)