LỜI MỞ ĐẦUInternet đã và đang trở thành một nhu cầu thiết yếu trong đời sống con người.Internet cung cấp một khối lượng thông tin khổng lồ về mọi lĩnh vực dưới nhiều dạng.Các nhà phát tr
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH
TÍNH TOÁN LƯỚI
ĐỀ TÀI
TÌM HIỂU SỰ PHÂN TÁN VÀ
TRUY VẤN NHÀ KHO DỮ LIỆU
TRÊN MÔI TRƯỜNG TÍNH TOÁN LƯỚI
TP HCM, THÁNG 07/2013
Học viên : Nguyễn Tấn
Mã số: CH1101038
Lớp : Cao học CNTT – Khóa 6 GVHD: PGS.TS Nguyễn Phi Khứ
Trang 2LỜI MỞ ĐẦU 1
CHƯƠNG I: TỔNG QUAN VỀ TÍNH TOÁN LƯỚI 2
1.Giới thiệu 2
2.Một số công cụ tính toán lưới hiện nay 8
3.Phân loại lưới tính toán 11
4.Kiến trúc phân tầng của lưới 13
5.Lợi ích của tính toán lưới 13
CHƯƠNG II: NHÀ KHO DỮ LIỆU TRÊN MÔI TRƯỜNG LƯỚI 16
1.Nhà kho dữ liệu 16
2.Phần mềm hạ tầng lưới Globus Toolkit 21
3.Nhà kho dữ liệu trên môi trường lưới 25
CHƯƠNG III: OGSA-DAI VÀ TRUY VẤN PHÂN TÁN TRÊN MÔI TRƯỜNG LƯỚI 33
1.Kiến trúc dịch vụ lưới OGSA và nhà kho dữ liệu 33
2.OGSA-DAI 35
KẾT LUẬN 45
TÀI LIỆU THAM KHẢO 46
Trang 3LỜI MỞ ĐẦU
Internet đã và đang trở thành một nhu cầu thiết yếu trong đời sống con người.Internet cung cấp một khối lượng thông tin khổng lồ về mọi lĩnh vực dưới nhiều dạng.Các nhà phát triển internet đang thu hẹp dần khoảng cách giữa các dịch vụ internet vàngười sử dụng sao cho tất cả mọi người, kể cả những người không am hiểu về internet vàmáy tính cũng có thể sử dụng được Chỉ cần có kết nối internet, chúng ta có thể khai thác
sử dụng hầu hết các dịch vụ internet mang lại, chia sẻ và cập nhật thêm kho thông tin
Khi số lượng máy tính kết nối internet ngày càng nhiều, dung lượng thông tin vànhu cầu xử lý thông tin càng lớn Có những kho dữ liệu khổng lồ và đang tăng trưởng rấtnhanh, bên trong nó ẩn chứa nhiều loại dữ liệu quý cần được khai thác Mặt khác, trongrất nhiều máy tính kết nối vào internet, có những máy không được khai thác hết côngsuất, dư thừa không gian lưu trữ và thời gian rỗi của CPU Một vấn đề được đặt ra là làmsao tận dụng được hết các nguồn tài nguyên hiện đang dư thừa này để phục vụ cho nhàkho dữ liệu khác như đã nói trên Tính toán lưới (Grid Computing) ra đời nhằm đáp ứngnhu cầu cấp bách trên Tính toán lưới được xem là internet thế hệ thứ hai Khi đó,internet trở thành phương tiện để khai thác các kho dữ liệu khổng lồ bằng cách tập hợpcác nguồn tài nguyên dư thừa của máy tính khác trên hệ thống internet Nguồn tài nguyên
ở đây bao hàm cả phần cứng (thiết bị lưu trữ, băng thông mạng) và phần mềm (các dịch
vụ, ứng dụng) phục vụ cho nhu cầu làm việc trên mạng máy tính
Với những kiến thức đã được cung cấp trong môn học Tính toán lưới, em đãchọn đề tài “Tìm hiểu sự phân tán và truy vấn nhà kho dữ liệu trên môi trường tính toánlưới” làm nội dung nghiên cứu Để hoàn thành bài thu hoạch này, em xin chân thành cảm
ơn thầy PGS.TS Nguyễn Phi Khứ, người đã chỉ dẫn tận tình, cung cấp thông tin, tư liệu
cũng như những bài giảng có giá trị để giúp em hoàn thành đề tài
Đây là đề tài không mới nhưng với thời lượng cũng như việc đầu tư nghiên cứucòn nhiều hạn chế nên chỉ mang tính chất một bài thu hoạch môn học, chỉ tìm hiểu ở mức
độ khái quát vấn đề Do đó không thể nào tránh được những thiếu sót và hạn chế
Kính mong sự thông cảm và chia sẻ của thầy
Thành phố Hồ Chí Minh, tháng 07 năm 2013
Trang 4CHƯƠNG I: TỔNG QUAN VỀ TÍNH TOÁN LƯỚI
1 Giới thiệu
1.1 Nguồn gốc, lịch sử phát triển tính toán lưới
Cũng giống như các công nghệ tính toán khác, tính toán lưới xuất phát từ nhu cầutính toán của con người Thực tiễn ngày càng đặt ra những bài toán phức tạp hơn và do vậycác tổ chức cũng cần phải có năng lực tính toán mạnh mẽ hơn Các tố chức giải quyết vấn
để này bằng hai cách:
• Đầu tư thêm trang thiết bị, cơ sở hạ tầng tính toán (mua thêm máy chủ, máytrạm, siêu máy tính, cluster ) Tuy nhiên cách làm này có một nhược điểm là tốn kém, sốtrang thiết bị sẽ tỉ lệ thuận với độ phức tạp của bài toán
• Có một cách làm khác hiệu quả hơn đó là phân bố lại tàii nguyên hợp lý trong
tổ chức hoặc thuê thêm các nguồn tài nguyên từ bên ngoài (tất nhiên là việc thuê này sẽ cóchi phí ít hơn nhiều so với việc đầu tư mới trang thiết bị)
Cách giải quyết thứ hai này chính lả mục tiêu và là nguồn gốc yêu cầu cho sự hìnhthành của tính toán lưới Các nhà khoa học tại Argone National Labs 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 Cũng như nhiều ý tưởngcách mạng khác trong tin học như World Wide Web, siêu máy tính Tính toán lưới đượchình thành bởi nhu cầu thực tế là mong muốn đạt tới giới hạn của khả năng tính toán
Ý tưởng về lưới được đưa ra bởi Ian Foster, Carl Kesselman và Steve Tuecke, vì
vậy họ được tôn vinh là “cha đẻ của lưới” Họ dẫn đầu nhóm tạo ra Globus Tookittích hợpkhông chỉ việc quản lý CPU mà còn quản lý lưu trữ, cung cấp an ninh, luân chuyển dữ liệu,giám sát và bộ công cụ để phát triển các thêm dịch vụ dựa trên cùng kiến trúc bao gồm thoảthuận cấp phép, cơ chế thông báo, các dịch vụ bẫy lỗi và kết hợp thông tin Trong khiGlobus Toolkit tiếp tục là chuẩn để phát triền các giải pháp lưới, một số lượng các công cụkhác được xây dựng để đáp ứng các tập hợp dịch vụ cần thiết để tạo một lưới doanh nghiệp
Khái niệm về lưới đã xuất hiện dưới dạng này và dạng khác trong lịch sử tính toán
từ khá lâu Ví dụ như ý tưởng “chia sẻ năng lực tính toán” đã xuất hiện từ những năm 60-70của thế kỷ XX Năm 1965, những người phát triền hệ điều hành Mulitics (tiền nhân của hệđiều hành Unix) đã đề cập đến việc sử dụng năng lực tính toán như một tiện ích, một quan
Trang 5điểm rất gần với quan điểm về lưới như hiện nay Đó là một hệ thống cung cấp năng lựctính toán tương tự như hệ thống cung cấp điện, nước hiện đang được sử dụng trong cuộcsống hằng ngày Ngưới dùng khi muốn sử dụng tài nguyên tính toán để xử lý công việc, chicần cắm thiết bị vào hệ thống cung cấp, sử dụng và trả tiền giống như khi cắm thiết bị điệnvào lưới điện Tuy nhiên đó mới là những ý tưởng về lưới nhưng nguồn gốc của lưới chínhthức được xác định vào năm 1990, khi thuật ngữ “siêu tính toán” ra đời, dùng để mô tá các
dự án kết nối các trung tâm siêu máy tính của Mỹ nhằm kết hợp sức mạnh của nhiều siêumáy tính lại với nhau
Những năm 1997 - 1999, có một dự án phi lợi nhuận SETI@home là một trongnhững nhân tố khoa học nổi tiếng thúc đẩy vào việc tạo ra một dự án tính toán lưới đơngiản bằng cách thu thập 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ánbởi nó hầu như không thúc đầy việc sử dụng bất kỳ một khái niệm tính toán 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àinguyên CPU trên máy tính cục bộ đã bắt đầu từ thập niên 1970 với những dự án phi lợinhuận như DISTRIBUTED.NET, nhưng SETI@home nổi tiếng bởi dự án này được ứngdụng vào nhiều dự án khác như: tạo nếp Protein, nghiên cứu thuốc cho bệnh ung thư, giảicác bài toán phức tạp và dự báo thời tiểt,… Hầu hết các dự án này đều được thực hiện dướidạng, các tiến trình chạy trên nền máy tính cá nhân, xứ lý những dữ liệu nhỏ khi máy tính ởtrạng thái chờ hoặc ít sử dụng tài nguyên
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, tới nay cũng có nhiều dịch vụ như vậy do các công ty hay các phòng thínghiệm thực hiện Điều khác biệt quan trọng giữa dự án “lưới” và dự án “giống lưới” làtrong lưới cho phép di trú các nhiệm vụ tính toán lưới tới tất cả các nút tính toán trên lưới
để thực thi Chẳng hạn như chương trình xử ả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 mã này được trộn lẫn vào một chương trình
Tính toán lưới hiện nay đang có xu hướng phát triền mạnh và được nhiều nhànghiên cứu quan tâm Hai nhóm gồm Globus Alliance (được sự tài trợ của một vài trườngđại học tại -Mỹ như đại học Chicago, đại học Berkeley, ) và Global Grid Forum (các thành
Trang 6viên bao gồm các hãng lớn như IBM, SUN, Microsoft, ) là các trung tâm nghiên cứu đángchú ý hiện nay Các nhóm này đã tạo ra các chuẩn mã nguồn mở và các giải pháp phầnmềm cho công nghệ mới mẻ này Đó là một nền tảng để các thành phần trong lưới có thểgiao tiếp được với nhau Trong đó:
• Globus Alliance tạo ra bộ công cụ Globus Toolkit (GT) mã nguồn mở, baogồm các thư viện phần mềm và các dịch vụ cho phép người phát triến tạo ra các ứng dụnglưới Thư viện GT cung cấp các hàm đảm bảo vấn để như an ninh, cơ sở hạ tầng thông tin,quản lý tài nguyên lưới, tính tin cậy, tính khả chuyên,
• Global Grid Forum quản lý các tiến trình chuẩn cho việc đặc tả kiến trúc cácdịch vụ lưới OGSA (Open Grid Service Architecture) và OGSI (Open Grid ServiceInfrastructure)
Các chuẩn OGSA, OGSI và bộ công cụ Globus Toolkit giúp cho các nhà phát triểntriển khai một cách thuận lợi các giải pháp tính toán lưới trong nhiều lĩnh vực nghiên cứuchuyên sâu ở Mỹ và Châu Âu như: dự án tìm kiếm các tín hiệu ngoài trái đất SETI@home,
dự án về nghiên cứu bản đồ gen người, dự án IPG (Information Power Grid) của NASA,
Đó là những ứng dụng tiêu biểu cho sự thành công ban đầu của tính toán lưới trong giaiđoạn nghiên cứu
1.2 Khái niệm tính toán lưới
Hiện nay tồn tại khá nhiều định nghĩa khác nhau về tính toán lưới và vẫn chưa cóđược một định nghĩa nào được coi là chuẩn Bài thu hoạch này trình bày định nghĩa về tínhtoán lưới của Ian Foster, đây là định nghĩa sớm và chuẩn nhất về tính toán lưới, định nghĩanày được ông đưa ra trong một bài báo mang tên “What is Grid ?”
“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
Trang 7Tính toán lưới là một cơ sở hạ tầng tin học cụ thể bao gồm phần cứng và phần mềmcho phép người sử dụng khai thác các tài nguyên trên các máy trạm hay máy chủ với tốc độcao với độ tin cậy, giá thành chấp nhận được và hệ thống có xu hướng trong suốt với ngườidùng Tính toán lưới chính là bước phát triển tiếp theo của tính toán phân tán Mục đích làtạo ra một máy tính ảo với người sử dụng, nó có khả năng tính toán lớn, thậm chí trên cảmột siêu máy tính.
Ý tưởng về tính toán lưới rất có ý nghĩa thực tế Bởi lẽ, hiện nay theo các nghiêncứu thì các máy tinh cá nhân thường chỉ sử dụng từ 5-10% năng lực tính toán còn các máychủ, siêu máy tính cũng chỉ sử dụng đến 20% năng lực tính toán, đây là sự phí phạm mộtnguồn tài nguyên tinh toán rất lớn Việc tận dụng hiệu qua các nguồn tài nguyên này có thềmạng lại một sức mạnh tính toán khổng lồ Tính toán lưới sẽ là một giải pháp hữu hiệu khi
mà mục đích sử dụng của nó tập trung vào sử dụng tốt hơn và có hiệu quả hơn các nguồntài nguyên nhằm chia sẻ các ứng dụng và tăng cường sự hợp tác trong các dự án Thuật ngữ
"lưới” ở đây xuất phát từ lưới điện (electricity grid), ngụ ý rằng bất cứ một thiết bị tươngthích nào đều có thế gắn vào trong lưới và được xếp ở một mức tài nguyên nào đó màkhông cẩn quan tâm đến nguồn gốc của tài nguyên đó Trong tương lai, tính toán lưới cóthề cung cấp cho người sử dụng các dịch vụ đóng vai trò như là dịch vụ cơ sở hạ tầng mà ta
có thể sử dụng hàng ngày như: điện, nước, giao thông,
Các nghiên cứu về tính toán lưới đã và đang được tiến hành là 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ántrong môi trường lưới Các thách thức mà công nghệ lưới hướng tới giải quyết bao gồm:
• Sự đa dạng và không đồng nhất của các tài nguyên
Tài nguyên ở đây được hiểu theo nghĩa tồng quát, đó có thể là các tài nguyênphầ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àinguyên phần mềm: các CSDL, các phần mềm đặc biệt bản quyền đắt giá, các đường truyềnmạng, Các tài nguyên này có thể 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ácnguồn tài nguyên này là hoàn toàn không dề dàng
• Sự đa dạng về chính sách quản lý tài nguyên
Các tài nguyên không chỉ phụ thuộc về một tổ chức mà thuộc về nhiều tổ chức
Trang 8cùng tham gia vào lưới Các tổ chức này phái tuân thủ một số quy định chung khi tham giavào lưới 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,
do vậy cũng gây khó khăn cho việc quản lý
• Sự phân tán của các tài nguyên
Các tài nguyên khi tham gia vào lưới là không tập trung, có thể ở nhiều tổ chứcnhiều vùng lãnh thổ khác nhau, miễn là các tài nguyên này có thể kết nối được với nhau Vìvậy phải có cơ chế quản lý sự phân tán tài nguyên trong lưới
• Vấn đề an toàn, bảo mật thông tin
Môi trường lưới là một môi trường rất phức tạp, tuy rằng khi các tổ chức cánhân cùng tham gia vào một mạng lưới thì sẽ có các quy định áp dạng cho họ nhưng cũngcần phải quan tâm đến việc bảo vệ an toàn thông tin cho các tổ chức khi tham gia vào lưới,đây phải là một ưu tiên hàng đầu cho những người xây đựng hệ thống lưới
Trong bài báo “What is Grid ?”, Ian Foster cũng đã đưa ra ba đặc điểm của một hệthống tính toán lưới:
Kết hợp chia sẻcác ngnồn tài nguyên không được quản lý tập trung
Lưới tích hợp và phối hợp các 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 và nhiều tổ chức khác nhau
Công nghệ lưới tập trung giải quyết một số vấn đề bảo vệ tài nguyên, chính sáchquả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ở
Tính toán lưới sử dụng các chuẩn mở để chia sẻ qua mạng những tài nguyênphức tạp (trên các nền tảng kiến trúc phần mềm, phần cứng và ngôn ngữ lập trình khácnhau), nằm tại những điểm khác nhau tùy vào khu vực hành chính Nói cách khác nó “ảohóa” các tài nguyên tính toán
Tính toán lưới thường bị nhầm với tính toán phân cụm, tuy nhiên có sự khácnhau giữa hai kiểu tính toán này: cụm tính toán là một tập đơn các nút tính toán tập trungtrên một khu vực địa lý nhất định, lưới tính toán gồm nhiều cụm tính toán và những tàinguyên khác (như mạng, các thiết bị lưu trữ)
Trang 9Tính toán lưới tạo ra một mô hình để giải quyết các bài toán tính toán lớn bằngcách sử dụng những tài nguyên rỗi (CPU, thiết bị lưu trữ) của một loạt các máy tính riêng
rẽ, thường là máy để bàn Hệ thống này được coi là một cụm "máy ảo”, nhúng trong mộtmôi trường liên lạc phân tán.Tính toán lưới tập trung vào khả năng hỗ trợ tính toán giữa cáckhu vực hành chính, điều này làm cho mô hình này khác biệt so với mô hình cụm tính toán
và tính toán phân tán truyền thống
Tính toán lưới cung cấp một giải pháp cho những bài toán về tính toán hiệu năngcao như tạo nếp protein, mô hình hoá tài chính, mô phỏng động đất và dự báo khí hậu thờitiết, Ngoài ra tính toán lưới còn có thể giúp các tổ chức, doanh nghiệp sử dụng tối ưu cáctài nguyên CNTT và tạo ra các dịch vụ tính toán theo nhu cầu cho khách hàng thương mại,trong đó khách hàng chi phải trả những gì họ đã sử dụng giống như điện và nước
Tính toán lưới được thiết kế với mục tiêu giải các bài toán tính toán quá lớn chomột siêu máy tính, trong khi vẫn giữ được sự linh hoạt đối với những bài toán nhỏ hơn Vìvậy, tính toán lưới cung cấp một môi trường đa người dùng
Mục tiêu thứ hai của tính toán lưới là khả năng khai thác tốt hơn những năng lựctính toán chưa được sử dụng và phục vụ cho những nhu cầu tính toán không ngừng của cácbài toán khoa học lớn Điều này dẫn đến việc sử đụng các cơ chế cấp phép an toàn, chophép người dùng từ xa có thể điểu khiển được các tài nguyên tính toán
Khái niệm "tổ chức ảo” là một khái niệm rất quan trọng trong tính toán lưới Tổchức “ảo” là một tổ chức được lập ra để giải quyết một vấn đề nào đó Thành phần của tổchức ảo bao gồm nhiều tài nguyên thuộc về nhiều tổ chức thực khác nhau trong môi trườnglưới cùng hoạt động vì một mục tiêu chung Tùy theo mức độ của vấn đề cần giải quyết màcác tồ chức ảo có thể rất khác nhau về quy mô, phạm vi hoạt động và thời gian sống Hìnhphía dưới minh họa về một tổ chức ảo Có một người dùng cần giải quyết một bài toán lớn
về dự báo thời tiết, anh ta thành lập một tổ chức ảo bằng cách thuê một số nguồn tài nguyênkhác nhau từ một vài tổ chức khác nhau Tương tự như vậy, một người dùng cần giải mộtbài toán về dự báo tài chính, anh ta cũng thành lập một tổ chức ảo đế giải quyết bài toánnày
Trang 10Mô hình tổ chức tính toán lưới
2 Một số công cụ tính toán lưới hiện nay
Hiện nay trên thế giới có nhiều bộ công cụ phát triển hỗ trợ việc xây dựng lưới ởnhiều mức độ khác nhau Tiêu biểu là:
2.1 Bộ công cụ Globus
Globus là một dự án nghiên cứu gồm nhiều tổ chức tham gia với mục tiêu ban đầu
là cơ sở hạ tầng và các dịch vụ cấp cao cho một lưới tính toán Tuy nhiên hiện nay, nó đã
mở rộng phạm vi thành cơ sở hạ tầng cho phép chia sẻ nhiều loại tài nguyên đa dạng Bộcông cụ Globus Toolkit đã trải qua nhiều giai đoạn phát triển với nhiều phiên bản Hiện nay,phiên bản mới nhất là Globus Toolkit 5.2.4 phát hành vào 28/02/2013
Trang 11Các dịch vụ cơ bản của Globus Toolkit
Theo mô tả ở trên, Globus được thiết kế theo kiến trúc phân tầng với tầng dưới cũngchính là các dịch vụ Web Tầng tiếp theo là các dịch vụ lõi và tầng trên cùng là các dịch vụcấp cao cung cấp các chức năng sử dụng cho người dùng Có thể thấy xuyên suốt kiến trúccủa Globus Toolkit là các cơ chế bảo mật, cũng dực trên nền tảng bảo mất của dịch vụ Web
2.2 Bộ công cụ Legion
Legion là một dự án phát triển middleware cho lưới do trường đại học Virginia pháttriển Bộ công cụ Legion Toolkit được phát hành lần đầu tiên vào năm 1977 Đây là bộ công
cụ lưới hướng đối tượng Năm 1998, công ty Avaki được thành lập đưa bộ công cụ này vào
sử dụng cho mục đích thương mai
2.3 Bộ công cụ Condor
Condor là một công cụ cho phép tận dụng thời gian rảnh rỗi của các máy tính vàocông việc tính toán, rất thích hợp cho các ứng dụng dạng nghiên cứu tham số và tính toánthông lượng cao trong đó các công việc thường không cần liên lạc với nhau Condor-G làmột biến thể của Condor cho phép kết nối với hệ thống lưới dựa trên Globus Toolkit
Trang 12Kết nối giữa Condor-G và Globus Toolkit 2.4 Bộ công cụ Nimrod
Nimrod là bộ công cụ cho người dùng một giao diện để mô tả các ứng dụng nghiêncứu tham số Nimrod-G là một biến thể của Nimrod cho phép liên kết với các hệ thống lướitrên nền Globus Toolkit
Kiến trúc Nimrod-G
Trang 132.5 Dự án Unicore
Unicore là dự án nghiên cứu lưới được tài trợ bởi bộ giáo dục Đức Hiện nay có một
dự án mang tên GRIP (Grid Interoperability Project) đã được thực hiện từ năm 2002 nhằmmang lại khả năng tương tác giữa Unicore và Globus
3 Phân loại lưới tính toán
3.1 Lưới tính toán (Computation Grid)
Lưới tính toán là một loại của tính toán lưới, chủ yếu tập trung vào việc sử dụngnăng lực tính toán của lưới Ở loại lưới này, phần lớn các node là các nhóm máy tính cónăng lực tính toán lớn, để phục vụ cho việc tính toán bài toán 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 thisong song trên các node của lưới Việc phân tán các tá vụ của lưới sẽ làm giảm đáng kể thờigian xử lý và làm tăng khả năng tận dụng của hệ thống Thông thường, 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 lưới.Mỗi node thực hiện xử lý dữ liệu, kết quả trả về hệ thống chính, tại đây sẽ tổng hợp và trìnhdiễn kết quả toàn cục cho người dùng
Lưới tính toán 3.2 Lưới dữ liệu (Data Grid)
Lưới dữ liệu sẽ tập trung vào việc lưu trữ và cung cấp khả năng truy xuất dữ liệucủa nhiều các nhân, tổ chức khác nhau Người dùng không cần biết chính xác vị trí dữ liệukhi thao tác với dữ liệu Các cơ sở dữ liệu, đặc biệt là các cơ sở dữ liệu liên hợp đóng vai trò
Trang 14quan trọng trong 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ếthợp các thông tin từ các nguồn dữ liệu này Lưới dữ liệu có thể được sử dụng trong lĩnh vựckhai phá dữ liệu hoặc các hệ thống thương mại thông minh Trong trường hợp này, khôngchỉ có hệ thống tập tin 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ể kết hợp lưới dữ liệu và lưới tính toán
Data Grid và Compute Grid + Data Grid 3.3 Lưới kết hợp (Scavenging Grid)
Lưới kết hợp có thể được xem là một loại kết hợp giữa data grid và compute grid.Một scavenging thường được dùng với nhiều máy tính để bàn Các máy tính sẽ được kiểmtra định kỳ để xem khi nào bộ xử lý và các tài nguyên khác rảnh rỗi để thực hiện các tác vụlưới Chủ nhân của các máy tính này sẽ được quyền xác định khi nào sẽ chia sẻ máy tính vớimạng lưới
Trang 154 Kiến trúc phân tầng của lưới
Kiến trúc phân tầng của lưới [2]
* Tầng Fabric: giúp định vị các tài nguyên, bao gồm tài nguyên tính toán (CPU), tàinguyên lưu trữ (đĩa) và tài nguyên mạng
* Tầng Connectivity: giúp định nghĩa các giao thức truyền thông và xác thực cầnthiết trên môi trường lưới
- Giao thức truyền thông cho phép trao đổi dữ liệu giữa các tài nguyên tầngFabric
- Giao thức xác thực cung cấp cơ chế mã hóa để nhận biết người dùng và tàinguyên
* Tầng Resource: xác định các giao thức, tập các API để truy cập đến từng loại tàinguyên được chia sẻ đơn lẻ trên lưới
* Tầng Collective: chứa các giao thức và dịch vụ cho phép truy cập tập hợp tàinguyên trên lưới (trong khi tầng Resource chỉ truy cập từng loại tài nguyên)
* Tầng Application: bao gồm tất cả các ứng dụng của người dùng cuối trên môitrường lưới
5 Lợi ích của tính toán lưới
5.1 Khai thác tận dụng các nguồn tài nguyên nhàn rỗi
Đây có thể được coi là lợi ích lớn nhất mà lưới mang lại và cũng là lợi ích dễ nhìnthấy nhất khi triển khai một hệ thống lưới Hầu hết các tổ chức đều có một lượng lớn các tàinguyên tính toán nhàn rỗi là các máy tính trong tổ chức của mình (bao gồm cả máy chủ)
Trang 16Cá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 servercũ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ềucá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 tính nhànrỗ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ínhnhàn rỗi khác cho xử lý song song, …
Một chức năng nữa của lưới đó là cân bằng sử dụng tài nguyên tốt hơn Một tổ chứcthường gặp các vấn đề không mong đợi khi các hoạt động đòi hỏi thêm nhiều tài nguyên.Với lưới, có thể chuyển hoạt động đến tài nguyên nhàn rỗi khác, hoặc có thể thêm tàinguyên mới một cách dễ dàng, từ đó là tăng khả năng của hệ thống
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ônggian 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 tínhđơn lẻ thông qua cơ chế quản lý dữ liệu
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 một tổ chức lớn, hỗ trợ hoạch định các chiếnlược sử dụng tài nguyên
5.2 Sử dụng bộ xử lý song song
Khả năng sử dụng 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 các bài toán đòi hỏi năng lực xử lý lớn trong các ngành y dược, tính toán tài chính,kinh tế và khai thác dầu hỏa, dự báo thời tiết, công nghiệp vũ trụ, thiết kế sản phẩm, …
5.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 tính toán lưới là cho phép đơn giản hóahợp tác chia sẻ, làm việc giữa cộng đồng rộng lớn trên toàn thế giới
Các công nghệ phân tán trước đây cũng cho phép hợp tác nhưng chỉ trong quy mônhỏ, còn lưới cho phép trên phạm vi toàn cầu khi đưa ra những chuẩn quan trọng cho phépcá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
Trang 175.4 Cho phép chia sẻ 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òn 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 và các dịch vụ, …
Ví dụ: Một người muốn tăng băng thông kết nối internet của mình lên để thực hiệnmộ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ó kết nối internet riêng, từ đó băng thông truy cập internet của người đó sẽ tăng lên rấtnhiều lần, …
5.5 Tăng tính tin cậy cho 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, chi phí cao
để tăng độ tin cậy Chẳng hạn có thể sử dụng các chip có các mạch dự phòng để có thể phụchồi lỗi khi có sự cố về phần cứng Một máy tính có thể sử dụng các bộ xử lý đôi, cho phép
“cắm nóng” để khi có một vi xử lý 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 chiphí quá đắt khi phụ kiện đi kèm cũng phải nhâ lên
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ôngnghệ 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ông nghệ đó Các
hệ thống trong lưới thường rẻ và phân tán thep địa lý Do đó, nếu có sự cố về nguồn điệnhay 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 node kháckhi phát hiện có lỗi trong hệ thống Nếu quan trọng hơn nữa, trong các hệ thống theo thờigian thực, nhiều bản dự phòng của các công việc quan trọng có thể được chạy trên nhiềumáy tính khác nhau trong lưới để đảm bảo độ tin cậy tối đa
5.6 Tăng khả năng quản trị các hệ thống
Mục tiêu “ảo hóa” tất cả các tài nguyên và cung cấp giao diện quản lý đơn giản nhấtcá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ạng tầngcô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ó nhiều dự án
sử dụng hạ tầ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
Trang 18CHƯƠNG II: NHÀ KHO DỮ LIỆU TRÊN MÔI TRƯỜNG LƯỚI
1 Nhà kho dữ liệu
1.1 Tại sao cần nhà kho dữ liệu
Những năm 1980, các hệ thống xử lý giao tác trực tuyến OLTP (OnLineTransaction Processing) dựa trên mô hình cơ sở dữ liệu quan hệ được xây dựng để phân tích
tự động các khía cạnh trong kinh doanh như: xếp thứ tự xử lý đơn hàng, quản lý tài chính,kiểm kê, Một thách thức được đặt ra là làm sao để giải thích kết quả mà OLTP mang lại.Đầu những năm 1990, trong một nỗ lực nhằm tạo ra một khung nhìn khái quát về hoạt độngkinh doanh, khái niệm nhà kho dữ liệu (data warehouse) được Inmon xây dựng [4] Theo
đó, dữ liệu được gom lại từ nhiều hệ thống xử lý hàng ngày của doanh nghiệp để cung cấpmột cái nhìn toàn diện về hoạt động của doanh nghiệp
Một trong những thách thức mà các công ty, tổ chức kinh tế phải đối mặt là vấn đềcải tiến kỹ thuật công nghệ, nâng cao hiệu quả hoạt động trong bối cảnh không có hoặc córất ít kinh phí Bên cạnh đó, yếu tố cạnh tranh tạo nên một khối lượng lớn thông tin cần xử
lý để đưa ra chiến lược kinh doanh đúng đắn và nhanh nhất Chiến lược kinh doanh có thểđược rút ra từ việc nhìn nhận lại kết quả kinh doanh đã qua, kho dữ liệu kinh doanh rất lớn
và đang tăng lên liên tục, không thể xóa đi vì còn khai thác, và cũng khó có thể khai thác hết
do hạn chế về tốc độ xử lý dữ liệu của thiết bị đang có Một trong những cách được chọn là
tổ chức lại hoạt động theo hướng hợp nhất thiết bị, dữ liệu và ứng dụng lại thành các hệthống tập trung Điều này đòi hỏi dữ liệu phải được tổ chức sao cho có thể tích hợp nhiềunguồn khác nhau để tạo nên các báo cáo tổng quát và tập trung Nhà kho dữ liệu đóng vaitrò rất lớn trong cách giải quyết như vậy
1.2 Định nghĩa về nhà kho dữ liệu
Theo W H Inmon: Nhà kho dữ liệu là nơi lưu trữ dữ liệu hướng chủ thể (SubjectOriented), tích hợp (Intergrated), có yếu tố thời gian (Time-Variant), bền vững(Nonvolatile) nhằm thu thập dữ liệu phục vụ cho các thao tác hỗ trợ ra quyết định [4]
- Hướng chủ thể (Subject Oriented): nhà kho dữ liệu được thiết kế nhằm mục đíchphân tích dữ liệu Do vậy, nhà kho được thiết kế xung quanh các chủ thể, tập trung chínhvào việc mô hình hóa và phân tích các sự kiện của chủ thể mà không tập trung vào các hoạt
Trang 19động hay các giao tác xử lý hằng ngày.
- Khả năng tích hợp (Intergrated): nhà kho dữ liệu lưu trữ dữ liệu từ nhiều nguồnkhác nhau Mỗi nguồn dữ liệu có định dạng, tên thuộc tính, đơn vị đo, khác nhau, nhàkho dữ liệu phải có khả năng biến đổi và tích hợp dữ liệu từ các nguồn đó
- Tính bền vững (Nonvolatile): dữ liệu chỉ có thêm vào mà không thay thế và sửađổi Kho dữ liệu không yêu cầu các cơ chế xử lý toàn tác, phục hồi và điều khiển tươngtranh, chỉ yêu cầu hai thao tác: nạp và truy cập dữ liệu
- Có yếu tố thời gian (Time-Variant): yêu cầu quan trọng trong kho dữ liệu là phạm
vi thời gian dài hơn so với các hệ thống tác nghiệp Dữ liệu được so sánh theo biến thờigian và có tính lịch sử (5 - 10 năm)
1.3 Các thành phần của nhà kho dữ liệu
Các thành phần của nhà kho dữ liệu
- Phương pháp luận (Methodology): Khi định hướng xây dựng kho dữ liệu phảicung cấp các lý giải đảm bảo sự thành công của kho dữ liệu, thúc đẩy sự phát triển của đơn
vị Bên cạnh đó phải cung cấp hướng ổn định cho kho khi dữ liệu tăng lên, dữ liệu phải antoàn, quản lý được và quan trọng là kiểm chứng được để tạo ấn tượng và thuyết phục
- Mô hình hóa (Modeling): Kho dữ liệu được thiết kế hướng chủ thể và phục vụ cácyêu cầu phân tích Do vậy dùng các công cụ mô hình để định hướng và nhận dạng các chủthể, định nghĩa mối quan hệ giữa các chủ thể
- Các thao tác dữ liệu trong kho (ETL: Extraction, Transformation and Loading):Extraction: chiết xuất dữ liệu từ các nguồn dữ liệu tác nghiệp
Transformation: làm sạch, chuyển đổi định dạng dữ liệu cho phù hợp với cấu trúclogic và cấu trúc vật lý của kho
Loading: xác nhận hợp lệ, gán nhãn thời gian, tích hợp và chuyển dữ liệu vào kho
- Bộ phận quản lý dữ liệu (Data Management): bao gồm các công cụ quản lý hệ
Methodology Design and Model
Management
Data Access And Analysis
Trang 20thống một cách hiệu quả: quản lý phần cứng, hệ điều hành, mạng và dữ liệu.
- Truy cập dữ liệu và tạo báo cáo (Data Access and Analysis): bao gồm các công cụdùng để truy vấn dữ liệu cho việc phân tích kinh doanh
1.4 Kiến trúc của nhà kho dữ liệu
Kiến trúc của nhà kho dữ liệu
Dữ liệu từ các nguồn bên ngoài và đặc biệt là từ các cơ sở dữ liệu tác nghiệp củadoanh nghiệp, đây là dữ liệu thô, cần phải làm sạch, biến đổi theo cấu trúc của siêu dữ liệu(metadata) và đưa vào kho Để khai thác dữ liệu trong kho, cần có các công cụ để thực hiện
3 chức năng khai thác chính: truy vấn, báo cáo; phân tích trực tuyến và khai phá dữ liệu đểtìm thông tin, quy luật hữu ích
1.5 Mô hình của nhà kho dữ liệu đa chiều
Mô hình đa chiều (Dimension Model) là mô hình thiết kế nhà kho dữ liệu dựa trên
mô hình thực thể kết hợp (Entity Relationship Model) của cơ sở dữ liệu quan hệ Như trong
mô hình thực thể kết hợp, mỗi thực thể là một lớp đối tượng tham gia vào hệ thống giữa cácthực thể có mối liên hệ Trong mô hình đa chiều, dữ liệu được mô tả bằng các khái niệm:chiều (dimensions), dữ kiện (facts) và các khối đa chiều (cubes)
Trang 21Mô hình nhà kho dữ liệu đa chiều
Bảng dữ kiện (Fact table), có thể có một hoặc nhiều bảng, chứa thông tin thực sự,thường là bảng có nhiều dòng nhất và số dòng tăng lên nhanh nhất Bảng dữ kiện chứa tất
cả dữ liệu chi tiết lưu trữ trong nhà kho dữ liệu như: tất cả chi tiết mua hàng của kháchhàng, tất cả cuộc gọi của khách hàng, Giả sử một khách hàng đã mua hàng tổng cộng 10lần, mỗi lần mua 5 mặt hàng nghĩa là có 50 (10 x 5) dòng dữ liệu trong bảng sự việc Sales
Khi thiết kế nhà kho dữ liệu, tùy vào nhu cầu sử dụng, người thiết kế có thể có rấtnhiều bảng dữ kiện khác nhau Thông thường các thông tin cần phải lưu trữ thành bảng dữkiện là các thông tin dạng số, có thể tính toán, tổng hợp, phân tích và báo cáo
Trong mô hình nhà kho dữ liệu đa chiều có rất ít bảng dữ kiện, nhưng có nhiềubảng chiều (Dimension table) Bảng chiều có thể được xem như các bảng tham chiếu củabảng dữ kiện, chứa thông tin mô tả về một phần dữ liệu đang có trong bảng dữ kiện Ví dụnhư: bảng sản phẩm là một bảng chiềụ của bảng dữ kiện giao dịch bán hàng, bởi vì bảngsản phẩm chứa các thông tin mô tả sản phẩm như: tên, nhà cung cấp, quy cách,
Thông tin cần cho dimension table thường là thông tin dạng tĩnh, ít biến đổi Mộtdata warehouse thường có rất nhiều dimension table nhưng không nên vượt quá 20 và ítnhất là 4 chiều
Khối là một liên kết giữa giá trị các chiều Khối có nhiều hơn 3 chiều được gọi làsiêu khối (hypercube)
Trang 22Fact table Sales lưu trữ số lượng hàng đã bán (amount_sold)
Các khối đa chiều của fact table Sales
1.6 Thiết kế mức vật lý của nhà kho dữ liệu
Mô hình đa chiều là mô hình mức luận lý có thể thiết kế trên giấy hoặc các công cụ
hỗ trợ Chúng ta cần chuyển từ thiết kế luận lý sang thiết kế vật lý đế tiếp cận cấu trúc vật
lý của cơ sở dữ liệu Khi đó, chúng ta cần tạo các thành phần sau:
• Không gian lưu trữ (Tablespaces): Một tablespace bao gồm một hoặc nhiềutập tin dữ liệu (datafile) của hệ thống Mỗi datafile chỉ được đặt trong mộttablespace
• Các bảng phân hoạch (Partitioned table): các bảng dữ liệu có thể được phânhoạch theo một khóa nào đó thành nhiều bảng nhỏ hơn, nhằm để tăng tốc độtruy cập và dễ quản lý
• Các bảng chỉ mục phân hoạch (Partitioned Index): các bảng dữ liệu thườngđược đánh chỉ mục, các bảng chỉ mục cũng được phân hoạch theo bảng dữliệu
Trang 232 Phần mềm hạ tầng lưới Globus Toolkit
2.1 Kiến trúc của Globus Toolkit
Globus Toolkit là middleware được phân phối miễn phí và là middleware được sửdụng nhiều nhất trên thế giới Bộ công cụ Globus Toolkit bao gồm nhiều thành phần cóquan hệ mật thiết với nhau, mỗi thành phần cung cấp các dịch vụ và tập API tương ứng.Globus Toolkit bao gồm 3 thành phần trụ cột:
• Dịch vụ quản lý tài nguyên (Resource Management): đảm nhận vai trò điềuphối các nguồn tài nguyên
• Dịch vụ thông tin (Information Services): cung cấp thông tin về các nguồn tàinguyên trên lưới, qua đó có thể biết được nguồn tài nguyên nào hiện đangrảnh hoặc biết được trạng thái của toàn hệ thống lưới
• Dịch vụ quản lý dữ liệu (Data Manegament): cung cấp giao thức cập chuyểngiao và quản trị dữ liệu trên môi trường lưới
Các tầng của Globus Toolkit [5]
Trang 24Kiến trúc tổng quan của Globus
Các thành phần của Globus Toolkit đều được đặt trên nền tảng bảo mật tin cậy.Globus Toolkit sử dụng cơ chế bảo mật GSI (Grid Security Infrastructure) GSI cung cấpnhiều tiện ích cho việc xác thực, cấp quyền và truyền thông an toàn trên lưới Ngoài ra, GSIcòn cung cấp cơ chế đăng nhập một lần, cho phép người sử dụng chỉ cần xác thực một lầnduy nhất bất kể số lượng tài nguyên mà họ sử dụng
2.2 Thành phần Security
GSI sử dung cơ chế mã hóa khóa công khai (còn gọi là mã hóa không đối xứng).Các khái niệm dùng trong GSI:
* Cơ chế mã hóa khóa công khai (Public key cryptography):
Khác với các cơ chế mã hóa trước đây chỉ dùng một khóa khóa đơn (mật khẩu