Trong Luận văn này, chúng tôi nghiên cứu và ứng dụng nền tảng đám mây cung cấp cơ sở hạ tầng như một dịch vụ của Nimbus để triển khai cụm máy tính ảo, nhằm đáp ứng những nhu cầu trên, tr
TỔNG QUAN VỀ ĐỀ TÀI
Động cơ nghiên cứu
Grid computing (tạm dịch là Điện toán Lưới) và gần đây là Cloud computing (Điện toán Đám mây) đã có những bước phát triển mạnh mẽ, đem lại nhiều lợi ích cho cộng đồng nghiên cứu khoa học và ứng dụng Tuy vậy, trong thực tế, Cluster (máy tính cụm) vẫn được sử dụng rộng rãi, đặc biệt trong tính toán hiệu năng cao
Hơn 80% siêu máy tính mạnh nhất hiện nay được tổ chức ở dạng cluster [Top08]
Không chỉ trên thế giới, ở Việt Nam mô hình Cluster vẫn là lựa chọn được ưu tiên bởi các lý do:
- Khả năng co giãn, linh hoạt Quy mô của một cluster nằm trong tầm tay của một tổ chức, hoàn toàn có thể mở rộng hay thu hẹp tùy theo nhu cầu và khả năng, tiềm lực của mình;
- Nâng cao năng lực tính toán, một đặc trưng của cluster;
- Nâng cao tính sẵn sàng của hệ thống, giảm thiểu rủi ro khi có sự cố, duy trì hệ thống ổn định và luôn sẵn sàng;
- Chi phí thấp, do tận dụng được các tài nguyên sẵn có, không kể cũ hay mới;
- Toàn quyền quản lý, nâng cấp Dễ dàng thực hiện với nguồn lực có sẵn;
- Không phải trang bị mới hay nâng cấp cơ sở hạ tầng hiện có
Tuy vậy, các mô hình cluster truyền thống vẫn còn nhiều hạn chế, đặc biệt là vấn đề chia sẻ tài nguyên Do khả năng đáp ứng của cluster có hạn, việc yêu cầu tài nguyên của người dùng khi chạy các ứng dụng đặc thù thường không được thỏa mãn; hoặc môi trường thực thi không tương thích, do khác biệt về hệ điều hành, nền tảng, dẫn đến tài nguyên có sẵn nhưng lại không sử dụng được Mặc khác, hiệu suất sử dụng tài nguyên thường không cao Theo Tony Iams, chuyên gia phân tích của công ty nghiên cứu D.H Brown Associates Inc ở Port Chester, New York, Mỹ, chỉ khoảng 15-20% khả năng của hệ thống được tận dụng, còn lại là lãng phí, không sử dụng hết Ngoài ra, do sự phát triển mạnh mẽ về công nghệ, cùng với đó là giá thành các thiết bị máy tính giảm, tạo điều kiện cho việc trang bị mới phòng thí nghiệm, máy tính, thiết bị lưu trữ, v.v Các thiết bị, máy tính cũ cũng có thể còn được tiếp tục sử dụng Thêm vào đó là sự phân hóa chức năng của cluster (ví dụ cluster dành cho thử nghiệm/HPC [CNP09]) Thực tế đó khiến cho sự bất đồng bộ tăng lên trong cùng cluster và giữa các cluster với nhau Giải pháp nào để tận dụng nguồn tài nguyên này hiệu quả?
Mặc dù những vấn đề này có thể được khắc phục một phần bằng cách phân hoạch cluster, mỗi vùng cài đặt những thư viện, công cụ khác nhau, nhằm mở rộng khả năng đáp ứng, như hệ thống Cluster-On-Demand (cluster-theo-yêu-cầu)
[CIG+03], nhưng vẫn còn nhiều hạn chế do không lường hết được những yêu cầu mới Ngoài ra còn tồn tại những vấn đề về an ninh, cách li khi gặp sự cố, thời gian phục hồi sau sự cố kéo dài, việc quyền kiểm soát chia sẻ, gây ra khó khăn cho phía cung cấp cũng như người sử dụng hệ thống
Khi những tiến bộ và đặc tính nổi trội của công nghệ ảo hóa (virtualization techonology) được chú ý, đặc biệt trong khoảng mười năm gần đây, nhiều công trình đã nghiên cứu và ứng dụng vào Grid Computing Công nghệ ảo hóa đem lại nhiều lợi ích trong việc khai thác tài nguyên so với mô hình truyền thống Với một máy tính sẵn có, nay có thể tạo ra một máy tính ảo khác, với hệ điều hành, phần mềm cài đặt,… hoàn toàn khác so với máy đó Có thể tạo nhiều máy ảo, cùng chạy song song và độc lập nhau, trên cùng một máy vật lý (máy chủ) Điều này giúp khai thác, tận dụng tốt hơn tài nguyên sẵn có Từ đây hình thành khái niệm Virtual Cluster, cụm các máy tính ảo Người dùng có thể tạo môi trường thực thi phù hợp với ứng dụng để có thể triển khai Hơn nữa, tính an ninh, bảo mật cũng cao hơn, do có sự cách li, độc lập giữa khách và máy chủ, cũng như giữa các máy khách với nhau Một khả năng rất có ích là các máy ảo này có thể được di trú (migrate) sang một máy vật lý khác trong cùng cluster hay ở nơi khác, bảo toàn mọi thông tin, trạng thái, tiến trình, ngay cả khi nó đang chạy, bảo đảm tính sẵn sàng cao của hệ thống, cũng như sử dụng tài nguyên hiệu quả hơn Những giải pháp hiện thực hóa máy ảo của XEN [BDF+03] và VMware [VMw] giúp giải quyết nhiều vấn đề mang tính cổ điển của Grid
Tuy vậy, tính co dãn, mở rộng, linh hoạt của virtual cluster khi triển khai vẫn còn gặp nhiều hạn chế, do giới hạn của việc tạo, phân phối và sử dụng máy ảo Việc ảo hóa tuy có rất nhiều ưu điểm, nhưng cũng tồn tại một số hạn chế khi áp dụng thực tế, như làm giảm một phần hiệu năng sử dụng của hệ thống, do chi phí dành cho CPU, I/O, và giao tiếp mạng [HBA04] Quá trình sao chép, truyền tải các hình ảnh máy ảo (VM Image) giới hạn bởi tốc độ mạng Điều này gây trở ngại cho những công việc bị ràng buộc thời gian, như đáp ứng thời gian thực (real-time), hay khi cần có sự tương tác với người dùng Những hạn chế này càng bộc lộ rõ, khi có yêu cầu triển khai một số lượng lớn máy ảo Máy tính ngày càng mạnh, việc tạo hàng trăm hay hàng ngàn máy ảo, thậm chí nhiều hơn, để đáp ứng nhu cầu công việc, không phải là hiếm thấy Các nghiên cứu [NMM07] đã chỉ ra, sự ảnh hưởng này không biểu diễn được ở hàm tuyến tính, do những giới hạn nêu trên
Như vậy, việc tận dụng những ưu điểm của công nghệ ảo hóa vào việc xây dựng và triển khai virtual cluster sẽ nâng mức độ tận dụng tài nguyên hiệu quả lên một mức cao hơn, trong khi vẫn giữ được những ưu thế của cluster truyền thống Đặc biệt, nâng cao tính sẵn sàng (HA), năng lực tính toán (HPC), giảm chi phí hơn nữa, nhờ khả năng đặc trưng riêng của ảo hóa như tính cô lập, di trú cả khi đang hoạt động (live migration)
Ngoài ra, khái niệm “Cloud computing”, điện toán đám mây, không còn mơ hồ, như khi xuất hiện cách đây ít năm, mà đã đi vào cuộc sống, với nhiều ứng dụng rộng rãi: Google App cho doanh nghiệp và cá nhân; dịch vụ cho thuê máy chủ trên Amazon EC2, v.v… Các trung tâm về HPC đã nghĩ tới việc thuê các máy tính cấu hình mạnh trên Cloud như Amazon EC2 để thỉnh thoảng thực hiện những công việc tính toán phức tạp, thay vì mua một hệ thống máy tính hiện đại với chi phí cao mà không phải lúc nào cũng cần đến Đây cũng là một hình thức của virtual cluster
Việc nghiên cứu, đánh giá triển khai một hệ thống virtual cluster, là cơ sở để ứng dụng xây dựng mô hình tính toán phù hợp với điều kiện của Việt Nam.
Phạm vi nghiên cứu
Nghiên cứu kiến trúc và hoạt động của một cloud dựa trên nền tảng Infrastructure, có thể cung cấp tài nguyên tính toán và lưu trữ Trên cơ sở đó, xây dựng mô hình virtual cluster theo yêu cầu, triển khai trên hệ thống máy tính và cụm máy tính có sẵn, sử dụng Nimbus toolkit
1.2.2 Không gian và thời gian thực hiện
− Không gian: Tại phòng Thí nghiệm Khoa Công nghệ Thông tin, Đại học Bách Khoa, Đại học Quốc gia Thành phố Hồ Chí Minh
− Thời gian: Từ tháng 02/2012 đến 06/2012.
Mục tiêu và ý nghĩa của đề tài
Để sử dụng hiệu quả tài nguyên tính toán và lưu trữ hiện có, ảo hóa là một giải pháp tốt Đề tài nghiên cứu, đánh giá và triển khai một Infrastructure Cloud, nhằm ảo hóa cơ sở hạ tầng cho mục đích này
Hơn nữa, để đáp ứng những nhu cầu linh hoạt của người sử dụng về một môi trường thực thi khả tùy biến cao, đa mục đích, phù hợp với điều kiện thực tế ở các phòng thí nghiệm, thực hành ở môi trường giáo dục, nghiên cứu, mô hình cluster- theo-yêu-cầu sẽ có ý nghĩa thực tiễn cao Mục tiêu sau cùng là triển khai Virtual Cluster dựa trên Infrastructure Cloud đã xây dựng
Việc xây dựng và sử dụng Virtual Cluster có ý nghĩa thực tế, tận dụng hiệu quả tài nguyên sẵn có đồng thời đáp ứng được những yêu cầu đa dạng của người dùng Tuy nhiên câu hỏi đặt ra là làm sao giải quyết được các vấn đề về cấu hình mạng, chia sẻ tài nguyên, bố trí triển khai máy ảo, khắc phục các hạn chế của việc ảo hóa Cách đánh giá chi phí của việc triển khai và ứng dụng cluster như thế nào Đây cũng là một mục tiêu của đề tài
Sau một thời gian tìm hiểu, so sánh, đánh giá sơ lược, chúng tôi đã chọn Nimbus Toolkit [Nim] (sau này tách ra thành Nimbus Platform và Nimbus Infrastructure), một công cụ miễn phí, mã nguồn mở để xây dựng cloud cho khoa học, như tiêu chí của Nimbus 1 , để ứng dụng và triển khai Tuy nhiên, một trong những hạn chế dễ thấy của Nimbus là thiếu công cụ sử dụng trực quan cho người dùng, tất cả tác vụ đều thực hiện qua cơ chế dòng lệnh Do đó, chúng tôi cũng xây dựng công cụ quản lý và sử dụng Cloud, cũng như Virtual Cluster thông qua giao diện web Mục tiêu chính của đề tài là xây dựng một môi trường thực thi, được tự động hóa ở mức cao nhất, giải phóng người dùng khỏi công việc cài đặt, triển khai, nhằm giảm khả năng gây lỗi, đạt hiệu suất triển khai cao, trên quy mô lớn, bước đầu thử nghiệm ở Phòng thí nghiệm NetLab của Trường Đại học Bách Khoa Thành phố Hồ Chí Minh.
Kết cấu của Luận văn
Luận văn gồm 07 chương, nội dung được trình bày như sau:
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.
CƠ SỞ LÝ THUYẾT
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.
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 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
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
2.3.2 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
• 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
Theo mô hình triển khai, có thể phân ra các dạng chính: Public, Private, và
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.v…
Amazon’s Elastic Computing Cloud (EC2) là một public cloud nổi tiếng nhất hiện nay, cung cấp dịch vụ tính toán tới người dùng bằng cách cho thuê máy ảo từ loại nhỏ (Micro, chi phí khoảng 15-20 đô la Mỹ/tháng) tới siêu máy tính (trên dưới 1000 đô la/tháng)
Như vậy, mỗi mô hình có ưu khuyết điểm riêng Do đó xuất hiện dạng thứ ba, kết hợp ưu điểm của hai dạng trên, là Hybrid Cloud (mạng lai, hỗn hợp)
Hybrid Cloud là sự kết hợp của Public Cloud và Private Cloud Trong đó, các chức năng nghiệp vụ và dữ liệu không quan trọng sẽ được đưa lên Public Cloud để giảm chi phí, các chức năng nghiệp vụ và dữ liệu tối quan trọng được kiểm soát tại Private Cloud của tổ chức/doanh nghiệp
Hình 2-2 Kết hợp các mô hình cloud
Tuy vậy cũng nảy sinh khó khăn khi áp dụng mô hình Hybrid Cloud, đó là làm sao triển khai cùng một ứng dụng trên cả hai phía Public và Private Cloud sao cho ứng dụng đó có thể kết nối, trao đổi dữ liệu để hoạt động một cách hiệu quả
Như vậy, tùy theo nhu cầu cụ thể mà triển khai và sử dụng một hay kết hợp các mô hình ở trên Nhu cầu về ứng dụng có tính tạm thời có thể triển khai trên
Public Cloud bởi vì nó giúp tránh việc phải mua thêm thiết bị để giải quyết một nhu cầu tạm thời Trong khi đó, với những nhu cầu về một ứng dụng thường trú hoặc một ứng dụng có những yêu cầu cụ thể về chất lượng dịch vụ hay vị trí của dữ liệu thì nên triển khai trên Private hoặc Hybrid Cloud
Theo mô hình dịch vụ, có ba loại cơ bản:
• Software as a Service (SaaS), cung cấp dịch vụ ứng dụng cho người dùng phổ thông sử dụng từ xa, như Google Maps, Live Mesh của Microsoft…;
• Platform as a Service (PaaS), cung cấp các nền tảng, môi trường tích hợp để phát triển, kiểm tra, triển khai ứng dụng;
• Infrastructure as a Service (IaaS), phần cứng, phần mềm và các thiết bị đều có thể cho thuê, mở rộng hay thu hẹp theo nhu cầu (elastic) Ví dụ cho thuê server, máy ảo, cả một cơ sở hạ tầng cho nhiều lĩnh vực đáp ứng nhu cầu của doanh nghiệp…
Hình 2-3 Tổng quan các mô hình dịch vụ
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
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.nimbusproject.org
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.
VIRTUAL CLUSTER
Virtual Workspace
Virtual Workspace (tạm dịch là không gian làm việc ảo) là một khái niệm được Keahey và các cộng sự [KFF+05] đưa ra vào năm 2005, khi Grid computing dù đã có những bước phát triển mạnh mẽ nhưng vẫn còn những vấn đề chưa đáp ứng tốt về môi trường thực thi từ xa khả tùy biến và dễ điều khiển Trong thực tế, môi trường Grid hỗn tạp với nhiều loại hệ điều hành, thư viện, phần mềm với rất nhiều phiên bản mới cũ, platform (32-bit, 64-bit), v.v… gây ra nhiều khó khăn cho các ứng dụng chạy trên đó, vốn thường có những yêu cầu rất đặc thù, cụ thể Do đó, ứng dụng có thể chỉ sử dụng được phần nhỏ tài nguyên trên Grid, hoặc không có đủ tài nguyên để chạy
Khó khăn thứ hai, nhu cầu cung cấp một môi trường cô lập, linh hoạt, đáng tin cậy, điều khiển các tài nguyên chia sẻ nhằm đảm bảo sự thực thi của các chính sách chia sẻ tài nguyên và thúc đẩy chia sẻ rộng khắp hơn Đồng thời, giúp cho việc phát triển các giao thức trong việc quản lý các đối tượng Grid một cách thống nhất
Virtual Workspace cho phép Grid định nghĩa một môi trường dưới dạng các yêu cầu (như yêu cầu tài nguyên hay cấu hình phần mềm), quản lý và triển khai trên Grid Để hiện thực Virtual Workspace, có thể tạo các tài khoản Unix hay sử dụng máy ảo Máy ảo có những ưu điểm nổi bật như tính cô lập, ảo hóa phần cứng bên dưới, cho phép tạo máy ảo khách cấu hình độc lập trên nền máy chủ Đặc biệt, với những tiến bộ trong công nghệ ảo hóa, các máy đang chạy có thể được di trú sang địa điểm khác mà không làm ảnh hưởng tiến trình Thuận lợi khác là không làm giảm hiệu năng của ứng dụng cũng như tài nguyên máy chủ Điều này đã được chứng minh
4.1.1 Định nghĩa các Virtual Workspace
Trong việc quản lý tác vụ, Grid chủ yếu vào ánh xạ các công việc vào các tài nguyên, với giả định rằng môi trường thực thi có các cấu hình phù hợp sẽ được cung cấp độc lập với cơ sở hạ tầng Grid Mặc dù giả định đó là đúng, nhưng chỉ với những Grid nhỏ, được liên kết chặt chẽ trong khi ứng dụng chạy trên Grid với những yêu cầu khác biệt, đa dạng, lại truy xuất cùng một số tài nguyên nhất định Khái niệm Virtual Workspace được đưa ra với ý tưởng tự động triển khai trên tài nguyên và cung cấp môi trường thực thi yêu cầu đó Từ đó, các công việc được ánh xạ vào workspace, rồi workspace lại được ánh xạ vào tài nguyên thực sự trên Grid
Một Virtual Workspace là một định nghĩa của một môi trường thực thi, dưới dạng các yêu cầu phần cứng, cấu hình phần mềm, thuộc tính cô lập và các đặc điểm khác Mục đích nhằm nắm bắt các yêu cầu cho một môi trường thực thi trên Grid Từ đó sử dụng các công cụ tự động tìm kiếm, cấu hình, và cung cấp một môi trường thỏa mãn những yêu cầu đó
4.1.2 Bản mô tả Virtual Workspace Để mô tả workspace, người ta dùng XML Schema, chỉ định các thuộc tính chung cho mọi workspace, cũng như các thuộc tính định nghĩa hay thi hành của workspace Dưới đây là một ví dụ mẫu:
Hình 4-1 Bản mô tả Virtual Workspace
Cấu trúc của bản mô tả, trước hết là loại categoryType, mô tả kĩ thuật nào được dùng để tạo workspace (máy ảo, hay nhiều tài khoản) Trạng thái workspace cũng được thể hiện: đang chạy (workspace đã được triển khai trên một tài nguyên), đóng (như một máy ảo đang không có tiến trình chạy), tạm dừng (ví dụ một máy ảo đang hoạt động), hoặc lỗi (do xung đột bên trong) Các thông tin về thời gian cũng có trong phần này: creationTime (thời gian tạo lập), lifeCycle (workspace đã sẵn sàng bao lâu), và lastModified (khi nào các thuộc tính mới nhất thay đổi)
Các thông tin quan trọng khác của workspace cũng được mô tả Ví dụ, phần cứng yêu cầu, cấu hình mạng, phần mềm cài đặt, và năng lực của workspace Mô tả về tài nguyên ảo (virtual resource) thể hiện các yêu cầu phần cứng của môi trường thực thi gồm các phần tử như là bộ nhớ RAM, dung lượng đĩa, loại đĩa, v.v… Đặc tả mạng bao gồm mô tả kết nối mạng, và cách thiết lập Nếu là phần mềm, bao gồm thông tin hệ điều hành (ví dụ phiên bản kernel), thư viện, v.v… Workspace capability mô tả những gì mà nó có thể làm, ví dụ chạy một chương trình lúc khởi động, hay thiết lập cho chạy trước một số ứng dụng, cung cấp dịch vụ trên các cổng…
Nhằm đảm bảo cho tính linh động và dễ thích nghi, các thuộc tính được mô tả ở dạng một khoảng các giá trị được chấp nhận Ví dụ dung lượng RAM: tối thiếu – tối đa Mục đích là để ngỏ tập các ánh xạ cho phép từ workspace vào tài nguyên thực tế, tăng khả năng thích nghi, hoạt động
Bản mô tả này cũng cho phép mở rộng, kế thừa, để nhiều loại hiện thực có thể sử dụng Ví dụ, từ một bản mô tả chung, mà categoryType là chưa xác định, có thể tạo một bản mô tả với categoryType là VM-based workspace để mô tả thông tin của một workspace hiện thực hóa với máy ảo Ngoài việc thừa kế tên của categoryType, bản XML Schema này cũng chứa các thuộc tính mở rộng ví dụ như loại máy ảo (VMM), chỉ dành cho workspace làm việc trên máy ảo Sau này ta sẽ thấy nó cũng được dùng để định nghĩa tập hợp các máy ảo
Dựa trên những mô tả trong lược đồ XML trên, có thể chọn được workspace theo yêu cầu, nhân bản, hay cải tiến thêm Ví dụ để nhân bản một workspace, tạo tên mới, với tài nguyên mới và sao chép dữ liệu mô tả đã có
4.1.3 Sử dụng Virtual Machine cho Virtual Workspace
Có hai công nghệ có thể sử dụng để triển khai workspace Đó là sử dụng tài khoản Unix cấu hình động [WMS] và máy ảo (Virtual Machine) Ở đây, máy ảo được ưa thích hơn vì những đặc tính nổi trội như cô lập (isolation) và khả năng lưu trạng thái xuống thiết bị lưu trữ (serialization) Đặc điểm lưu trạng thái (serialization) của máy ảo hứa hẹn về khả năng cấu hình môi trường thực thi thuận lợi hơn bao giờ hết Ví dụ, cho phép người dùng cấu hình các máy ảo với phần mềm theo yêu cầu và sau đó chỉ việc nhân bản chúng để sử dụng hoặc chia sẻ Tính cô lập của máy ảo khách đối với các máy chủ cho phép chạy một cấu hình khác so với máy chủ và cả máy ảo khách và chủ tận dụng tài nguyên, nâng cao hiệu năng sử dụng Đặc biệt hơn, cũng vì những đặc tính trên, máy ảo có khả năng di trú (migration) trọn vẹn Đây là điều mà những người quản lý server ưu thích, khi có thể thay đổi server mà không đình trệ hoạt động của nó Với những lý do này, các máy ảo cung cấp một lựa chọn tuyệt vời cho workspace: cấu hình một máy ảo đáp ứng mọi nhu cầu phần mềm trong khi VMM đảm bảo cấu hình phần cứng
4.1.4 Tích hợp Virtual Workspace vào kiến trúc Grid
Virtual Workspace giúp cải tiến lớp môi trường thực thi trong kiến trúc Grid: thay vì ánh xạ công việc lên tài nguyên phần cứng, có thể ánh xạ nó lên một workspace đã được cấu hình và ánh xạ lên tài nguyên Grid Vì một workspace có thể được triển khai nhiều lần với những tài nguyên khác nhau trên Grid, cần một dịch vụ để quản lý và lưu trữ Hình sau mô tả cách thức làm việc:
Hình 4-2 Tích hợp Virtual Workspace vào Grid Để tạo một thể hiện của workspace, client liên lạc và đàm phán với VW Factory với bản thông tin mô tả trình bày ở trên Sau đó, nó được đăng ký với VW Repository và được cấp một Grid service interface cho việc thanh tra và quản lý các workspace, theo dõi các tài nguyên thực thi như là các ảnh của máy ảo Sau khi tạo thành công, một thông tin tham chiếu tới workspace đó được trả về, ERP Để triển khai một Virtual Workspace trên một tài nguyên nào đó, client liên lạc với Virtual Workspace Manager Grid service trên tài nguyên đó, cung cấp ERP
Nó sẽ cho phép client triển khai hay thu hồi, chạy/dừng, hay tạm ngưng workspace
Triển khai một workspace nghĩa là dàn dựng mọi thành phần của workspace (ví dụ các Virtual Machine image) với các tài nguyên, để các VMM có thể quản lý Sau khi workspace triển khai, VMM có thể cho bắt đầu, dừng hay tạm dừng các công việc tính toán
HỆ THỐNG CLUSTER ẢO VCLOUD
Phương pháp thực hiện
Trước hết, xây dựng một infrastructure cloud trên một hệ thống gồm các máy tính kết nối với nhau trong mạng nội bộ Sau khi so sánh, đánh giá sơ bộ các hệ thống Cloud mã nguồn mở ở bảng 2.1, Nimbus IaaS được lựa chọn để sử dụng để triển khai cloud này vì tính trong sáng ở kiến trúc, khả năng tùy biến cao, bảo mật tốt và đặc biệt có công cụ Context Broker, làm cơ sở để triển khai các loại cluster
Dựa trên nền tảng Nimbus, xây dựng Cluster Broker, một bộ tạo lập, cấu hình và quản lý virtual cluster, hỗ trợ người quản trị hệ thống cung cấp tài nguyên tính toán và lưu trữ dưới dạng máy ảo, hoặc được tổ chức thành cluster với nhiều mục đích khác nhau Ví dụ MPI Cluster dành cho mục đích thực hành các môn học liên quan đến tính toán song song, hệ phân bố; Hadoop Cluster giúp giải các bài toán về xử lý dữ liệu phân tán; hay Load-balancing Cluster, nhằm sử dụng linh hoạt tài nguyên theo nhu cầu, tiết kiệm năng lượng, v.v…
Hình 5-1 Mô hình hệ thống VCloud
Khả năng của hệ thống có thể mở rộng với nhiều loại hình cluster, triển khai trên cơ sở hạ tầng hiện có, hoặc thuê tài nguyên trên Amazon EC2 Tuy nhiên, trong phạm vi đề tài, với mục đích chính là minh họa khả năng tùy biến và linh hoạt của hệ thống, Luận văn chỉ trình bày chi tiết cách tạo lập và đưa vào sử dụng MPI Cluster
Người dùng chỉ cần đưa vào thông tin số node muốn có, tài khoản người dùng đăng nhập vào MPI Cluster để biên dịch và chạy ứng dụng MPI, hệ thống sẽ tự động cấu hình và thiết lập các mối liên kết giữa các node, và cuối cùng tạo lập cluster theo yêu cầu, sẵn sàng để người dùng sử dụng.
THỬ NGHIỆM VÀ ĐÁNH GIÁ
Thử nghiệm
Trong phần đầu của Luận văn, chúng tôi đã đặt ra các bài toán về vấn đề sử dụng tài nguyên hiện có sao cho hiệu quả, đồng thời đáp ứng yêu cầu của nhiều người dùng về tài nguyên dưới dạng môi trường thực thi tùy theo nhu cầu Sau khi triển khai hệ thống VCloud với Nimbus, chúng tôi tiến hành thử nghiệm và đánh giá tính thực tế, tính khả thi của đề tài Cụ thể là thời gian tạo lập một cluster MPI đầy đủ chức năng theo yêu cầu và tính hiệu quả khi sử dụng các chiến lược bố trí máy ảo khác nhau Hệ thống được cài đặt trên phòng thí nghiệm NetLab của trường Đại học Bách Khoa TPHCM
Ban đầu, Nimbus IasS Cloud được triển khai trên 03 máy gồm 01 Service Node, và 02 VMM Node Các máy có cấu hình đồng nhất:
- CPU: Intel® Core™ 2 Duo CPU E8500 3.16GHz - RAM: 2GB
- HDD: 25GB - Hệ điều hành: CentOS phiên bản 5.5 - Các VMM cài hypervisor KVM - Tốc độ mạng LAN: 100 Mbps
6.1.1 Tạo và tự động cấu hình Virtual Cluster
Trong phần thử nghiệm này, giả định rằng các dữ liệu liên quan đến việc tạo một cluster đã có sẵn, bao gồm file ảnh máy ảo (đã cấu hình sẵn) đã được đưa lên kho Cumulus ở Service Node và file XML đặc tả thông tin về cluster do người dùng tạo ra
Trước hết, tạo virtual cluster sử dụng Nimbus và OpenNebula Vì cách thức hoạt động của mỗi công cụ khác nhau, do đó chỉ tiến hành so sánh thời gian tạo lập tùy theo số lượng node của cluster, cùng sử dụng phương thức sao chép bằng scp (secure copy) trên mạng LAN 100Mbps File ảnh ảo có dung lượng 1.3GB Kết quả thực nghiệm sử dụng OpenNebula dựa trên nghiên cứu của nhóm BK Cloud của Trường Đại học Bách Khoa
Biểu đồ 6-1.So sánh tạo Virtual Cluster với Nimbus và OpenNebula
Qua biểu đồ trên, ta thấy sử dụng phương thức sao chép scp, hai công cụ cho kết quả tương đương Thời gian triển khai một cluster gồm thời gian sao chép ảnh ảo từ kho tới máy làm việc (VMM) và tạo context để liên kết các node thành cluster Ta cũng thấy rằng thời gian tạo context hầu như rất nhỏ và không phụ thuộc nhiều vào kích thước cluster Vậy để tối ưu việc triển khai cluster, ta sẽ đánh giá và cải tiến thời gian sao chép ảnh ảo trên Nimbus Nhưng trước hết, để hiểu cơ chế hoạt động, trong Nimbus, việc bố trí máy ảo diễn ra như sau:
Virtual workspace service trên Service Node sẽ sao chép file ảnh ảo (dùng để chạy MPI master) từ kho (Cumulus repository) tới một VMM còn nhiều tài nguyên khả dụng nhất (RAM, số nhân CPU) qua mạng bằng lệnh scp (secure copy) Tại VMM, Virtual workspace manager sẽ cho khởi động (boot) ảnh ảo, để tạo ra máy ảo MPI master, điều chỉnh một số thông tin như nạp vào ssh public key, cấu hình thông tin của NFS server, để biến nó thành một head-node của cluster vừa được tạo ra
Tương tự, file ảnh ảo đó (cũng dùng để chạy MPI slave) được sao chép tới VMM khác (nếu có nhiều VMM node) còn nhiều tài nguyên khả dụng nhất để tạo ra máy ảo MPI slave
2 4 6 8 Kích th ướ c Th ờ i gian (phút)
Nimbus sử dụng 3 phương thức sao chép: scp, imagecache và LANTorrent
Thử nghiệm vẫn sử dụng mạng LAN 100Mbps Phương thức scp sao chép theo cách thông thường Với ImageCache, tại các VMM, file ảnh ảo được lưu lại sau lần chạy đầu tiên thành công, để chạy lần sau, thay vì sao chép qua mạng lần nữa Cuối cùng, LANTorrent là một điểm khác biệt của Nimbus Thông thường, một file ảnh ảo được sao chép từ kho trung tâm (Cumulus/Service Node) tới một hay nhiều VMM theo mô hình một-nhiều Trong trường hợp nhiều VMM cùng yêu cầu một ảnh ảo, mô hình này gây ra chậm trễ do phải chờ đợi và nghẽn đường truyền LANTorrent là giao thức phân phối file theo mô hình ngang hàng (peer-to-peer) nhưng tối ưu hóa để dùng trong mạng LAN VMM node nào đã nhận được file ảnh ảo sẽ tiếp tục sao chép cho node gần nó cho tới khi đáp ứng đủ Ở trong thí nghiệm này, do số lượng node trong cloud hạn chế, nên không thích hợp triển khai LANTorrent
Biểu đồ 6-2 Thời gian triển khai Virtual Cluster theo các phương thức sao chép
Biểu đồ trên biểu diễn thời gian triển khai theo phương thức scp (t1) và ImageCache (t2) Nhìn chung, triển khai dùng ImageCache nhanh hơn, do tốc độ tự sao chép trên ổ đĩa cứng (khoảng 20-40MB/s) nhanh hơn so với sao chép qua mạng LAN 100Mps (12.5MB/s) Tuy nhiên, theo tìm hiểu, biện pháp này cũng chỉ khắc phục phần nào Vì như vậy, vẫn là sao chép 2 file trên cùng một ổ cứng Đầu đọc của đĩa cứng phải di chuyển tới lui để đọc và ghi, dẫn đến hiệu suất không cao Hướng giải quyết, có thể lưu file ảnh ở một ổ cứng tốc độ cao khác, thay vì lưu cùng ổ cứng
Khi đó tốc độ sao chép có thể đạt từ 60 – 130 MB/s (theo khảo sát của trang http://www.techarp.com/) trên dòng Western Digital VelociRaptor Ngoài ra, ImageCache sẽ có ý nghĩa nhất trong trường hợp mỗi VMM node chỉ chạy một máy ảo Vì nếu nhiều hơn, việc tự sao chép trên từng node sẽ thực hiện tuần tự
Như vậy, để tăng tốc độ bố trí ảnh ảo trên các VMM node, đầu tiên là giữ kích thước file ảnh ảo càng nhỏ càng tốt Ở đây, tôi sử dụng một ảnh máy ảo cài hệ điều hành Ubuntu 10.04 phiên bản dành cho server (không có giao diện đồ họa), ngoài các thư viện và gói phần mềm có sẵn, cài sẵn các công cụ biên dịch Java và C, thư viện MPICH2, hệ thống file chia sẻ NFS, thư viện OpenSSH Kích thước file ảnh là 1.3GB, khi máy chạy lên, dung lượng đĩa trống còn hơn 100MB Thực tế có thể sử dụng hai file ảnh khác nhau, một file cấu hình dành riêng cho MPI master (trong đó khác biệt chủ yếu cài NFS server và các công cụ biên dịch) và một file cấu hình dành riêng cho MPI slave, kích thước nhỏ hơn do nó cần cài đặt ít thư viện, phần mềm hơn Điều này có ý nghĩa thực tế vì số lượng MPI slave thường nhiều trong khi MPI master chỉ có một Một cách khác là chỉ cài tối thiểu hệ điều hành trên file ảnh ảo, các phần mềm liên quan sẽ được cài trong thời gian triển khai, tận dụng thời gian chạy nền trong khi đang thực hiện tác vụ khác Tuy nhiên cách này đòi hỏi phải viết các kịch bản (script) phức tạp, dễ gây thiếu sót Ở trong thí nghiệm này, sử dụng chung một file cho hai mục đích, để cho thấy việc context broker hoạt động với các vai trò như thế nào
Thứ hai, nâng số VMM node, và áp dụng cơ chế Round Robin (xoay vòng) để tăng tính song song trong việc bố trí ảnh ảo trên các node, rút ngắn thời gian Ngoài cơ chế Round Robin còn có Greedy, sẽ được trình bày trong phần sau
Cuối cùng, trong cả hai trường hợp, để tăng tốc độ truyền file ảnh, có thể nâng cấp mạng lên chuẩn Gigabit (1.000Mbps), về lí thuyết có thể đạt tốc độ 125MB/s
Tuy nhiên do hạn chế của thiết bị đọc ghi, cũng như các yếu tố đường truyền khác, tốc độ thực tế sẽ thấp hơn
6.1.2 Tối ưu triển khai Virtual Cluster
Ngoài vấn đề tối ưu thời gian triển khai, vấn đề về cơ chế bố trí máy ảo xoay vòng (Round Robin) Nghĩa là với danh sách các VMM node trong cloud, các máy ảo sẽ được bố trí trên VMM còn dư nhiều tài nguyên (CPU, RAM) nhất Hình sau mô tả cách bố trí theo cơ chế Round Robin và Greedy
Hình 6-1 Cơ chế bố trí máy ảo
Theo đánh giá ban đầu, cơ chế Greedy giúp tận dụng hết tài nguyên trên từng VMM node, qua đó giúp giảm chi phí điện năng Ngoài ra, chi phí giao tiếp giữa các máy ảo trên một VMM có thể nhỏ hơn so với các máy ảo trên các VMM khác nhau
Các thí nghiệm trong phần này sẽ kiểm chứng giả thiết đó
Một chương trình MPI sẽ đo băng thông (bandwidth) giữa các tiến trình MPI chạy trên các máy ảo Có 6 máy ảo từ Pub02 đến Pub07, chạy trên 2 VMM node:
ID Hostname VMM Task Partner task
Bảng 6-1 Bố trí máy ảo đo bandwidth
Tiến hành đo bandwidth giữa các tiến trình (task), kết quả như sau: