A research on opensource cloud computing solution – OpenStack project to deploy IaaS model

Nghiên cứu giải pháp nguồn mở OpenStack trong xây dựng “Điện toán đám mây” cung cấp “Hạ tầng như một dịch vụ”

A research on opensource cloud computing solution – OpenStack project to deploy IaaS model.

Thanks to Mr. Nguyễn Sơn Tùng in working with me about OpenStack deployment (Part 3). We did that by manual installation, followed from  http://docs.openstack.org – the guide for Essex version.

Nguyễn Sơn Tùng facebook page: https://www.facebook.com/neophilo

Abstracts

Cloud computing hiện nay đang là xu hướng phát triển và nhận được nhiều sự quan tâm của các tổ chức cũng như doanh nghiệp lớn trên thế giới. Việc triển khai Cloud computing dựa trên các giải pháp thương mại của VMware, Microsoft, … hay các giải pháp nguồn mở như Eucalyptus, OpenNebula, Nimbus, OpenStack,… Nội dung bài báo sẽ phân tích các ưu điểm của việc sử dụng nguồn mở so với các giải pháp thương mại, sau đó đề xuất giải pháp cloud của OpenStack, phân tích các đặc điểm và tính năng của OpenStack so với một giải pháp thương mại hoàn chỉnh là VMware, đồng thời trình bày một số kết quả triển khai thử nghiệm.

“Cloud computing” is the biggest trend today in IT and is supported by many organizations as well as companies such as Google, Microsoft, Intel, … In cloud computing deployment, two famous solutions are commercial from VMware, Microsoft, … and open source cloud such as Eucalyptus, OpenNebula, Nimbus, OpenStack,… In this article firstly will analyse open source cloud benefits compared to commercial cloud, and give the comparison between OpenStack and VMware. Then some results in OpenStack deployment will be displayed.

1. Đặt vấn đề

Cloud computing hay còn gọi là “điện toán đám mây” là một chủ đề CNTT được quan tâm rất lớn trong thời gian gần đây. Trong một ấn bản được xuất bản bởi Gartner – một công ty nổi tiếng thế giới về nghiên cứu và tư vấn giải pháp trong CNTT – đã đặt “cloud computing” là ưu tiên số một trong năm 2011 dựa trên một phiếu tham khảo ý kiến hơn 2000 CIOs trên khắp thế giới [1]. Mặc dù nhận được nhiều sự quan tâm, nhưng việc triển khai “cloud computing” vẫn còn nhiều vấn đề cần phải quan tâm và giải quyết. Bên cạnh các rủi ro điển hình như bảo mật, hệ thống lưu trữ, độ ổn định, hay thất thoát dữ liệu, bài toán chi phí luôn được đặt ra trong bối cảnh khủng hoảng kinh tế, việc đầu tư cần cân nhắc giữa chi phí bỏ ra và lợi ích mang lại. Điều này đồng nghĩa với sự lựa chọn triển khai 1 giải pháp “cloud computing” thương mại hay nguồn mở. Trước tiên xin được trình bày một số khái niệm cơ bản về “cloud computing”, sau đó sẽ phân tích những lợi ích từ việc triển khai bằng nguồn mở. Cuối cùng sẽ trình bày một giải pháp cloud computing opensource là OpenStack, đồng thời báo cáo một số kết quả triển khai thí điểm để đánh giá hoạt động.

1.1. Cloud computing

Cloud computing – điện toán đám mây là mô hình mà tất cả các tài nguyên tính toán bao gồm networks, servers, storages, CPU, memory, applications, services được chia sẻ trong một bể tài nguyên. Cloud computing được CSA đánh giá là một công nghệ đột phá với những ưu điểm như nâng cao sự linh hoạt và khả năng mở rộng của hệ thống, độ sẵn sàng, chi phí rẻ thông qua việc tối ưu hóa hiệu suất và tài nguyên tính toán. Định nghĩa chi tiết về Cloud computing được NIST [2] mô tả trong hình bên dưới bao gồm:

Figure 1: Cloud computing

5 tính năng chính:

  • Rapid elasticity: nhà cung cấp CC dễ dàng chỉ định cũng như thu hồi tài nguyên người dùng rất nhanh chóng. Về phía người dùng được phép yêu cầu một tài nguyên “không giới hạn” và chỉ việc chi trả theo tiền.
  • Broad network access: truy cập vào các tài nguyên máy tính dễ dàng thông qua các cơ chế network tiêu chuẩn.
  • Measured service: provider đảm bảo việc tính toán lượng tiêu dùng của khách hàng. Mô hình hướng đến là “pay as you go”.
  • On-demand self-service: cho phép khách hàng tùy chỉnh tài nguyên sử dụng mà không cần phải thông báo hay qua bất kỳ sự can thiệp nào của provider.
  • Resource pooling: các loại tài nguyên vật lý và ảo của CC được chia sẻ với nhau và tự động cấp cho các users.

4 mô hình triển khai

  • Có 3 mô hình triển khai điện toán đám mây chính là public (công cộng), private (riêng), và hybrid (“lai” giữa đám mây công cộng và riêng).
  • Đám mây công cộng là mô hình đám mây mà trên đó, các nhà cung cấp đám mây cung cấp các dịch vụ như tài nguyên, platform, hay các ứng dụng lưu trữ trên đám mây và public ra bên ngoài. Các dịch vụ trên public cloud có thể miễn phí hoặc có phí [3].
  • Đám mây riêng thì các dịch vụ được cung cấp nội bộ và thường là các dịch vụ kinh doanh, mục đích nhắm đến cung cấp dịch vụ cho một nhóm người và đứng đằng sau firewall.
  • Đám mây “lai” là môi trường đám mây mà kết hợp cung cấp các dịch vụ công cộng và riêng [3].
  • Ngoài ra còn có “community cloud” là đám mây giữa các nhà cung cấp dịch vụ đám mây.

3 mô hình dịch vụ

  • Về mô hình cung cấp dịch vụ có 3 loại chính là IaaS – cung cấp hạ tầng như một server, PaaS – cung cấp Platform như một service, và SaaS – cung cấp software như một service.

1.2. Lợi ích của việc triển khai cloud computing bằng nguồn mở

Các lợi ích của Cloud computing đem lại có thể tham khảo tại các tài liệu [4] của Canonical hay [5] của CSA. Phần này đi sâu phân tích các lợi ích của việc triển khai cloud trên mã nguồn mở khi so sánh với các giải pháp thương mại khác. Theo Canonical, tập đoàn đã có những đóng góp to lớn trong các dự án nguồn mở nổi tiếng như Ubuntu platform, OpenStack, Ubuntu One, các đặc trưng nổi bật của việc triển khai Cloud computing bằng nguồn mở có thể kể đến như sau:

  • Sự phụ thuộc vào các phần mềm đóng kín và bản quyền (Avoiding vendor lock-in): các giải pháp thương mại thường là 1 bộ giải pháp với các tiêu chuẩn của nhà sản xuất chẳng hạn các APIs đặc trưng, các kiểu định dạng image và lưu trữ riêng, … sẽ làm cho “cloud” không tương thích, hoặc không tận dụng được những cơ sở hạ tầng sẵn có. Hoặc các “đám mây vendor lock-in” trong tương lai sẽ đối mặt với vấn đề di chuyển (migration) một số dịch vụ sang những hệ thống cloud khác.
  • Sự hỗ trợ của cộng đồng: các dự án về “open source cloud computing” luôn luôn được hỗ trợ và giúp đỡ bởi cộng đồng toàn thế giới với hàng ngàn người tham gia phát triển các functions mới và sửa lỗi bugs (fix bugs). Lợi thế này của open source sẽ không thể có được ở bất kỳ một công ty đơn lẻ nào.
  • Khả năng mở rộng không hạn chế: chi phí là vấn đề nổi trội trong vấn đề mở rộng mạng “cloud” với giải pháp phần mềm bản quyền. Các chi phí cho licence được tính dựa trên số lượng các máy chủ hay thậm chí các máy ảo tùy thuộc vào từng cách tính khác nhau. Tuy nhiên với open source clouds, ví dụ mạng clouds sử dụng Ubuntu, hệ điều hành Ubuntu hỗ trợ “cloud computing” hoàn toàn miễn phí nên việc mở rộng rất dễ dàng.
  • Phát triển các modules: khi giải pháp thương mại thiếu một chức năng gì đó, sẽ rất khó để tìm ra phương thức thay thế trừ khi chờ một phiên bản mới hơn hỗ trợ. Nhưng với kỹ thuật open source có thể thay đổi code để thêm các chức năng phù hợp cho mục đích kinh doanh của hệ thống.

2. Xây dựng cloud computing với dự án OpenStack

Phần trước đã trình bày các lợi ích khi triển khai cloud computing trên nguồn mở, phần này tập trung giới thiệu một công cụ nguồn mở là OpenStack để xây dựng một hệ thống cloud cung cấp IaaS.

2.1. Giới thiệu OpenStack

Openstack có chu kỳ phát triển 6 tháng, đi cùng với sự phát triển của CC, với mỗi phiên bản Openstack lại bổ sung thêm thành phần mới tương ứng với những chức năng mới. Openstack hoàn toàn là nguồn mở, các thành phần của nó được viết trên Python – ngôn ngữ đang được đánh giá rất cao những năm gần đây.

Các phiên bản của OpenStack:

  • Austin: phát hành tháng 10/2011
  • Bexar: phát hành tháng 2/2011
  • Cactus: phát hành tháng 4/2011
  • Diablo: phát hành tháng 10/2011
  • Essex: phát hành tháng 4/2012
  • Folsom: đang được phát triển

Sau đây là sơ đồ kiến trúc ở mức logic của Openstack:

Figure 2: Kiến trúc OpenStack

  • Compute (tên mã Nova) cung cấp khả năng tính toán với những instance – tương ứng với EC2
  • Image Service (tên mã Glance) lưu trữ các file ảnh của các instance trước khi được ‘bung’ ra sử dụng bởi Nova – AWS cũng có một thành phần tương tự để quản lý các image tuy nhiên vì là nền tảng đóng, nên thông tin chi tiết về nó không được công bố rõ ràng.
  • Object Storage (tên mã Swift) cung cấp khả năng lưu trữ – tương ứng với S3.

Phiên bản mới nhất của Openstack ra mắt ngày 05/04/2012 với codename Essex, bổ sung thêm hai thành phần mới là:

  • Dashboard (tên mã Horizon) cung cấp giao diện web để quản lý Openstack.
  • Identity (tên mã Keystone) cung cấp khả năng authentication và authorization cho các dịch vụ của Openstack.

2.2. Các tính năng OpenStack

OpenStack có đầy đủ các tính năng của một phần mềm triển khai Cloud computing cung cấp IaaS. Các đặc điểm của OpenStack được thể hiện thông qua tính năng của các project con như Nova, Swift, … Phần này trước hết trình bày một số tính năng nổi trội của OpenStack khi so sánh với một hệ thống cloud computing. Sau đó lập bảng so sánh các tính năng tương ứng với sản phẩm thương mại nổi tiếng hiện nay là VMware.

  • Hypervisor: hỗ trợ các loại Hypervisors khác nhau như KVM, LXC, QEMU, UML, VMWare ESXi, Xen.
  • Quản lý tài nguyên: bao gồm CPU, memory, disks, network interfaces thông qua Nova.
  • Security: các cơ chế xác thực và điều khiển truy cập thông qua keystone. Các tác vụ cụ thể bao gồm quản lý việc users truy cập vào các tài nguyên và ngăn chặn truy cập trái phép qua lại giữa các users. Các thuật ngữ bên trong của OpenStack như Security Groups và RBAC để thiết lập các chính sách cho việc truy cập và quản lý.
  • Projects & Quotas: mỗi project hay còn gọi là tenant khi được tạo ra sẽ xác định hạn mức tài nguyên nhất định có thể sử dụng (quotas).
  • Lưu trữ: kiến trúc phân tán và sao lưu dữ liệu của Swift giúp nâng cao khả năng “sẵn sàng” của hệ thống đồng thời tránh việc thất thoát dữ liệu xảy ra. Đồng thời không hạn chế về dung lượng lưu trữ.
  • OpenStack thông qua Glance để quản lý các Images cho IaaS. Hỗ trợ nhiều định dạng images như qcow2 (Qemu/KVM), raw, machine (ami, aki), VHD (Hyper-V), VDI (Virtual Box), VMDK (VMware), OVF (VMware) cũng như images checksum.
  • GUI thông qua trình duyệt web.

Một số tính năng tương ứng khi so sánh với Vmware [6, 7]:

Tính năng VMware OpenStack
Live migration vMotion KVM Live Migration
Networking vShield Nova-network
Virtual switch vDS Quantum
Storage resource scheduler SDRS Nova-Scheduler
Storage API Storage APIs Nova-Volume

Tuy nhiên khi so sánh với 1 giải pháp thương mại hoàn chỉnh và đã thành một thương hiệu hàng đầu thế giới, OpenStack vẫn còn nhiều thiếu sót và chưa thể hỗ trợ một số tính năng như [8-11]:

  • OpenStack hiện tại chỉ được phát triển để cung cấp một IaaS chứ không đạt được sự đa dạng về các loại dịch vụ như VMware.
  • Không có được cơ chế “thông minh” trong việc gán quyền “ưu tiên” cho các VM cũng như không hỗ trợ khả năng tự động di chuyển VM giữa các host vật lý. Chức năng này được hỗ trợ trong các rules của vMotion trong VMware.
  • Không có khả năng tắt các máy chủ vật lý khi tài nguyên dư thừa và bật lại khi số lượng tính toán tăng yêu cầu nhiều máy chủ vật lý hơn.
  • Chưa hỗ trợ cấu hình cluster cho lưu trữ. Hệ thống lưu trữ (Swift) chỉ được triển khai trên các volumes dưới định dạng LVM.

3. Thí điểm triển khai và đánh giá hoạt động của OpenStack

3.1. Mô hình triển khai

Tất cả các thành phần của OpenStack đều được cài đặt và triển khai trên cùng 1 server vật lý. Cấu hình của server vật lý như sau:

DELL T710; CPU: 8 cores; 4GB RAM

Figure 3: Mô hình triển khai

3.2. Kết quả

Sau quá trình thử nghiệm, đã cài đặt và cấu hình thành công OpenStack Essex với các dịch vụ sau:

  • Cung cấp được các máy ảo (instance) ra bên ngoài
  • Quản lý được các tính năng về tài nguyên cấp phát cho các instance
  • Thực hiện quản trị qua giao diện web Dashboard
  • Chứng thực thông qua Keystone
  • Quản lý các tập tin ảnh (images) thông qua Glance

Hạn chế:

  • Chưa thử nghiệm tính năng lưu trữ thông qua Swift
  • Các file ảnh cung cấp hệ điều hành còn hạn chế về chủng loại, đặc biệt là hệ điều hành Windows. Hiện nay đã cung cấp được các HĐH linux như Debian, Centos, Ubuntu.

3.3. Đánh giá

Khả năng hoạt động của OpenStack được đánh giá thông qua việc thử nghiệm các test-cases, từ đó thống kê độ ổn định trong quá trình khởi tạo và sử dụng các máy ảo, xác xuất xảy ra lỗi từ phía máy chủ cũng như các máy ảo được tạo ra, cũng như biểu đồ các thông số về tài nguyên, thời gian liên quan đến việc tạo các máy ảo. Các trường hợp thử nghiệm được kết hợp đa dạng giữa các loại máy ảo khác nhau (tương ứng với các ảnh khác nhau) đi kèm với số lượng các máy ảo được tạo đồng thời cũng khác nhau.

3.3.1. Phương pháp đánh giá

Đánh giá được thực hiện qua 5 test-cases:

  • Tạo 01 máy ảo Cirros. Máy ảo Cirros là máy ảo Linux được cung cấp bởi OpenStack với các tính năng tối thiểu cho hoạt động của 1 hệ điều hành, cũng gần giống như TTY linux.
  • Tạo 01 máy ảo Ubuntu 12.4 64 bits.
  • Tạo 05 máy ảo Cirros cùng lúc.
  • Tạo 05 máy ảo Ubuntu 12.4 64 bits cùng lúc
  • Tạo 06 máy ảo bao gồm 02 máy ảo Cirros, 02 máy ảo TTY linux, 02 máy ảo Ubuntu 12.4 64 bits.

Lưu ý: tất cả các trường hợp đều được lặp lại 05 lần.

Các thông số ghi nhận đánh giá bao gồm:

  • Khả năng thành công và hoạt động của các máy ảo được tạo ra
  • Thời gian khởi tạo máy ảo – thời gian xóa máy ảo tương ứng
  • Lượng RAM máy chủ vật lý sử dụng trước và sau khi tạo máy ảo

Tạo 01 m1.tiny Cirros

Figure 4: Thông tin RAM, thời gian trước và sau khi khởi tạo máy ảo

Tạo 01 m1.tiny instance sử dụng Ubuntu 12.04 amd 64 bits image

Figure 5: Thông tin RAM, thời gian trước và sau khi khởi tạo máy ảo

Tạo 05 instance Cirros cùng lúc

Figure 6: Thông tin RAM trước và sau khi khởi tạo máy ảo

Figure 7: Thông tin thời gian khởi tạo máy ảo

Figure 8:

Tạo đồng loạt 05 m1.tiny instance từ Ubuntu 12.4 amd 64 bits image

Figure 9: Thông tin RAM trước và sau khi khởi tạo máy ảo

Figure 10: Thông tin thời gian khởi tạo máy ảo

Figure 11:

Tạo 6 instance m1.tiny mỗi loại 2 instances từ 3 image ubuntu / cirros / tty

Figure 12: Thông tin RAM trước và sau khi khởi tạo máy ảo

Figure 13: Thông tin thời gian khởi tạo máy ảo

Figure 14: Thông tin thời gian xóa máy ảo

3.3.2. Kết quả sau đánh giá

Kết quả đánh giá:

  • Trong cả 5 trường hợp, các máy ảo được tạo đều thành công với tỉ lệ 100%
  • Các máy ảo được tạo ra đều hoạt động tốt
  • Các thông số tài nguyên và thời gian liên quan
01 Cirros 01 Ubuntu 12.4 64bits 05 Cirros 05 Ubuntu 12.4 64bits 02 Cirros 02 TTY 02 Ubuntu 12.4
Lượng RAM trước khi tạo máy ảo 921.2 (Mb) 967.4 (Mb) 968.2 (Mb) 934.2 (Mb) 932 (Mb)
Lượng RAM sau khi tạo máy ảo 988.4 (Mb) 1261.6 (Mb) 1362.2 (Mb) 2394.6 (Mb) 1854.6 (Mb)
Thời gian khởi tạo máy ảo 1.78 (s) 13.49 (s) 2.478 (s) 43.124 (s) 10.836 (s)
Thời gian xóa máy ảo 3.4 (s) 9 (s) 29 (s) 31.6 (s) 41.4 (s)

3.4. Kết luận và hướng phát triển

Triển khai điện toán đám mây dựa trên nguồn mở là một bài toán khó không chỉ đối với các doanh nghiệp thông thường mà còn là vấn đề “sống còn” của các tập đoàn lớn trên thế giới. Tuy đạt được nhiều lợi ích, đặc biệt về mặt chi phí nhưng sự tin tưởng vào các giải pháp nguồn mở nói chung và OpenStack nói riêng vẫn bị đặt nhiều dấu hỏi khi tuổi đời cũng như quy mô của các giải pháp điện toán đám mây nguồn mở còn quá mới và non kém.

Kết quả thử nghiệm bước đầu đã mang lại những thuận lợi cho kế hoạch triển khai kế tiếp của điện toán đám mây nguồn mở, đặc biệt là dự án OpenStack. Tuy nhiên ở một quy mô nhỏ, vẫn còn rất hạn chế trong việc kết luận và đánh giá giải pháp. Mục tiêu tương lai của bài báo muốn xây dựng một hệ thống thử nghiệm lớn hơn, mở rộng quy mô về cung cấp dịch vụ như đa dạng hóa các hệ điều hành, cung cấp dịch vụ lưu trữ, … tiến đến xây dựng một mô hình điện toán đám mây nguồn mở hoàn chỉnh trong thực tế, cung cấp một IaaS để khai thác dịch vụ.

Thuật ngữ viết tắt:

CNTT             Công Nghệ Thông Tin

RBAC             Role Based Access Control

IaaS                Infrastructure as a Service

PaaS               Platform as a Service

SaaS                Software as a Service

SDRS              Storage Distributed Resources Scheduler

GUI                Graphic User Interface

Tài liệu tham khảo:

1.            Pettey, C. and L. Goasduff. Gartner Executive Programs Worldwide Survey of More Than 2,000 CIOs Identifies Cloud Computing as Top Technology Priority for CIOs in 2011. 2011  [cited 2012 04/06/2012]; Available from: http://www.gartner.com/it/page.jsp?id=1526414.

2.            P., M. and T. Grance., The NIST Definition of Cloud Computing. 2011.

3.            Sabahi, F. Cloud computing security threats and responses. in Communication Software and Networks (ICCSN), 2011 IEEE 3rd International Conference on. 2011.

4.            Canonical. Ubuntu Cloud: Technologies for future-thinking companies. 2012  [cited 2012 04/06/2012]; Available from: http://www.canonical.com/about-canonical/resources/white-papers/ubuntu-cloud-technologies-future-thinking-companies.

5.            Cloud Security Alliance. About Cloud Security Alliance. 2011  04/06/2012]; Available from: https://cloudsecurityalliance.org/research/security-guidance/.

6.            Renski, B. VMWare and OpenStack: Comparing Technology and Philosophy. 2012; Available from: http://www.mirantis.com/why-mirantis/openstack-technology/comparing-vmware-and-openstack/.

7.            How to compare VMware and OpenStack. 2012; Available from: http://www.slideshare.net/mirantis/how-to-compare-vmware-and-openstack.

8.            OpenStack Compute. 2012; Available from: http://openstack.org/projects/compute/.

9.            OpenStack Object Storage. 2012; Available from: http://openstack.org/projects/storage/.

10.          OpenStack Image Service. 2012; Available from: http://openstack.org/projects/image-service/.

11.          Infrastructure as a Service with Comprehensive Management and Security. 2012  [cited 2012; Available from: http://www.vmware.com/products/datacenter-virtualization/vcloud-suite/overview.html.

6 bình luận về “A research on opensource cloud computing solution – OpenStack project to deploy IaaS model

    1. Hi, you can launch an instance on dashboard by just some simple step. Remember to upload some images before do launching. Simple images can be cirros, tty, …
      Chi.

  1. Thank you for reply back. I have launched my instance through dashboard but i’m still stuck at ssh or vnc to instance?

    Thank you again for your time reply back to me.

    TanG

Bình luận