+1

Điện toán đám mây và CloudStack

1. 6 đặc điểm của Clouds

  • Dịch vụ theo nhu cầu (On-demand self-service): Khách hàng có thể được cung cấp tài nguyên dưới dạng máy chủ hay dung lượng lưu trữ,…một cách tự động theo yêu cầu mà không cần phải có sự can thiệp từ phía nhà cung cấp dịch vụ.
  • Truy cập dễ dàng (Broad network access): Chỉ cần 1 ứng dụng kết nối internet từ bất cứ thiết bị nào như máy tính để bàn, laptop, thiết bị di động,…người dùng có thể truy cập tới tài nguyên đám mây.
  • Không phụ thuộc vị trí (Location independent resource pooling): Khách hàng không biết và cũng không điều khiển vị trí của tài nguyên được cung cấp, tuy nhiên họ vẫn có thể làm điều này thông qua các dịch vụ nâng cao của nhà cung cấp. Tài nguyên có thể bao gồm: Lưu trữ, xử lý, bộ nhớ và băng thông mạng.
  • Khả năng có dãn (Rapid elasticity): Tài nguyên có thể được cung cấp một cách nhanh chóng và mềm dẻo, có khả năng thay đổi tăng lên hay giảm đi tùy thuộc vào nhu cầu sử dụng của khách hàng. Đối với khách hàng tài nguyên trên điện toán đám mây luôn luôn sẵn sàng và có thể coi là không giới hạn, có thể truy cập vào bất kỳ thời điểm nào.
  • Điều tiết dịch vụ (Measured service): Các hệ thống điện toán đám mây có khả năng tự điều khiển và tinh chỉnh tài nguyên sử dụng bằng cách áp dụng các biện pháp đo lường ở các cấp độ khác nhau cho từng loại dịch vụ. Tài nguyên sử dụng có thể được giám sát, đo lường và khách hàng thường sẽ chỉ trả phí cho lượng tài nguyên họ sử dụng.
  • Cloud API là giao diện lập trình ứng dụng (API) được sử dụng để xây dựng các ứng dụng trong thị trường điện toán đám mây. Cloud API cho phép các phần mềm để yêu cầu dữ liệu và tính toán từ một hoặc nhiều dịch vụ thông qua một giao diện trực tiếp hoặc gián tiếp. Cloud API thường được bộc lộ tính năng của họ thông qua REST hoặc SOAP.

2. Mô hình dịch vụ điện toán đám mây

Dịch vụ hạ tầng (IaaS)

IaaS.png

Định nghĩa: IaaS (Infrastructure-as-a-Service) cung cấp cho người dùng hạ tầng thô (thường dưới hình thức các máy ảo) như một dịch vụ. Người dùng có thể triển khai và chạy phần mềm trên các máy ảo như trên một máy chủ thực hay có thể đưa dữ liệu cá nhân lên “đám mây” và lưu trữ. Người dùng không có quyền kiểm soát hạ tầng thực bên trong “đám mây” tuy nhiên họ có toàn quyền quản lý và sử dụng tài nguyên mà họ được cung cấp, cũng như yêu cầu mở rộng lượng tài nguyên họ được phép sử dụng.

Các đặc trưng tiêu biểu: – Cung cấp tài nguyên như là dịch vụ: bao gồm cả máy chủ, thiết bị mạng, bộ nhớ,CPU, không gian đĩa cứng, trang thiết bị trung tâm dữ liệu.

– Khả năng mở rộng linh hoạt

– Chi phí thay đổi tùy theo thực tế

– Nhiều người thuê có thể cùng dùng chung trên một tài nguyên

– Cấp độ doanh nghiệp: đem lại lợi ích cho công ty bởi một nguồn tài nguyên tích toán tổng hợp

Ví dụ: Amazon EC2/S3, Elastra (Beta 2.0 2/2009), Nirvanix, AppNexus

Dịch vụ nền tảng (PaaS)

PaaS.png

Định nghĩa: PaaS (Platform as a Service) Mô hình PaaS cung cấp cách thức cho phát triển ứng dụng trên một nền tảng trừu tượng. Nó hỗ trợ việc triển khai ứng dụng mà không quan tâm đến chi phí hay sự phức tạp của việc trang bị và quản lý các lớp phần cứng và phần mềm bên dưới, cung cấp tất cả các tính năng cần thiết để hỗ trợ việc xây dựng và cung cấp một ứng dụng và dịch vụ web sẵn sàng trên Internet mà không cần bất kì thao tác tải hay cài đặt phần mềm cho những người phát triển, quản lý tin học, hay người dùng cuối. PaaS cho phép các nhà phát triển ứng dụng có thể tạo ra các ứng dụng một cách nhanh chóng, khi nhiều rắc rối trong việc thiết lập máy chủ, cơ sở dữ liệu đã được nhà cung cấp PaaS giải quyết.

Các đặc trưng tiêu biểu: – Phục vụ cho việc phát triển, kiểm thử, triển khai và vận hành ứng dụng giống như là môi trường phát triển tích hợp.

– Cung cấp các công cụ khởi tạo với giao diện trên nền web.

– Kiến trúc đồng nhất.

– Tích hợp dịch vụ web và cơ sở dữ liệu.

– Hỗ trợ cộng tác nhóm phát triển.

– Cung cấp các công cụ hỗ trợ tiện tích khác.

Ví dụ: Google App Engine, Openshilt, Salesforce, Microsoft Azure,…

Dịch vụ phần mềm (SaaS)

SaaS.png

Định nghĩa: SaaS (Software as a Service) là một mô hình triển khai ứng dụng mà ở đó người cung cấp cho phép người dụng sử dụng dịch vụ theo yêu cầu. Những nhà cung cấp SaaS có thể lưu trữ ứng dụng trên máy chủ của họ hoặc tải ứng dụng xuống thiết bị khách hàng, vô hiệu hóa nó sau khi kết thúc thời hạn. Các chức năng theo yêu cầu có thể được kiểm soát bên trong để chia sẻ bản quyền của một nhà cung cấp ứng dụng thứ ba.

Các đặc trưng tiêu biểu:

– Phần mềm sẵn có đòi hỏi việc truy xuất, quản lý qua mạng.

– Quản lý các hoạt dộng từ một vị trí tập trung hơn là tại mỗi nơi của khách hàng, cho phép khác hàng truy xuất từ xa thông qua web.

– Cung cấp ứng dụng thông thường gần gũi với mô hình ánh xạ từ một đến nhiều hơn là mô hình 1:1 bao gồm cả các đặc trưng kiến trúc, giá cả và quản lý.

– Những tính năng tập trung nâng cấp, giải phóng người dùng khỏi việc tải các bản vá lỗi và cập nhật.

– Thường xuyên tích hợp những phần mềm giao tiếp trên mạng diện rộng

Ví dụ: Dịch vụ email hay các ứng dụng Google Docs, Google Calendar của Google,…

3. Các mô hình triển khai

Untitled.png

Private cloud

Định nghĩa: Private cloud là các dịch vụ điện toán đám mây được cung cấp trong các doanh nghiệp. Những “đám mây” này tồn tại bên trong tường lửa của công ty và được các doanh nghiệp trực tiếp quản lý. Đây là xu hướng tất yếu cho các doanh nghiệp nhằm tối ưu hóa hạ tầng công nghệ thông tin. Đối tượng sử dụng: Nội bộ doanh nghiệp sử dụng và quản lý

Ưu điểm: Chủ động sử dụng, nâng cấp, quản lý, giảm chi phí, bảo mật tốt,…

Nhược điểm:

– Khó khăn về công nghệ khi triển khai và chi phí xây dựng, duy trì hệ thống.

– Hạn chế sử dụng trong nội bộ doanh nghiệp, người dùng ở ngoài không thể sử dụng.

Public cloud

Định nghĩa: Là các dịch vụ được bên thứ 3 (người bán) cung cấp. Chúng tồn tại ngoài tường lửa của công ty và được nhà cung cấp đám mây quản lý. Nó được xây dựng nhằm phục vụ cho mục đích sử dụng công cộng, người dùng sẽ đăng ký với nhà cung cấp và trả phí sử dụng dựa theo chính sách giá của nhà cung cấp. Public cloud là mô hình triển khai được sử dụng phổ biến nhất hiện nay của cloud computing. Đối tượng sử dụng: Bao gồm người dùng bên ngoài internet. Đối tượng quản lý là nhà cung cấp dịch vụ. Ưu điểm:

– Phục vụ được nhiều người dùng hơn, không bị giới hạn bởi không gian và thời gian.

– Tiết kiệm hệ thống máy chủ, điện năng và nhân công cho doanh nghiệp.

Nhược điểm:

– Các doanh nghiệp phụ thuộc vào nhà cung cấp không có toàn quyền quản lý.

– Gặp khó khăn trong việc lưu trữ các văn bản, thông tin nội bộ.

Hybrid cloud

Định nghĩa: Là sự kết hợp của private cloud và public cloud. Cho phép ta khai thác điểm mạnh của từng mô hình cũng như đưa ra phương thức sử dụng tối ưu cho người sử dụng. Những “đám mây” này thường do doanh nghiệp tạo ra và việc quản lý sẽ được phân chia giữa doanh nghiệp và nhà cung cấp điện toán đám mây công cộng.

Đối tượng sử dụng: Doang nghiệp và nhà cung cấp quản lý theo sự thỏa thuận. Người sử dụng có thể sử dụng các dịch vụ của nhà cung cấp và dịch vụ riêng của doanh nghiệp.

Ưu điểm: Doanh nghiệp 1 lúc có thể sử dụng được nhiều dịch vụ mà không bị giới hạn.

Nhược điểm: Khó khăn trong việc triển khai và quản lý. Tốn nhiều chi phí.

4. CloudStack là gì ?

Cloudstack là nền tảng cho cơ sở hạ tầng đám mây và các hệ thống Datacenter có thể nhanh chóng và dễ dàng xây dựng dịch vụ đám mây trên cơ sở hạ tầng hiện có. Người dùng có thể tận dụng lợi thế của điện toán đám mây để cung cấp hiệu quả cao hơn, quy mô không giới hạn và triển khai nhanh các dịch vụ mới và các hệ thống cho người dùng cuối. Cloudstack cho phép người dùng phối hợp ảo hóa server, network, network storage để cung cấp Infrastructure –as-a service (Iaas) giống như các nhà cung cấp hosting nhưng với phần cứng riêng của họ.

Cloudstack là hệ thống“cloud operating system “ mã nguồn mở , nó cho phép xây dựng “public cloud computing “ tương tự Amazon EC2 hay Private Cloud, Hybird Cloud. Cloudstack phối hợp các nguồn tài nguyên ảo hóa của bạn thành một môi trường đồng nhất, nơi bạn có thể ủy nhiệm cho người sử dụng tự tạo các máy ảo và sử dụng tùy theo nhu cầu riêng của họ.

CS1.png

  • Hỗ trợ nhiều hypervisor:Xenserver, VMware,OracleVM, KVM, XCP.
  • Quản lý tập trung , có thể quản lý tới mười ngàn server, khi một thành phần trục trặc không làm sụp đổ hệ thống.
  • Tính sẵn sàng cao: tự đông giám sát và khắc phục Virtual machine (VM), khi một VM bị lỗi hệ thống sẽ cố gắng khôi phục lại. Management server có thể được triển khai nhiều node để thực hiện load balancing , Cloudstack hỗ trợ NIC Bonding.
  • Sử dụng security groups hoặc chia Vlan tạo thành các mạng ảo giúp cô lập các accounts .
  • Chọn lựa interface: Web UI, command line, API. Sử dụng giao diện đồ họa (Web) cho việc quản lý cũng như người dùng cuối có thể tương tác với VM: power off, restart ,backup…

CS2.png

  • Cung cấp các dịch vụ mạng : loadbalancing, dhcp, routing, Vlan, firewall, isolation, VPN, manage external networking. Dịch vụ load balancing cho phép xây dựng hệ thống cân bằng tải sử dụng phương pháp: Roud-robin, Least connection, Source IP. Vitual Router cung cấp DHCP và DNS tự động đến các VM, default Firewall chặn mọi kết nối từ bên ngoài đến nhưng cho phép mọi kết nết từ hệ thống ra môi trường internet.
  • Hỗ trợ nhiều giao thức lưu trữ: NFS, SCSI, FC, FCoE
  • Giới hạn tài nguyên theo nhu cầu: RAM, CPU, Network, HDD.

CS3.png

• Kiến trúc Cloudstack:

  • Management server cung cấp giao diện web cho người quản trị cũng như người dung cuối, cung cấp API cho CloudStack, quản lý các guest VMs, IP private và public đến từng account, quản lý việc cung cấp storage đến các VM như là Virtual Disk, templates, iso images.
  • Host là đơn vị cơ sở, mỗi host là một hypervisor hay bare metal

CS4.png

  • Các host có cấu hình giống nhau được gom thành group gọi là cluster. Các host trong cluster chia sẻ primary storage.

CS5.png

  • Một hay nhiều cluster nhóm thành một Pod, mỗi Pod tương đương với một Rack sử dụng switch layer 2.
  • Các Pod được nhóm thành Zone và cùng chia sẻ secondary storage

CS6.png

  • Một datacenter có thể gồm một hay nhiều Zones.
  • Service Offering cung cấp các lựa chọn : tốc độ xử lý CPU, số lượng CPU, dung lượng Ram, hỗ trợ HA…

CS7.png

  • Disk Offering cung cấp các chọn lựa về kích thước ổ cứng.
  • Network Offering mô tả các tính năng được xác lập cho người dùng cuối từ virtual router cũng như môi trường public. Có 2 cơ chế được sử dụng: Basic network: không yêu cầu sử dụng VLANs , các guest trong một pod chia sẻ cùng broadcast domain.

CS8.png

Advance Network:mỗi account sẽ chạy trên các mạng riêng gọi là virtual network vì thế nên chúng hoàn toàn cô lập với nhau. Advanced network sử dụng Source NAT nhằm giảm số lượng IP public, khi đó mỗi account gồm một hay nhiều VMs sử dụng chung1 IP public.

CS9.png

  • Templates là các file ảnh của hệ điều hành, giúp khách hàng có thể khởi tạo server nhanh chóng, ngoài ra khách hàng còn có thể lựa chọn cài đặt từ file iso sẵn có hoặc khách hàng tự upload lên.

  • Templates là các file ảnh của hệ điều hành, giúp khách hàng có thể khởi tạo server nhanh chóng, ngoài ra khách hàng còn có thể lựa chọn cài đặt từ file iso sẵn có hoặc khách hàng tự upload lên.

CS10.png

  • Hệ thống quản lý account phân cấp trong đó mỗi domain là một đơn vị độc lập tương ứng với một khách hàng, một reseller.

CS11.png

  • Primary storage liên kết với một cluster và nó lưu trữ disk volume của tất cả các VMs đang chạy trên các host của cluster, Primary storage hỗ trợ nhiều nhiều định dạng khác nhau NFS, ISCSI, FCoI phụ thuộc vào hypervisor.
  • Secondary Storage liên kết với một Zone và là nơi lưu trữ của: templates, ISO images, Disk volume snapshots.
  • Hỗ trợ LDAP: Microsoft Acitve Directory và ApacheDS cho việc chứng thực người dùng cuối.

• Hypervisor

Hypervisor là hệ thống cho phép nhiều hệ điều hành cùng chạy trên cùng một máy vật lý duy nhất. Trong kiến trúc của CPU X86 quyền sử lý được chia thành các level ring. Ring 0 là ring có quyền cao nhất còn được gọi là supervisor mode và thông thường các hệ điều hành chạy ở ring này, các ứng dụng trên hệ điều hành chạy ở ring 3. Nhưng để có thể chạy nhiều hệ điều hành trên một phần cứng thì hypervisor phải chạy trên ring 0 nhằm cung cấp và quản lý tài nguyên cho các hệ điều hành. Để Có hai công nghệ được sử dụng nhằm giải quyết vấn đề trên:

  • Paravirtualization: Khi đó các hệ điều hành phải chạy trên ring khác chẳng hạn như ring1, do đó yêu cầu cần can thiệp vào kernel của hệ điều hành. Điều này hoàn toàn có thể thực hiện đối với các hệ điều hành mã nguồn mở chẳng hạn như Linux, nhưng khó có thể thực hiện trên Window. Ưu điểm là hiệu suất sử lý cao.
  • Full virtualization - HVM : Công nghệ này mô phỏng toàn bộ phần cứng hệ thống đó đó không cần can thiệp vào kernel, có thể chạy hệ điều hành Linux hay Windows nhưng hiệu xuất thấp hơn Paravirtualization do tốn tài nguyên cho việc mô phỏng. Yêu cầu phần cứng hỗ trợ ảo hóa :Intel-VT hay ADM-V. KVM,Vmware Vsphere sử dụng công nghệ này.
  • Giới thiệu Hypervisor : Xen Cloud Platform (XCP) XCP là một hypervisor mã ngồn mở hỗ trợ đồng thời 2 công nghệ Paravirtualization và Full virtualization. Các hệ điều hành Linux chạy trên Paravirtualization nhằm tăng hiệu xuất hệ thống. Một lợi thế nữa của XCP là đối với các hệ điêu hành Window sử dụng công nghệ PVHVM (Paravirtualization on Hardware-assisted virtualization) sẽ cho hiệu xuất tốt gần như công nghê Paravirtualization.

CS12.png

PVHCM: sử dụng khái niệm Dom0 và DomU, Dom0 hệ hiều hành đầu tiên chạy , các hệ điều hành còn lại gọi là DomU , các DomU tương tác với mạng và phần cứng qua Dom0.

CS13.png


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.