Chương 1: Tổng quan về đề tài. Chương này trình bày động cơ nghiên cứu, dựa trên tình hình thực tế việc sử dụng tài nguyên tính toán và lưu trữ chưa hiệu quả, trong khi có nhu cầu về môi trường thực thi đa dạng, khả cấu hình cao, để đề xuất triển khai mô hình cluster ảo, xây dựng dựa trên nền tảng cloud và công nghệ ảo hóa. Trong chương này cũng đặt ra mục tiêu và ý nghĩa của đề tài. Chương 2: Cơ sở lý thuyết.
Trình bày các khái niệm về Cluster, Grid và Cloud computing, đặc điểm của từng mô hình, trong đó Cluster ưu tiên về thế mạnh tính toán, cộng tác; Grid và Cloud Computing giúp triển khai trên môi trường hỗn tạp. Cùng với thế mạnh của ảo hóa ở phần sau của chương, giải thích sự kết hợp, hỗ trợ tốt của việc xây dựng cluster ảo trên nền tảng đám mây cung cấp cơ sở hạ tầng được ảo hóa như một dịch vụ. Chương 3: Các công trình nghiên cứu liên quan. Chương này tổng hợp các công trình nghiên cứu liên quan đến virtual cluster, với các ưu điểm và hạn chế.
Từ đó định hướng cho giải pháp của Luận văn. Chương 4: Virtual Cluster. Tập trung vào mô tả và định nghĩa một virtual cluster theo không gian làm việc ảo (virtual workspace) về mặt lí thuyết. 1 “Nimbus is cloud computing for science” – khẩu hiệu của Nimbus trên website http://www.org Trang 5 Luận văn ngành Khoa học Máy tính – Khóa 2009 Chương 5: Hệ thống Cluster ảo VCloud.
Chương này trình bày việc triển khai một Virtual Cluster theo yêu cầu, sử dụng Nimbus Toolkit xây dựng một private cloud hướng dịch vụ cơ sở hạ tầng để làm nền tảng. Việc quản lý và sử dụng hệ thống thông qua giao diện web, hỗ trợ các đối tượng người dùng khác nhau. Chương 6: Thử nghiệm và đánh giá. Chương này trình bày việc thử nghiệm hệ thống và đánh giá kết quả nhằm kiểm nghiệm lại xem hệ thống đã giải quyết được các vấn đề đặt ra như thế nào.
Qua đó, đánh giá sâu hơn về những ưu khuyết điểm của công cụ Nimbus và hệ thống VCloud, đồng thời đề xuất những cải tiến và phương án triển khai tối ưu. Chương 7: Kết luận và hướng phát triển. Chương này tóm tắt lại những kết quả Luận văn đã thực hiện được và chỉ ra những công việc tiếp theo, nhằm định hướng phát triển cho hệ thống. Trang 6 Luận văn ngành Khoa học Máy tính – Khóa 2009 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT Chương này bắt đầu bằng việc điểm lại các khái niệm, định nghĩa về Cluster, Grid và Cloud Computing.
Công nghệ ảo hóa những năm gần đây đã có những bước phát triển vượt bậc, giúp hiện thực Cloud Computing. Do đó, chúng tôi sẽ đi sâu vào trình bày các khái niệm, định nghĩa và phân tích ưu khuyết điểm của công nghệ ảo hóa. Đây là cơ sở để tiếp cận việc xây dựng Cluster ảo, dựa trên công nghệ ảo hóa và Cloud computing. Computer Cluster Cluster, hiểu đơn giản là nhóm các máy tính kết nối làm việc cùng nhau trong phạm vi hẹp (tòa nhà, phòng thí nghiệm), thường qua mạng nội bộ (LAN) tốc độ nhanh, ưu tiên thực thi những công việc đòi hỏi năng lực tính toán cao, mà người dùng nhìn vào như đó là một máy duy nhất.
Mỗi máy là một node của cluster. Về tổ chức, có hai hình thức: đồng nhất (homogeneous) & bất đồng nhất (heterogeneous). Dạng cluster đồng nhất thường phổ biến hơn, dễ quản lý và sử dụng hơn dạng thứ hai. Về mặt chức năng, có ba dạng chủ yếu: Sẵn sàng cao (High Availablity – HA), Cân bằng tải (Load balancing), và Tính toán hiệu năng cao (HPC).
HA Cluster được triển khai nhằm tăng cường tính sẵn sàng của dịch vụ mà cluster cung cấp, khi hệ thống gặp sự cố. Nhiều node dự phòng được chuẩn bị sẵn, để thay thế cho node bị hư hỏng khi đang chạy. Do đó, nó còn được gọi là Failover Cluster, thường được sử dụng cho các ứng dụng kinh doanh, cơ sở dữ liệu quan trọng, v.v… Load balancing cluster gồm nhiều máy kết nối với nhau để chia sẻ khối lượng công việc tính toán. Thường có một hay nhiều bộ cân bằng tải để đảm nhận việc chia sẻ này.
HPC Cluster lại được sử dụng chủ yếu trong tính toán khoa học, nhằm tăng năng lực và tốc độ tính toán bằng cách chia nhỏ công việc cho nhiều node khác nhau, thường là để thực hiện song song. Trang 7 Luận văn ngành Khoa học Máy tính – Khóa 2009 2. Grid Computing Khái niệm Grid Computing, theo Wikipedia, là sự kết hợp các tài nguyên máy tính từ các vùng khác nhau (được gọi là administrative domain), nhằm thực hiện một mục đích chung nào đó. So với cluster, ràng buộc trong Grid lỏng lẻo hơn (loosely coupled), tức là không yêu cầu tài nguyên đồng nhất mà cho phép kết hợp các loại tài nguyên khác nhau về phần cứng, hệ điều hành, v.v…, trên phạm vi rộng hơn về mặt địa lý, sử dụng các giao thức (protocol) và giao tiếp (interface) phổ biến, thông thường.
Những công việc mà Grid có khả năng đảm nhiệm ở quy mô lớn hơn Cluster. Ứng dụng sinh-tin học (như Folding@Home, tìm hiểu sự xoắn lại của protein liên quan đến bệnh tật như thế nào), dự báo thời tiết, giả lập khí động lực, tìm kiếm sự sống ngoài trái đất (Einstein@Home, SETI@Home), là những ví dụ của những dự án Grid đang tiến hành hiện nay. Ưu điểm của Grid ở chỗ có khả năng giải quyết các bài toán lớn, phức tạp trong khoảng thời gian ngắn, dễ dàng hợp tác với các tổ chức khác trên phạm vi toàn thế giới. Ngoài ra, Grid còn cho phép tận dụng và sử dụng hiệu quả tài nguyên có sẵn, có thể với tài nguyên ở xa, khi có nhu cầu.
Tuy nhiên, Grid vẫn còn nhiều ràng buộc phức tạp khiến cho nó chưa được chấp nhận rộng rãi. Người dùng trên Grid thường không được cấp toàn quyền (ở cấp độ root user) cho việc truy xuất tài nguyên từ xa vì lý do an ninh. Do đó, các yêu cầu về triển khai phần mềm làm việc cùng nhau (còn gọi là software stack), hay cơ sở dữ liệu, có thể không thực hiện được. Hơn nữa, rất khó để thỏa mãn tài nguyên cho người dùng theo nhu cầu vốn đa dạng, phong phú, vì tài nguyên trên Grid thường không đáp ứng đủ, do thiếu hoặc không tương thích, do tính chất hỗn tạp, bất đồng bộ của nó [MKF10].
Cloud Computing Cloud Computing đã khắc phục được một số hạn chế của Grid computing, trong đó người dùng có quyền kiểm soát tài nguyên từ xa, được cung cấp nền tảng được ảo hóa để triển khai nhóm phần mềm làm việc cùng nhau (software stack) từ hệ điều hành cho tới các loại phần mềm khác nhau [MKF10]. Đó là dạng thức của Infrastructure-as-a-Service (IaaS) cloud, cung cấp cơ sở hạ tầng dưới dạng dịch vụ, Trang 8 Luận văn ngành Khoa học Máy tính – Khóa 2009 mà Luận văn sẽ sử dụng. Tuy nhiên, trước hết, hãy làm rõ định nghĩa về Cloud Computing. Định nghĩa Có nhiều định nghĩa về Cloud Computing.
Theo Ian và cộng sự [FZR+08], đó là một “mô hình tính toán phân bố diện rộng được thúc đẩy bởi lợi ích kinh tế khi mở rộng, trong đó năng lực tính toán, tài nguyên lưu trữ, các nền tảng và dịch vụ được trừu tượng hóa, ảo hóa, co dãn linh động, và được quản lý, chuyển giao theo yêu cầu tới khách hàng trên mạng toàn cầu Internet.” (A large-scale distributed computing paradigm that is driven by economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet.”) Ngay từ khi ra đời vào khoảng năm 2007, Cloud Computing đã nhanh chóng trở thành đề tài thu hút sự chú ý của không chỉ giới công nghệ, khoa học. Những sản phẩm của công nghệ này đang ngày được triển khai nhiều với loại hình sản phẩm, dịch vụ phong phú. Cloud Computing hứa hẹn sẽ tạo ra một cuộc cách mạng về Internet nơi mà tất cả hạ tầng kiến trúc đang có được sự đầu tư khổng lồ từ các hãng công nghệ như Microsoft, IBM, Sun, Google, Amazon… Người ta hình dung về một thế giới số, khi mà không còn máy tính cá nhân, tất cả đều sử dụng qua Internet, mọi lúc, mọi nơi. Cloud Computing xây dựng trên công nghệ ảo hóa và Internet.
Mọi khả năng liên quan đến công nghệ thông tin đều có thể được cung cấp dưới dạng dịch vụ. Người dùng không phải quan tâm nó làm thế nào, được quản lý ra sao, mà chỉ cần biết nó làm được gì cho mình. Từ đó, đưa ra yêu cầu cấu hình máy như thế nào, ở bất cứ đâu, và chỉ trả phí cho những gì mình sử dụng. Chi tiết về công nghệ ảo hóa sẽ được trình bày ở phần tiếp theo.
Các mô hình Cloud Computing Các mô hình Cloud Computing được phân thành hai loại: • Mô hình dịch vụ (Service Model): Phân loại các dịch vụ của các nhà cung cấp dịch vụ Cloud Computing. Trang 9 Luận văn ngành Khoa học Máy tính – Khóa 2009 • Mô hình triển khai (Deployment Model): Phân loại cách thức triển khai dịch vụ Cloud Computing đến với khách hàng. Mô hình triển khai Theo mô hình triển khai, có thể phân ra các dạng chính: Public, Private, và Hybrid Cloud. Public Cloud: Các dịch vụ Cloud được nhà cung cấp dịch vụ cung cấp cho mọi người sử dụng rộng rãi.
Các ứng dụng và dữ liệu của khách hàng nằm trên hệ thống tài nguyên dùng chung. Người dùng được sử dụng dịch vụ với giá hợp lý, thu hẹp hay mở rộng tùy theo nhu cầu, và không cần quan tâm các vấn đề về bảo mật, xây dựng hệ thống, v.v… Tuy nhiên, vì dữ liệu người dùng đều do nhà cung cấp cloud bảo vệ và quản lý, khách hàng có thể cảm thấy không an tâm nhất là với dữ liệu nhạy cảm, quan trọng. Private Cloud: trong mô hình này, cơ sở hạ tầng và dịch vụ được xây dựng theo yêu cầu và để phục vụ cho một tổ chức hay doanh nghiệp duy nhất. Do đó, doanh nghiệp có thể kiểm soát tối đa đối với dữ liệu, bảo mật và chất lượng dịch vụ.
Doanh nghiệp sở hữu cơ sở hạ tầng và quản lý các ứng dụng được triển khai trên đó. Private Cloud có thể được xây dựng và quản lý bởi chính đội ngũ IT của doanh nghiệp hoặc có thể thuê một nhà cung cấp dịch vụ đảm nhiệm công việc này. Như vậy, mặc dù tốn chi phí đầu tư nhưng Private Cloud lại cung cấp cho doanh nghiệp khả năng kiểm soát và quản lý chặt chẽ những dữ liệu quan trọng. Google sở hữu một private cloud, dùng để thực hiện rất nhiều dịch vụ cho người dùng, bao gồm Gmail, Google Docs, Good Dịch, Google Map, v.