Nó cho phép tận dụng năng lực xử lý, lưu trữ cùng các tài nguyên nhàn rỗi khác để cung cấp một môi trường tính toán có năng lực xử lý lớn, khả năng lưu trữ dồi dào để giải quyết các bài
Trang 1ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Hà Thị Thúy
MÔ HÌNH TÍNH TOÁN LƯỚI VÀ ỨNG DỤNG GIẢI
MỘT SỐ BÀI TOÁN TRÊN ĐỒ THỊ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2013
Trang 2Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG
HÀ THỊ THUÝ
MƠ HÌNH TÍNH TỐN LƯỚI VÀ ỨNG DỤNG GIẢI
MỘT SỐ BÀI TỐN TRÊN ĐỒ THỊ
Chuyên ngành : Khoa học máy tính
Mã số : 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐỒN VĂN BAN
Thái Nguyên - 2013
Trang 3Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
LỜI CAM ĐOAN
Tơi xin cam đoan những kiến thức trình bày trong luận văn này là do tơi tìm hiểu, nghiên cứu và trình bày lại theo cách hiểu của tơi Trong quá trình làm luận văn tơi cĩ tham khảo các tài liệu cĩ liên quan và đã ghi rõ nguồn tài liệu tham khảo đĩ Phần lớn những kiến thức tơi trình bày trong luận văn này chưa được trình bày hồn chỉnh trong bất cứ tài liệu nào
Trang 4Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
LỜI CẢM ƠN
Lời đầu tiên, tơi xin gửi lời cảm ơn chân thành và biết ơn sâu sắc nhất tới
PGS.TS Đồn Văn Ban, người thầy đã chỉ bảo và hướng dẫn tận tình cho tơi trong
suốt quá trình nghiên cứu khoa học và thực hiện luận văn này
Tơi xin chân thành cảm ơn các thầy cơ giáo, cán bộ thuộc phịng Khoa học và Đào tạo, Trường Đại học Cơng nghệ thơng tin & Truyền thơng Thái Nguyên, đã tạo điều kiện thuận lợi giúp đỡ tơi trong quá trình học tập và nghiên cứu
Và cuối cùng, tơi xin gửi lời cảm ơn tới gia đình, người thân và bạn bè - đồng nghiệp - những người đã luơn bên cạnh tơi những lúc khĩ khăn nhất, động viên và khích lệ tơi trong cuộc sống và trong cơng việc
Tơi xin chân thành cảm ơn!
Trang 5Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC TỪ VIẾT TẮT
DANH MỤC HÌNH VẼ
LỜI MỞ ĐẦU 1
CHƯƠNG 1 GIỚI THIỆU VỀ CƠNG NGHỆ TÍNH TỐN LƯỚI 2
1.1 Giới thiệu về mơ hình tính tốn lưới 2
1.1.1 Quá trình phát triển của tính tốn lưới 2
1.1.2 Khái niệm tính tốn lưới 4
1.1.3 Lợi ích của tính tốn lưới 6
1.1.4 Các dạng tài nguyên trên lưới 9
1.1.5 So sánh tính tốn lưới với các cơng nghệ khác 12
1.2 Phân loại lưới 15
1.2.1 Lưới phịng ban (Departmental Grids) 15
1.2.2 Lưới doanh nghiệp (Enterprise Grids) 16
1.2.3 Lưới tồn cầu (Global Grids) 16
1.2.4 Lưới tính tốn (Compute Grids) 17
1.2.5 Lưới dữ liệu (Data Grids) 17
1.2.6 Lưới tiện ích (Utility Grids) 18
1.3 Vấn đề an tồn thơng tin và những thách thức đối với tính tốn lưới 18
1.3.1 An tồn thơng tin trong tính tốn lưới 18
1.3.2 Những thách thức với một lưới 20
1.4 Kết luận 20
CHƯƠNG 2 PHÁT TRIỂN ỨNG DỤNG TRÊN MƠI TRƯỜNG TÍNH TỐN LƯỚI 22 2.1 Cơ sở hạ tầng lưới 22
Trang 6Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
2.1.1 Portal/Giao diện người dùng 22
2.1.2 An tồn và bảo mật (Security) 23
2.1.3 Bộ mơi giới tài nguyên (Broker) 23
2.1.4 Bộ lập lịch (scheduler) 23
2.1.5 Thành phần quản lý dữ liệu (Data management) 24
2.1.6 Thành phần quản lý cơng việc và tài nguyên (Job and resource management) 24
2.1.7 Các thành phần khác 24
2.2 Kiến trúc của một lưới 25
2.2.1 Bản chất kiến trúc 25
2.2.2 Kiến trúc lưới tổng quát 27
2.2.3 Các chuẩn đối với tính tốn lưới 32
2.3 Một số mơi trường và cơng cụ hỗ trợ tính tốn lưới 38
2.3.1 Alchemi 39
2.3.2 Globus 40
2.3.3 Legion 47
2.3.4 UNICORE 48
2.4 Các vấn đề khi lập trình trên lưới 51
2.4.1 Các yêu cầu đối với lập trình trên lưới 51
2.4.2 Các vấn đề cần quan tâm khi lập trình trên lưới 53
2.5 Kết luận 60
CHƯƠNG 3 GIẢI MỘT SỐ BÀI TỐN ĐỒ THỊ TRÊN MƠI TRƯỜNG LƯỚI 61
3.1 Các khái niệm cơ bản 61
3.1.1 Đồ thị 61
3.1.2 Đường đi 62
3.2 Thuật tốn Dijkstra 63
3.2.1 Thuật tốn tuần tự 63
Trang 7Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
3.2.2 Song song thuật tốn Dijkstra trên lưới 63
3.2.3 Thực nghiệm chương trình 64
3.3 Thuật tốn tơ mầu đồ thị 66
3.3.1 Thuật tốn tuần tự 67
3.3.2 Song song trên lưới 67
3.3.3 Thực nghiệm chương trình 68
3 4 Kết luận 70
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71
TÀI LIỆU THAM KHẢO 73
Trang 8Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
DANH MỤC TỪ VIẾT TẮT
API Application Programming Interface Giao diện lập trình ứng dụng
CMM Common Management Model Quản lý chung mẫu
CORBA Common Object Request Broker
Architecture
Yêu cầu chung kiến trúc đối tượng mơi giới
CPU Center Processing Unit Bộ xử lý trung tâm
DAP Directory Access Protocol
Giao thức đặc tả các kỹ thuật định danh đối tượng, tìm kiếm
và ghi các khoản mục dữ liệu DCOM Digital Computer Thiết bị khơng dây
DNS Domain Name System Hệ thống phân giải tên miền
FTP File Transfer Protocol Giao thức truyền tệp qua mạng
TCP GGF Global Grid Forum Diễn đàn lưới tồn cầu
GRAM Globus Resource Allocation
Management
Dịch vụ quản lý và định vị tài nguyên lưới
GridFTP Grid File Transfer Protocol
GridFTP là mở rộng của giao thức FTP, tích hợp khả năng bảo mật lưới, truyền dữ liệu tốt hơn so với FTP
GSH Grid Service Handle Lưới dịch vụ xử lý
GSR Grid Service Reference Lưới dịch vụ tham khảo
GSS-API Generic Security Service Application
Program Interface
Giao diện lập trình ứng dụng dịch vụ bảo mật chung
Trang 9Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
GT Globus Toolkit
Bộ cơng cụ được phát triển bởi Globus Alliance, dùng đê phát triên các ứng dụng lưới
GTCP Grid Telecontrol Protocol Giao thức điều khiển lưới từ xa
GUI Graphical User Interface Giao diện người dùng đồ họa
HPC High Performance Computing Tính tốn hiệu năng cao
HTML Hyper Text Markup Language Ngơn ngữ hiển thị siêu văn bản
HTTP Hyper Text Transfer Protocol Giao thức truyền siêu văn bản
IBM International Business Machines
tập đồn cơng nghệ máy tính đa quốc gia cĩ trụ sở tại Armonk, New York, Mỹ
ICMP Internetwork Control Message
IP Internet Protocal Giao thức Internet
IT Information Technology Cơng nghệ thơng tin
J2EE Java 2 Enterprise Edittion Java doanh nghiệp phiên bản 2
JMC Job Monitor Component Cấu tạo màn hình cơng việc
LAN Local Area Network Mạng cục bộ
MDS Monitoring and Discovery Service Giám sát dịch vụ
NCSA National computer security association Hiệp hội an ninh máy tính quốc
gia
Trang 10Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
NFS National Science Foundation Quỹ khoa học quốc gia
NJS Network Job Supervisors Mạng lưới giám sát cơng việc
OGSA Open Grid Service Architecture Kiến trúc dịch vụ lưới
OGSI Open Grid Service Infrastructure Hạ tầng dịch vụ lưới mở
OSPF Open Shortest Path First Giao thức tìm đường ngắn nhất
đầu tiên
PC Personal Computer Máy tính cá nhân
PU Processing Unit Đơn vị xử lý
PVM Parallel Virtual Machine Song song máy ảo
QoS Quality of Service Chất lượng dịch vụ
RFT Reliable File TransferService Dịch vụ truyền file tin cậy
RLS Replica Location Service
Dịch vụ định vị bản sao trong kiến trúc lưới dữ liệu Globus, cho phép xác định vị trí của các bản sao của thực thể dữ liệu trong lưới
RMI Remote Method Invocation Gọi phương thức từ xa
RPC Remote Procedure Call Lời gọi hàm xa
SAML Security Assertion Markup Language Ngơn ngữ đánh dấu liên kết an
tồn SDK Software Development Kit Tập cơng cụ hỗ trợ phát triển
phần mềm
Trang 11Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
SOAP Simple Object Acess Protocol Giao thức truy cập đối tượng
đơn giản
SSL Secure Socket Layer Giao thức bảo mật lưới
TCP Transmission Control Protocol Giao thức Điều khiển Giao vận
TLS Transport Layer Security Giao thức bảo mật tầng giao
vận
UDP User Datagram Protocol Giao thức sử dụng gĩi
VO Virtual Organizations Các tổ chức ảo
VPN Virtual Private Networks Mạng riêng ảo
WAN Wide Area Network Mạng diện rộng
WS Web Service Dịch vụ web
WSDL Web Service Deployment Descriptor
Language Ngơn ngữ đặc tả dịch vụ web WSIL WS- Inspection Language Dịch vụ web kiểm tra ngơn ngữ
WSRF Web Services Resource Framework
Framework đưa ra bởi GT4 hỗ trợ kiến trúc lập
trình mới WWW World Wide Web Mạng lưới tồn cầu
XML Extensible Markup Language
Là một cách thức linh động để tạo ra các định dạng thơng tin
và chia sẻ cả định dạng và dữ liệu trên web
Trang 12DANH MỤC HÌNH VẼ
Trang
Hình 1.2 Tài nguyên lưới dưới quan điểm của người dùng là một khối
Hình 2.5 Mô hình kiến trúc hoạt động của UNICORE 49
Hình 3.7 Giao diện chương trình trên client - thuật toán Dijkstra 66
Hình 3.8 Giao diện chương trình trên máy server - thuật toán tô màu
Hình 3.9 Giao diện chương trình trên client - thuật toán tô màu đồ thị 69
Trang 13LỜI MỞ ĐẦU
Nhân loại ngày nay đang chứng kiến sự phát triển mạnh mẽ của ngành Công nghệ Thông tin, một trong những ngành mũi nhọn của nhiều quốc gia trên thế giới Sự phát triển vượt bậc đó là kết quả tất yếu của sự phát triển kèm theo các thiết bị phần cứng cũng như phần mềm tiện ích
Sự phát triển đó đã kéo theo rất nhiều các ngành khác phát triển theo, trong đó
có lĩnh vực nghiên cứu khoa học Tuy công nghệ ngày càng phát triển, tốc độ xử lý các thiết bị cũng không ngừng tăng cao, nhưng nhu cầu tính toán của con người là không giới hạn, vì thế tính toán lưới đã ra đời nhằm đáp ứng nhu cầu này
Công nghệ tính toán lưới ra đời đánh dấu một bước phát triển mới Trong lĩnh vực điện toán hiệu năng cao Nó cho phép tận dụng năng lực xử lý, lưu trữ cùng các tài nguyên nhàn rỗi khác để cung cấp một môi trường tính toán có năng lực xử lý lớn, khả năng lưu trữ dồi dào để giải quyết các bài toán phức tạp - khó có thể giải quyết được với các công nghệ hiện hành hoặc giải quyết được nhưng với chi phí rất cao - trong khoa học, thương mại Tính toán lưới giúp tận dụng tối đa tài nguyên, tăng cường hợp tác, giảm chi phí đầu tư trong khi vẫn cung cấp năng lực tính toán như mong muốn Hiện nay, đất nước ta đang thực hiện công cuộc công nghiệp hoá, hiện đại hóa, trong đó việc rút ngắn sự tụt hậu, phát triển về khoa học công nghệ là yếu tố then chốt quyết định đến thành công của công cuộc đổi mới Cấu trúc của luận văn bao gồm các mục sau:
Chương 1: Giới thiệu về công nghệ tính toán lưới
Chương 2: Phát triển ứng dụng trên môi trường tính toán lưới
Chương 3: Giải một số bài toán đồ thị trên môi trường lưới
Kết luận, hướng phát triển và tài liệu tham khảo được trình bày ở phần cuối
của luận văn
Trang 14CHƯƠNG 1 GIỚI THIỆU VỀ CÔNG NGHỆ TÍNH TOÁN LƯỚI
1.1 Giới thiệu về mô hình tính toán lưới
1.1.1 Quá trình phát triển của tính toán lưới
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 [1]:
Một là: Đầ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, cụm máy tính (cluster), )
Hai 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)
Cách giải quyết thứ hai này chính là mục tiêu và nguồn gốc yêu cầu cho sự hình thành của tính toán lưới Các nhà khoa học tại Argone National Laboratory thuộc đại học Chicago (Mỹ) là những người đầu tiên đề xuất ý tưởng về 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ô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
Giống như Internet, khái niệm lưới (Grid) đã phát triển từ những nhu cầu về tính toán khoa học lớn Internet được phát triển để thoả mãn nhu cầu về một phương tiện liên lạc giữa các trung tâm tính toán lớn do liên bang đầu tư Những sự liên kết này dẫn tới việc chia sẻ tài nguyên và thông tin giữa các trung tâm này và sau đó là cung cấp sự
Trang 15truy nhập tới các tài nguyên cho các nhiều người sử dụng Các thủ tục chia sẻ tài nguyên đặc biệt giữa các nhóm này đã hình thành phương thức để chuẩn hoá những giao thức cần để trao đổi thông tin giữa các khu vực hành chính Công nghệ lưới có thể xem như một mở rộng hoặc một ứng dụng của nền tảng này để tạo nên phương thức chia sẻ tài nguyên tổng quát [13]
Dự án phi lợi nhuận Seti@home là một trong những nhân tố khoa học nổi tiếng thúc đẩy việc tạo ra một dự án tính toán lưới đơn giản bằng cách thu thập tất cả các tài nguyên CPU chưa được sử dụng (những người theo chủ nghĩa lưới thuần túy cho rằng CPUi@home thực chất là một ứng dụng tính toán phân tán bởi nó hầu như không thúc đẩy việc sử dụng bất kỳ một khái niệm lưới nào) Seti@home không phải là dự án đầu tiên mở đường cho kỹ thuật này Việc tận dụng tài nguyên CPU trên các máy trong mạng cục bộ đã bắt đầu từ thập niên 1970 với những dự án phi lợi nhuận như distributed.net nhưng Seti@home nổi tiếng bởi dự án này được ứng dụng vào rất nhiều
dự án khác như dự đoán cấu trúc protein, nghiên cứu thuốc cho bệnh ung thư, giải các bài toán phức tạp và dự báo thời tiết Hầu hết những dự án này đều thực hiện dưới dạng các tiến trình chạy trên các máy tính cá nhân, xử lý những phần dữ liệu nhỏ khi máy tính ở trạng thái chờ hoặc sử dụng ít tài nguyên Nhiều dự án như vậy đã bị kéo dài hoặc tốn quá nhiều tiền [13]
Vào năm 1997, một trong những dịch vụ tính toán lưới thương mại đầu tiên đã được Entropia cung cấp, và tới nay có rất nhiều dịch vụ như vậy do các công ty và các phòng thí nghiệm thực hiện Một điểm khác biệt quan trong giữa các lưới và các dự án gần giống lưới là trong tính toán lưới cho phép di trú các nhiệm vụ tính toán tới tất cả các nút tính toán trên lưới để thực thi Chẳng hạn chương trình xử lý ảnh viễn vọng Seti@home chứa cả mã xử lý dữ liệu từ kính viễn vọng vô tuyến và mã để lấy dữ liệu
từ cơ sở dữ liệu và trả lại kết quả Hai đoạn mã này được trộn lẫn vào một chương trình Trong lưới, chỉ có các đoạn mã đòi hỏi phải truy vấn cơ sở dữ liệu và trả về kết
Trang 16quả thì nằm trên các nút tính toán Mã cần để thực hiện các tác vụ phân tán được gửi riêng rẽ tới các nút Theo cách này, các nút của lưới có thể dễ dàng lập trình lại [13].
Có thể nói, việc phát triển và xây dựng mô hình tính toán lưới là sự kế thừa và phát triển các ý tưởng, các công nghệ hiện hành ở mức cao hơn Sự phát triển không ngừng của
cơ sở hạ tầng, phần cứng máy tính, mạng đã giúp cho các mô hình tính toán lưới ngày càng được ứng dụng để thực hiện được nhiều điều hơn những ý tưởng trước đây
1.1.2 Khái niệm tính toán lưới
Trong mỗi giai đoạn phát triển, mỗi tổ chức, cá nhân tùy theo quan điểm và thực
tế xây dựng hệ thống của mình mà đưa ra các định nghĩa khác nhau về tính toán lưới Dưới đây, luận văn xin trình bày một số định nghĩa về tính toán lưới như sau:
Dưới quan điểm cá nhân của tiến sỹ I.Foster và các đồng nghiệp thì [9] "Một lưới là một hệ thống có các đặc trưng như phối hợp các tài nguyên phân tán từ nhiều miền tự trị khác nhau; sử dụng các chuẩn mở và giao thức mở; cung cấp chất lượng dịch vụ không tầm thường" - I Foster„s Three-Point Checklist (HPCWIRE - 20.07.2002)
Còn dưới quan điểm của một số công ty và liên minh phát triển lưới uy tín trên thế giới thì tính toán lưới được định nghĩa như sau [6]:
Định nghĩa của Oracle: tính toán lưới là việc liên kết nhiều máy chủ và thiết
bị lưu trữ thành một siêu máy tính nhằm tối ưu hóa được tính ưu việt của các hệ thống máy chủ cũng như hệ thống ứng dụng, nhờ đó giảm thiểu đến mức thấp nhất chi phí
Định nghĩa của IBM: tính toán lưới là một môi trường tính toán ảo Môi
trường này cho phép bố trí song song, linh hoạt, chia sẻ, tuyển lựa, tập hợp các nguồn tài nguyên hỗn hợp về mặt địa lý, tùy theo mức độ sẵn sàng, hiệu suất, chi phí của các tài nguyên tính toán và yêu cầu về chất lượng dịch vụ của người sử dụng
Định nghĩa của liên minh điện toán lưới: môi trường tính toán lưới được hiểu
như một hạ tầng kết nối hệ thống máy tính, hệ thống mạng, hệ thống cơ sở dữ liệu
Trang 17được sở hữu và quản lý bởi nhiều tổ chức, cá nhân nhằm cung cấp môi trường tính toán ảo duy nhất với hiệu năng cao cho người sử dụng
Hình 1.1: Mô hình tính toán lưới
Định nghĩa chính thức về một lưới được Ian Foster đưa ra trong bài báo “ What is a Grid?” và trong định nghĩa một lưới có ba đặc điểm chính là:
Tài nguyên tính toán không được quản lý tập trung
Sử dụng các chuẩn mở
Có chất lượng dịch vụ tốt
Trang 18Trên thực tế, tính toán lưới hấp dẫn đối với các nỗ lực cộng tác nghiên cứu phân tán theo địa lý phi lợi nhuận như các lưới nghiên sinh tin học của trung tâm ứng dụng siêu máy tính NCSA chẳng hạn lưới BIRN (lưới ngoài)
Tính toán lưới cũng hấp dẫn đối với các doanh nghiệp thương mại lớn với các bài toán phức tạp, đây là các tổ chức luôn cố gắng tận dụng các tài nguyên tính toán bên trong một cách hiệu quả nhất (lưới nội bộ)
Mỗi tác giả khi đưa ra định nghĩa đều đứng trên một số quan niệm nhất định Để
có cái nhìn toàn diện về tính toán lưới, ta không đưa ra một định nghĩa cụ thể nào, thay vào đó chúng ta sẽ xem xét khái niệm tính toán lưới các đặc trưng sau:
Kích thước lớn: theo số lượng tài nguyên và khoảng cách địa lý giữa chúng Phân tán: có độ trễ đáng kể trong truyền dữ liệu, tài nguyên trải dài trên các
vùng địa lý khác nhau
Động: các tài nguyên có thể thay đổi khi ứng dụng đang được thực hiện
Hỗn tạp: kiến trúc và tính chất của các nút lưới có thể là hoàn toàn khác nhau
Tài nguyên lưới có thể là các máy đơn hoặc mạng con khác nhau
Vượt qua phạm vi một tổ chức: có nhiều trạm và các chính sách truy nhập có thể
khác nhau trên các trạm, tổng thể lưới sẽ tạo ra một tổ chức ảo thống nhất
Cơ chế và chính sách an toàn bảo mật phức tạp Cơ chế quản lý tài nguyên đa dạng, phức tạp
Có thể hình dung đơn giản một lưới bao gồm một tập các tài nguyên đa dạng (còn gọi là các nút lưới - có thể là PC, cluster, hệ thống lưu trữ, ) thuộc về nhiều tổ chức nhằm giải quyết một bài toán nào đó
1.1.3 Lợi ích của tính toán lưới
Tính toán lưới có thể đem lại những ích lợi rất lớn [10]
1/ Khai thác, tận dụng các tài nguyên nhàn rỗi
Trang 19Hầu hết các tổ chức đều có một lượng lớn các tài nguyên tính toán nhàn rỗi, các máy tính cá nhân thường chỉ sử dụng hết 5% thời gian xử lý CPU, ngay cả các server cũng thường “rảnh rỗi” Lưới có thể tối ưu sử dụng các tài nguyên nhàn rỗi này theo nhiều cách khác nhau, ví dụ, gửi một công việc trên một máy tính đang bận rộn đến một máy khác rảnh rỗi hơn để xử lý, hoặc phân nhỏ một công việc rồi gửi các công việc con đến các máy tính nhàn rỗi khác cho xử lý song song,
Lưới cho phép kết hợp nhiều không gian lưu trữ nhàn rỗi để tạo thành một không gian lưu trữ lớn hơn, được cấu hình để tăng hiệu suất, độ tin cậy hơn so với các máy đơn lẻ thông qua các cơ chế quản lý dữ liệu
Một chức năng của lưới nữa là cân bằng sử dụng tài nguyên tốt hơn Một tổ chức thường gặp các vấn đề khó khăn khi các hoạt động đòi hỏi thêm nhiều tài nguyên hơn Với lưới, có thể chuyển hoạt động đến các tài nguyên nhàn rỗi khác, hoặc có thể thêm các tài nguyên mới một cách dễ dàng, từ đó làm tăng khả năng chịu đựng của hệ thống Lưới có thể quản lý nhiều loại tài nguyên, do đó có thể cho phép theo dõi tổng quan về các hoạt động sử dụng tài nguyên trong các tổ chức lớn, hỗ trợ hoạch định các chiến lược sử dụng tài nguyên
2/ Sử dụng CPU song song
Khả năng sử dụng các CPU song song là một đặc tính tuyệt vời của lưới, ngoài việc hỗ trợ các nhu cầu tính toán của các nhà khoa học, sức mạnh tính toán do lưới cung cấp có thể giúp giải quyết các bài toán đòi hỏi năng lực xử lý lớn trong các ngành khác như y dược, tính toán tài chính, kinh tế, khai thác dầu hoả, dự báo thời tiết, công nghiệp vũ trụ, thiết kế sản phẩm, và rất nhiều lĩnh vực khác
3/ Cho phép hợp tác trên toàn thế giới
Một trong những đóng góp quan trọng của công nghệ tính toán lưới là cho phép
và đơn giản hoá hợp tác chia sẻ, làm việc giữa một cộng đồng rộng lớn trên toàn thế giới Các công nghệ tính toán phân tán trước đây cũng cho phép hợp tác nhưng chỉ trong một phạm vi nhỏ, còn lưới cho phép mở rộng trên phạm vi toàn cầu khi đưa ra những
Trang 20chuẩn quan trọng cho phép các hệ thống không đồng dạng làm việc chung với nhau để tạo nên một hệ thống tính toán ảo cung cấp rất nhiều dạng tài nguyên khác nhau
4/ Cho phép chia sẻ, sử dụng tất cả các loại tài nguyên
Không chỉ cho phép chia sẻ các chu kỳ tính toán, dữ liệu, lưới có thể cho phép chia sẻ tất cả các loại tài nguyên mà trước đây chưa được chia sẻ, như băng thông mạng, các thiết bị đặc biệt, phần mềm, bản quyền, các dịch vụ Ví dụ, nếu một người dùng muốn tăng băng thông kết nối Internet của mình lên để thực hiện một ứng dụng khai thác
dữ liệu, ứng dụng đó có thể được gửi đến nhiều máy tính trong lưới có các kết nối Internet riêng, từ đó băng thông truy cập Internet của anh ta tăng lên rất nhiều lần
5/ Tăng tính tin cậy cho các hệ thống máy tính
Hiện nay, các hệ thống tính toán sử dụng các phần cứng chuyên dụng, đắt đỏ để tăng độ tin cậy Ví dụ, một máy tính có thể sử dụng các bộ vi xử lý đôi, cho phép “cắm nóng”, để khi có một vi xử lý bị hỏng, có thể thay thế cái khác mà không làm ngưng hoạt động của hệ thống Các giải pháp này làm tăng độ tin cậy của hệ thống, tuy nhiên với chi quá đắt khi phụ kiện đi kèm cũng phải nhân lên Trong tương lai, các hướng tiếp cận mới để giải quyết vấn đề độ tin cậy dựa nhiều hơn vào các công nghệ phần mềm hơn là các phần cứng đắt tiền Lưới là sự khởi đầu cho các công nghệ đó Các hệ thống trong lưới thường rẻ và phân tán theo địa lý, do đó, nếu có sự cố về nguồn điện hay các lỗi hệ thống khác tại một vị trí, toàn bộ phần còn lại không bị ảnh hưởng Các phần mềm quản trị lưới có khả năng thực thi lại công việc trên một nút khác khi phát hiện có lỗi hệ thống Nếu quan trọng hơn nữa, trong các hệ thống theo thời gian thực, nhiều bản dự phòng của các các công việc quan trọng có thể được chạy trên nhiều máy tính khác nhau trong lưới để đảm bảo độ tin cậy tối đa
6/ Tăng khả năng quản trị các hệ thống
Mục tiêu ảo hoá tất cả các tài nguyên và cung cấp giao diện quản lý đơn nhất các hệ thống hỗn tạp đem lại những cơ hội mới để quản trị tốt hơn trong các cơ sở hạ tầng công nghệ thông tin lớn, phân tán Bên cạnh đó, đối với tầm quản lý vĩ mô, có
Trang 21nhiều dự án sử dụng cơ sở hạ tầng công thông tin, lưới cho phép quản lý độ ưu tiên sử dụng tài nguyên của các dự án này Trước đây, mỗi dự án thường chịu trách nhiệm quản lý một số tài nguyên, thường xảy ra tình trạng các tài nguyên của dự án này đang nhàn rỗi trong khi dự án khác đang gặp vấn đề, thiếu tài nguyên do gặp các sự kiện không lường trước Với tầm nhìn rộng hơn do lưới cung cấp, các tình huống trên có thể được giải quyết dễ dàng
Trên đây giới thiệu một số ích lợi khi sử dụng công nghệ tính toán lưới, lưới còn mang lại rất nhiều lợi ích khác mà không thể kể hết ở đây, tuỳ vào tình huống cụ thể mà đem lại các lợi ích khác nhau Vấn đề là phải hiểu rõ bản chất lưới, sử dụng tốt các công cụ nhằm khai khác tốt nhất trong các tình huống cụ thể
Từ đó, công nghệ tính toán lưới có thể được ứng dụng trong các bài toán trong khoa học lẫn thương mại:
Đòi hỏi năng lực xử lý lớn (High-performance computing), yêu cầu rút ngắn thời gian hoàn thành kết quả càng nhanh càng tốt
Hướng dữ liệu, đòi hỏi phải thu thập, lưu trữ, phân tích một lượng lớn dữ liệu, mang tính phân tán
Cần sự hợp tác, chia sẻ giữa các cộng đồng
1.1.4 Các dạng tài nguyên trên lưới
1/ 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 lưới 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 lưới:
Cách đơn giản nhất là chạy các ứng dụng hiện có trên một nút của lưới thay vì chạy trên máy tính cục bộ
Trang 22Thiế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 trên nhiều nút khác nhau của lưới
Chạy ứng dụng thực thi nhiều lần trên nhiều nút khác nhau trong lưới
2/ Tài nguyên lưu trữ
Tài nguyên phổ biến thứ nhì trong lưới là tài nguyên lưu trữ Mỗi thiết bị trong lưới 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 lưới 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
3/ Tài nguyên đường truyền mạng
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ệ lưới 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 lưới và giao tiếp giữa lưới 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ài nguyên then chốt, ảnh hưởng đến khả năng của lưới
Việc giao tiếp với bên ngoài được thực hiện thông qua mạng Internet Lưới có thể sử dụng các kết nối Internet để liên lạc giữa các nút 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
4/ Tài nguyên phần mềm
Lưới 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 lưới Các phần mềm này chỉ cần được cài trên một số nút Thông qua lưới, khi một công việc cần đến chúng, nó sẽ gửi dữ liệu đến nút đã được cài đặt phần
Trang 23mề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
5/ Các tài nguyên đặc dụng
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
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 lưới sao cho dưới mắt của người dùng, các tài nguyên lưới là một khối thống nhất
Các tài nguyên ảo được tổ chức lại thành các “tổ chức ảo”, đến lượt nó, các tổ chức ảo lại thực hiện chia sẻ tài nguyên của mình để hình thành lưới lớn hơn, tạo thành một kho tài nguyên khổng lồ
Trang 24Hình 1.2 Tài nguyên lưới dưới quan điểm của người dùng là một khối thống nhất có
được nhờ sự ảo hoá
1.1.5 So sánh tính toán lưới với các công nghệ khác
1/ World Wide Web (WWW):
WWW hiện nay đang phát triển mạnh mẽ và được sử dụng rộng khắp Sử dụng các chuẩn mở và các giao thức mở (TCP, HTTP, XML, SOAP), WWW có thể được sử dụng để xây dựng các tổ chức ảo tuy nhiên nó thiếu một số đặc tính quan trọng như các
cơ chế chứng thực một lần, ủy nhiệm, các cơ chế phối hợp sự kiện,
2/ Các hệ thống tính toán phân tán (Distributed computing systems)
Các công nghệ tính toán phân tán hiện tại bao gồm CORBA, J2EE, và DCOM rất thích hợp cho các ứng dụng phân tán tuy nhiên chúng không cung cấp một nền tảng phù hợp cho việc chia sẻ tài nguyên giữa các thành viên của tổ chức ảo Một
số khó khăn có thể kể ra trong việc khai phá tài nguyên, đảm bảo an ninh và xây dựng động các tổ chức ảo Thêm nữa việc tương tác giữa các công nghệ này cũng gặp phải
Trang 25khó khăn Tuy nhiên cũng đã có một số nghiên cứu nhằm mở rộng những công nghệ này cho môi trường lưới, ví dụ như Java JINI
Các nhà cung cấp dịch vụ ứng dụng và dịch vụ lưu trữ (Application and Storage Service Provider)
Các nhà cung cấp ứng dụng và dịch vụ lưu trữ thường cung cấp cho người dùng một số ứng dụng cụ thể nào đó cũng như không gian lưu trữ Người dùng tương tác với nhà cung cấp dịch vụ thường là thông qua mạng riêng ảo (VPN) hoặc các đường truyền dành riêng nên loại bỏ được rất nhiều nguy cơ về an toàn bảo mật Do vậy khi nói về các loại dịch vụ này thì ngữ cảnh của chúng cũng hẹp hơn tính toán lưới rất nhiều
3/ Các hệ thống tính toán ngang hàng (Peer - to - peer Computing Systems)
Tính toán ngang hàng cũng là một lĩnh vực của tính toán phân tán Một số hệ thống tính toán ngang hàng phổ biến hiện nay là Seti@home hay các mạng ngang hàng chia sẻ tập tin như Napster, Kazaa, Morpheus và Gnutella Những điểm khác biệt chính giữa tính toán ngang hàng và tính toán phân tán là:
Tính toán lưới có cộng đồng người sử dụng có thể nhỏ hơn tuy nhiên tập trung nhiều vào các ứng dụng và có yêu cầu cao hơn về an ninh cũng như tính toàn vẹn của ứng dụng Trong khi đó các hệ thống mạng ngang hàng có thể có số người sử dụng rất lớn bao gồm cả các người dùng đơn lẻ và các tổ chức tuy nhiên không đòi hỏi cao
về an ninh và mô hình chia sẻ tài nguyên cũng đơn giản hơn
Môi trường lưới liên kết các nguồn tài nguyên mạnh hơn, đa dạng hơn và chặt chẽ hơn
4/ Công nghệ tính toán hiệu năng cao truyền thống (High performance computing)
Như đã nói ở trên, để giải quyết những bài toán lớn người ta có thể đầu tư cho
cơ sở hạ tầng tính toán Để giải quyết những bài toán rất lớn và phức tạp người ta phải nghiên cứu xây dựng những hệ thống siêu tính toán Các hướng nghiên cứu trong tính toán hiệu năng cao chủ yếu bao gồm:
Trang 26 Nghiên cứu chế tạo những siêu máy tính tuần tự đơn bộ vi xử lý với tốc độ rất cao Cách làm này gặp phải các giới hạn về vật lý như độ truyền dẫn của bán dẫn, tốc
độ điện từ, nhiễu điện từ, nên không thể tăng mãi được
Để khắc phục khó khăn trên người ta nghiên cứu chế tạo các siêu máy tính song song bao gồm rất nhiều bộ xử lý hoạt động song song trên một bảng mạch chủ Cách làm này đòi hỏi phải có những phần mềm thích hợp để tận dụng năng lực tính toán của hệ thống ví dụ: hệ điều hành song song phân tán, trình biên dịch song song, ngôn ngữ lập trình song song,
Tuy nhiên, việc nghiên cứu chế tạo ra các siêu máy tính nói chung mới chỉ được thực hiện ở các nước phát triển và giá thành của một hệ thống siêu máy tính như vậy (bao gồm cả phần cứng lẫn phần mềm hệ thống, công cụ phát triển) có thể lên đến hàng triệu đôla Do vậy đối với các nước nghèo, các nước đang phát triển có thể dùng cách thứ ba, đó là:
Xây dựng các "siêu máy tính" bằng cách kết nối nhiều máy tính thông thường với nhau thành một cluster Cách làm này cho phép tạo ra các siêu máy tính giá rẻ Bằng cách này, Viện CDAC của Ấn Độ đã tạo ra được siêu máy tính xếp thứ 173 trong số top
500 siêu máy tính của thế giới Trung tâm HPC của trường Đại học Bách Khoa Hà Nội cũng đã nghiên cứu thành công một siêu máy tính dạng cluster với 32 nút tính toán
Như vậy khi nói đến các cluster ta thấy ngữ cảnh của chúng cũng hẹp hơn tính toán lưới rất nhiều thể hiện ở các điểm sau:
Trước hết các cluster thuộc về một tổ chức, các tài nguyên của cluster là các máy tính thường là đồng nhất về mặt kiến trúc, hệ điều hành, khả năng xử lý phân bố trên một giới hạn địa lý rất hẹp (ví dụ trong một phòng máy) và được liên kết với nhau bởi các mạng LAN tốc độ cao (cỡ vài trăm Mbits – Gbits) do vậy có độ tin cậy rất cao Trái lại lưới bao gồm tập hợp rất nhiều tài nguyên đa dạng không đồng nhất thuộc nhiều tổ chức phân tán về mặt địa lý được liên kết với nhau bởi các mạng diện rộng có tốc độ thấp hơn và mức độ tin cậy kém hơn
Trang 27 Trong cluster các vấn đề về an ninh không được coi trọng Vấn đề chủ yếu là làm sao để có được hiệu năng cao và không cần thiết phải hy sinh một phần hiệu năng cho các thủ tục an ninh (vì cluster chỉ thuộc về một tổ chức và thường chỉ nằm trong một phòng máy) Trong khi đó vấn đề an ninh là một trong những vấn đề quan trọng nhất mà tính toán lưới phải giải quyết
Trong cluster người ta có thể làm mọi thứ để đổi lấy hiệu năng, ví dụ tối ưu hóa phần cứng phần mềm, sửa đổi nhân hệ điều hành hoặc viết hẳn những hệ điều hành chuyên biệt, thay đổi giao thức Tính toán lưới không đặt vấn đề hiệu năng lên hàng đầu mà chủ yếu tập trung vào việc làm sao phân bổ hiệu quả các nguồn tài nguyên Và tất nhiên khi đã đạt được mục tiêu đó thì tính toán lưới cũng mang lại hiệu năng rất cao, thậm chí hơn nhiều lần các siêu máy tính hiện có và điều đó chủ yếu là do quy mô cực kỳ rộng lớn của nó
Cuối cùng cũng cần phải nói rằng tính toán lưới không phải là chìa khóa vạn năng dùng để giải quyết mọi vấn đề Nó được dùng để bổ trợ chứ không phải là thay thế hoàn toàn các công nghệ tính toán hiện tại Các công nghệ tính toán đã có tồn tại cũng đã giải quyết từng phần các yêu cầu của tính toán lưới đặt ra (các yêu cầu về chia
sẻ tài nguyên phân tán) tuy nhiên tính toán lưới hiện nay chính thức giải quyết các vấn
đề đó một cách tập trung và bài bản hơn với một ngữ cảnh rộng hơn rất nhiều
1.2 Phân loại lưới
Lưới thường được cài đặt ở nhiều dạng khác theo ứng dụng cụ thể hoặc theo cấu trúc của tổ chức ảo tham gia lưới hoặc theo tính chất của tài nguyên được chia sẻ Sau đây là một số dạng lưới [3]:
1.2.1 Lưới phòng ban (Departmental Grids)
Cluster Grids: gồm một hoặc nhiều hệ thống kết hợp lại nhằm cung cấp một
điểm truy xuất đơn cho người dùng Nó phù hợp cho các ứng dụng yêu cầu hiệu năng
Trang 28tính toán và băng thông lớn
Infra Grids: do IBM đề xuất nhằm định nghĩa một lưới tối ưu việc sử dụng tài
nguyên trong một xí nghiệp
1.2.2 Lưới doanh nghiệp (Enterprise Grids)
Enterprise Grids: được triển khai trong các công ty lớn có chi nhánh ở nhiều
nơi trên thế giới có nhu cầu chia sẽ tài nguyên
Intra Grids: tài nguyên chia sẻ trong các nhóm khác nhau của một xí nghiệp tạo
thành một Intra grid Khi lưới mở rộng ra nhiều phòng ban, các chính sách mới về cách
sử dụng lưới cần phải được xác lập và áp dụng Ví dụ: cần phải có chính sách quy định những công việc nào được thực hiện trên lưới, vào thời điểm nào; độ ưu tiên của các phòng ban,… Bên cạnh đó vấn đề bảo mật cũng cần được quan tâm, các dữ liệu nhạy cảm của một phòng ban cần được bảo vệ khỏi sự truy cập từ các công việc của các phòng ban khác Các máy tính dành riêng cho lưới bắt đầu được đưa vào để làm tăng chất lượng dịch vụ của lưới, thay vì phải trông chờ vào các tài nguyên rảnh rỗi
Campus Grids: cho phép nhiều dự án hoặc nhiều bộ phận chia sẻ tài nguyên
tính toán theo hướng cộng tác
1.2.3 Lưới toàn cầu (Global Grids)
Global Grids: cho phép người dùng khai thác các tài nguyên bên ngoài Nó
cung cấp sức mạnh của các tài nguyên phân tán trên khắp thế giới
Inter Grids: cung cấp khả năng chia sẻ tài nguyên và lưu trữ thông qua Web
Theo thời gian, các lưới mở rộng ra khỏi một tổ chức và bắt đầu liên kết nhiều tổ chức với nhau, được dùng để phối hợp giữa các tổ chức trong các dự án lớn Một InterGrid đòi hỏi việc liên kết động các ứng dụng, tài nguyên và dịch vụ Khách hàng hay bất kỳ
tổ chức hợp lệ nào khác đều có thể truy cập lưới thông qua các kết nối Internet và WAN Trong dạng lưới này, cấp độ bảo mật cao nhất cần được áp dụng để ngăn ngừa các khả năng bị tấn công và gián điệp InterGrid cung cấp khả năng trao đổi, mua bán,
Trang 29tìm kiếm tài nguyên ở mức toàn cầu Các tài nguyên có thể được mua từ các nhà cung cấp tin cậy
1.2.4 Lưới tính toán (Compute Grids)
Compute Grids được thành lập nhằm mục tiêu chia sẻ tài nguyên tính toán Loại lưới 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 lưới này, phần lớn các nút là các máy tính hay các cụm máy tính 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 song song trên các nút của lưới Việc phân tán các tác vụ tính toán trong lưới 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 nút trên lưới Mỗi nút 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
Desktop Grids: đây là mạng lưới tập hợp sức mạnh tính toán của các máy
tính để bàn Các mạng lưới thuộc dạng này chủ yếu chạy trên nền Windows
Server Grids: một số tập đoàn lớn thường có các tài nguyên máy chủ được
quản lý bởi bộ phận IT nằm tại nhiều địa điểm khác nhau Họ muốn tạo Server Grids để chia sẻ những tài nguyên đắt giá này
High-Performance/Cluster Grids: mạng lưới gồm các hệ thống dành riêng
cho tính toán như các siêu máy tính hoặc nhóm máy tính hiệu năng cao
1.2.5 Lưới dữ liệu (Data Grids)
Ở đây, không gian lưu trữ là tài nguyên Một lưới 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 30Cá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 lưới 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 lưới 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 lưới dữ liệu và lưới tính toán
1.2.6 Lưới tiện ích (Utility Grids)
Utility grids là mạng lưới bao gồm các tài nguyên tính toán thương mại mà được duy trì, quản lý bởi các nhà cung cấp dịch vụ
Service Grids: cung cấp truy xuất tới các tài nguyên mà có thể được mua bởi
một tổ chức
1.3 Vấn đề an toàn thông tin và những thách thức đối với tính toán lưới
1.3.1 An toàn thông tin trong tính toán lưới
Do đặc điểm hỗn tạp và không đồng nhất của các tổ chức và tài nguyên trong lưới, vấn đề an toàn thông tin trong lưới là một trong những vấn đề được quan tâm hàng đầu Có những vấn đề an toàn thông tin mới chưa từng gặp trong các công nghệ
an toàn thông tin hiện tại cho hệ thống tính toán phân tán truyền thống Ví dụ, các tính toán song song đòi hỏi nhiều tài nguyên tính toán, dẫn tới nhu cầu phải thiết lập các mối quan hệ an toàn thông tin, không đơn giản chỉ là với client và server, mà giữa hàng trăm tiến trình thực hiện trong không gian tập hợp nhiều miền quản trị Ngoài ra, cần phải có các chính sách an toàn thông tin liên miền cho lưới, các công nghệ điều khiển truy nhập giữa các miền khác nhau cũng phải được hỗ trợ
Các ứng dụng và hệ thống lưới có thể đòi hỏi bất cứ chức năng nào trong các chức năng cơ bản của an toàn thông tin như là: chứng thực, điều khiển truy nhập, và
Trang 31toàn vẹn Khi phát triển kiến trúc lưới, cũng cần phải lựa chọn giải pháp để đáp ứng được đòi hỏi của các đặc tính rất riêng của lưới:
Đăng nhập một lần: Khi bắt đầu một tính toán đòi hỏi sử dụng tài nguyên, cho
thuê tài nguyên hay truyền thông nội bộ, người dùng có thể được chứng thực, và sẽ không phải chứng thực trong các tính toán tiếp theo
Giấy ủy nhiệm người dùng: Các mật khẩu, khóa bí mật phải được bảo vệ bằng các chính sách như mã hóa, hệ thống file bảo mật, phân quyền
Tích hợp các giải pháp an toàn thông tin địa phương: Các giải pháp liên miền
phải tích hợp với các giải pháp an toàn thông tin địa phương để đảm bảo độc lập của các thành viên lưới
Hạ tầng giấy ủy nhiệm, chứng chỉ số thống nhất: Truy nhập liên miền đòi hỏi
phải có một quy ước thống nhất để biểu diễn định danh của các thực thể lưới như là người dùng, tài nguyên, Vì thế, cần có một chuẩn để mã hóa các chứng chỉ số cho mục đích an toàn thông tin Hiện tại, X509 là chuẩn cho các chứng chỉ số phổ biến trong môi trường lưới
Hỗ trợ an toàn nhóm truyền thông: Một tính toán có thể đòi hỏi một số các
tiến trình, cùng cộng tác các hoạt động của chúng với nhau như là một nhóm Tổ hợp các nhóm tiến trình sẽ thay đổi trong vòng đời của một tính toán Vì thế, cần cung cấp
an toàn truyền thông nhóm động Không có giải pháp nào hiện tại hỗ trợ tính năng này, thậm chí là thư viện lập trình GSS-API còn không cung cấp an toàn truyền thông nhóm
Độc lập công nghệ: Các chính sách không phục vụ cho một công nghệ phát
triển ứng dụng cụ thể nào Hơn nữa, có thể cài đặt các chính sách trong một phạm vi các công nghệ an toàn thông tin, dựa trên cả kĩ thuật mã hóa công khai và phân phối khóa công khai
Trang 32sở 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 hiệ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
1.4 Kết luận
Chương này đã giới thiệu các khái niệm, các dạng tài nguyên, các lợi ích của một lưới tính toán Đồng thời cũng nêu các vấn đề về an toàn thông tin và thách thức trên lưới Qua đó thấy rằng, để xây dựng và phát triển được các ứng dụng trên một lưới
Trang 33tính toán cần phải có cơ sở hạ tầng về phần cứng và phần mềm, trong đó quan trọng là
cơ sở hạ tầng về phần mềm Hiện tại, đã có rất nhiều bộ công cụ phần mềm là môi trường hỗ trợ cho việc triển khai một lưới, các vấn đề này sẽ được trình bày chi tiết trong chương 2 của luận văn
Trang 34CHƯƠNG 2 PHÁT TRIỂN ỨNG DỤNG TRÊN MÔI TRƯỜNG TÍNH TOÁN
LƯỚI
2.1 Cơ sở hạ tầng lưới
Một cơ sở hạ tầng (infrastructure) là một tập hợp các phương tiện, trang thiết bị, công nghệ cho phép chúng ta thực hiện các hoạt động của mình, chẳng hạn hệ thống đường giao thông cho phép đi lại bằng xe, hệ thống ngân hàng cho phép chuyển tiền một các nhanh chóng Để có thể hữu dụng, cơ sở hạ tầng cần phải được triển khai rộng rãi, điều đó cũng có nghĩa là nó phải đơn giản hoặc có giá trị to lớn hoặc cả hai Do đó,
cơ sở hạ tầng lưới cũng phải vừa đơn giản, vừa hỗ trợ được nhiều dạng tài nguyên khác nhau
Phần này sẽ giới thiệu tổng quan về các thành phần chính yếu của một môi trường lưới Tuỳ theo thiết kế và cách sử dụng lưới, một số thành phần có thể không cần thiết và đôi khi trong một số trường hợp, có thể kết hợp nhiều thành phần lại thành một thành phần phức hợp
2.1.1 Portal/Giao diện người dùng
Truy cập thông tin trên lưới là việc rất quan trọng, thành phần giao diện người dùng đảm nhiệm chức năng này Giao diện người dùng thuộc một trong 2 dạng:
Giao diện cung cấp bởi ứng dụng đang chạy của người dùng
Giao diện cung cấp bởi các nhà quản trị lưới giống như portal cho phép khả năng truy xuất đến các ứng dụng và tài trong lưới như trong một không gian ảo duy nhất Một lưới portal đưa ra một giao diện cho người dùng để chạy các ứng dụng sử dụng các tài nguyên và dịch vụ của lưới Giao diện kiểu portal cũng có thể giúp người dùng học cách sử dụng lưới
Trang 352.1.2 An toàn và bảo mật (Security)
Các máy tính trong lưới đều được nối mạng và chạy các ứng dụng; chúng có thể phải xử lý các dữ liệu nhạy cảm hoặc có giá trị lớn, do đó thành phần bảo mật của lưới
là hết sức quan trọng Ở mức cơ sở, bất kỳ môi trường lưới nào cũng phải có các cơ chế bảo mật
Một nền tảng an toàn và bảo mật vững chắc sẽ quyết định sự phát triển của môi trường tính toán lưới [11] Với tính chất quy mô lớn, quan hệ chia sẻ tài nguyên giữa nhiều tổ chức, an toàn và bảo mật luôn phải được coi là một trong những yếu tố hàng đầu trong lưới Hai vấn đề quan trọng trong an toàn bảo mật phải xem xét trong tính toán lưới là:
Chứng thực người dùng (Authentication) Xác thực thẩm quyền (Authorization)
2.1.3 Bộ môi giới tài nguyên (Broker)
Bộ môi giới tài nguyên sử dụng dịch vụ thông tin để lấy thông tin tài nguyên và sau đó chọn ra các tài nguyên phù hợp với công việc mà người sử dụng yêu cầu
Khi mà một số tài nguyên được chọn, danh sách và thông tin về các tài nguyên
đó được chuyển đến bộ lập lịch để thực hiện quá trình lập lịch Nếu trong hệ thống không sử dụng bộ lập lịch thì thông tin sẽ được chuyển trực tiếp tới bộ phận quản lý tài nguyên
2.1.4 Bộ lập lịch (scheduler)
Khi các tài nguyên đã được xác định và cấp phát, bước tiếp theo là lập lịch điều phối các công việc chạy trên đó Cần có các bộ lập lịch để xác định các nút thực thi ứng dụng và gửi các công việc được yêu cầu đến các nút [11] Việc này có thể đơn giản
là lấy tài nguyên sẵn sàng tiếp theo trong hệ thống, nhưng thường thì nó liên quan đến các hàng đợi công việc ưu tiên, quản lý tải, tìm kiếm các tài nguyên đã đăng ký sử
Trang 36dụng, theo dõi tiến trình Nếu có một tập các công việc riêng lẻ, không phụ thuộc vào nhau thì không cần các bộ lập lịch phức tạp Tuy nhiên, nếu muốn giữ chỗ các tài nguyên đặc biệt hay chắc chắn rằng các công việc chạy song song thì nên sử dụng các
bộ lập lịch để phối hợp hoạt động của các công việc Lưu ý, các cluster có thể được xem là một tài nguyên đơn lẻ, chúng có bộ lập lịch riêng để quản lý các nút của nó Một bộ lập lịch cấp cao hơn dùng để quản lý các công việc cần thực hiện trên cluster trong khi bộ lập lịch cục bộ của cluster sẽ điều phối các công việc cụ thể trên từng máy tính con
2.1.5 Thành phần quản lý dữ liệu (Data management)
Nếu bất cứ dữ liệu nào, bao gồm cả các module thực thi của ứng dụng, cần phải
di chuyển thì cần phải có các phương pháp an toàn, tin cậy để di chuyển các file và dữ liệu qua lại giữa các nút trong lưới [11] Do đó, cần phải có thành phần này
2.1.6 Thành phần quản lý công việc và tài nguyên (Job and resource management)
Sau khi đã có các tiện nghi như trên, việc tiếp theo là xây dựng các dịch vụ hỗ trợ việc thực hiện các công việc thật sự trong môi trường lưới Để giải quyết các tác vụ nòng cốt như khởi chạy ứng dụng với các tài nguyên cụ thể, theo dõi trạng thái các công việc, nhận kết quả, hệ thống lưới cần có thành phần quản lý công việc và tài nguyên
2.1.7 Các thành phần khác
Còn có nhiều thành phần khác để đưa vào môi trường lưới và cần được xem xét khi thiết kế và cài đặt ứng dụng Ví dụ: Các tiện ích như liên lạc giữa các tiến trình (Inter Process Communication) và các dịch vụ hỗ trợ tính toán chi phí và chi trả là những tiện ích được yêu cầu nhiều nhất
Trên đây là giới thiệu vắn tắt và tổng quan về các thành phần chính của môi trường lưới Tuỳ thuộc vào việc triển khai lưới và các yêu cầu của ứng dụng, có nhiều
Trang 37cách khác nhau để kết hợp các thành phần này lại với nhau để tạo nên một giải pháp lưới
2.2 Kiến trúc của một lưới
để 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 lưới 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 giao thức 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 lưới, 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 lưới
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 hai 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ư
Trang 38Web đã làm bùng nổ việc chia sẻ thông tin bằng cách cung cấp các giao thức 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 giao thức và cú pháp chuẩn để chia sẻ tài nguyên
Để giải quyết vấn đề “liên kết hoạt động”, việc xây dựng các giao thức là quan trọng Vì giao thức 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 giao thức 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 giao thức, các chính sách cục bộ được giữ lại Do đó các giao thức được cần đến
Khi đã có các giao thức, 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 giao thức 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 lưới, 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 giao thức được
Trang 392.2.2 Kiến trúc lưới tổng quát
Lưới được xây dựng trên nền tảng kiến trúc mở và phân tầng Trong mỗi tầng của lưới, các thành phần chia sẻ những thuộc tính chung và được bổ sung những tính năng mới mà không làm ảnh hưởng đến các tầng khác [7] Ta có thể tổng hợp kiến trúc lưới thành 5 tầng như sau:
Hình 2.1 Kiến trúc lưới tổng quát 2.2.2.1 Tầng nền - tầng thiết bị (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 lưới 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
Trang 40tượ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 giao thức cục bộ (ví dụ các giao thức phục vụ dạng truy cập NFS, hoặc giao thức quản
lý tài nguyên, tiến trình trong cluster,…) nhưng các giao thức này không liên quan đến kiến trúc lưới
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 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ụ
2.2.2.2 Tầng kết nối (Connectivity)
Tầng Connectivity định nghĩa các giao thức 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 lưới Các giao thức 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 giao thức 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 lưới có thể cần các giao thức mới, nhưng hiện nay nên xây dựng trên các giao thức có sẵn của bộ TCP/IP giao thức 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 giao thức có thể áp dụng được