GIT – Openstack được phát triển bởi Rackspace và Nasa. Rackspace cung cấp phần storage và Nasa cung cấp code của phần compute.

Openstack thuộc về IaaS (Infrastructure as a Service), nghĩa là có thể dùng Openstack để tiến hành ảo hóa (virtualize) phần cứng, cung cấp dịch vụ phần cứng cho người dùng cài máy ảo. Do đó, có thể thấy rằng Openstack khá giống với AWS (Amazon Web Service). Thực ra, công cụ nào được phát triển để sử dụng trên AWS thì đều dùng được cho Openstack. Phiên bản Openstack hiện tại (Diablo) có 3 thành phần:

+Compute Infrastructure (Nova): chạy máy ảo, cấu hình mạng…

+Storage Infrastructure (Swift): lưu dữ liệu, có thể mở rộng và chịu lỗi bằng cách sao lưu dữ liệu

+Imaging Service (Glance): xử lí các file image của máy ảo

Trong phiên bản kế tiếp, Openstack có thể bao gồm thêm Dashboard, Identity.

Hình bên cho thấy Glance bao gồm 2 thành phần chính: Glace Registry để lưu metadata của các image và Glance API để tiếp nhận request và chuyển đến đúng các Image Store end. Các file image (là các file nén lưu trạng thái của os và fs tại 1 thời điểm nhất định, ví dụ như file .iso) có thể lưu bằng Swift, local file system, S3(Simple Storage System) hoặc lưu tại một nơi nào đó trên internet và được tương tác thông qua http. Glance có thể sử dụng chung với Keystone (Openstack Identity service) để thực hiện chức năng xác minh người dùng. Người dùng có thể đem các image của mình với người khác bằng cách thiết lập thuộc tính public của image bằng 1.

Swift bao gồm các Proxy node và các Storage nodes. Proxy node làm nhiệm vụ tiếp nhận request và gởi về các Storage nodes. Storage nodes để lưu các thực thể bao gồm account, container và object. Container cũng giống như folder trong hoặc directory trong linux. Tuy nhiên, container không được chứa đựng container khác. Một account có thể có nhiều container (số lượng không giới hạn), và object nhất thiết phải được lưu vào trong container, do đó trước khi upload lên, account đó cần phải có ít nhât một container. Proxy có thể sử dụng chung với Swauth, một gói phần mềm chuyên làm nhiệm vụ kiểm tra quyền truy cập, trên cùng 1 node hoặc 2 node riêng biệt.

Account, container và object đều thuộc về các Ring khác nhau. Ring được dùng để quản lí vị trí vật lí của các thực thể và cũng đảm bảo mỗi bản sao (replica) của thực thể được lưu trên các zone khác nhau. Người dùng khi thao tác trên các thực thể cần phải interact với Ring tương ứng trước để biết được vị trí của thực thể đó. Ngoài ra còn có Replications để đảm bảo các bản sao đều lưu dữ liệu giống nhau và mới nhất, Updaters để xử lí các thao tác bị lỗi và Auditors để bảo đảm tính toàn vẹn của dữ liệu. Swift sử dụng database mặc định là SQLite.

Các thành phần của Nova bao gồm nova-api, nova-compute, nova-scheduler, nova-network và nova-volume. Các thành phần của nova được liên kết với nhau bằng Queue Server. Ở đây, Queue Server dùng rabbitmq, một gói phần mềm chuyên làm nhiệm vụ chuyển request đến đích tương ứng. Do các thành phần của nova đều hoàn toàn độc lập với nhau, có thể chạy trên các máy khác nhau, và số lượng mỗi thành phần là không hạn chế, trong trường hợp có 1 máy bị hỏng, rabbitmq sẽ chọn ra 1 máy khác có cùng dịch vụ để gởi request.

Nova-scheduler để chọn ra các tài nguyên từ bể tài nguyên để cung cấp phục vụ. Nova-compute để chạy các máy ảo (instance) trong khi nova-network để cấu hình mạng ảo cho các máy ảo, bao gồm cả việc cấp public ip, và nova-volume quản líviệc tạo, xóa, gắn volume vào instance hoặc rút volume ra khỏi instance. Bạn có thể hiểu volume như một vậy, có thể lưu dữ liệu, copy dữ liệu từ instance này qua instance khác.

Có 5 loại instance với cấu hình khác nhau, thấp nhất là tiny với 512MB Ram, 1 cpu và 0GB disk; cao nhất là xlarge với 16,384 MB Ram, 8 cpu và 160 disk. Các dữ liệu lưu trên các disk này sẽ không đọc được một khi instance đã shut down, do đó người ta đưa vào khái niệm volume.

Bản thân Nova không cung cấp khả năng virtualization mà nhờ sự trợ giúp từ các hypervisor(cho phép chạy nhiều os khác nhau trên 1 host) khác như: Hyper-V2008, KVM, LXC, Quick EMUlator, User Mode Linux, VMWare ESX/ESXi 4.1, Xen – XenServer 5.5, Xen Cloud Platform. Ngoài ra node chạy nova-network cần phải có 2 card mạng đồng thời NTP (Network Time Protocol) phải được cài trên tất cả các node để thực hiện đồng bộ.

Hyper-V của Microsoft tương thích với OpenStack

Trong nỗ lực thúc đẩy điện toán đám mây, Microsoft đang thực hiện một động thái bất thường: tham gia vào dự án nguồn mở.

Cloud.com cho biết họ đang làm việc với Microsoft để thực hiện dự án nguồn mở OpenStack tương thích với công nghệ ảo hóa của Hyper-V của Microsoft.Rackspace và NASA bắt đầu dự án OpenStack hồi tháng 7/2010 với mục tiêu làm cho các doanh nghiệp dễ dàng di chuyển dữ liệu và ứng dụng từ đám mây này sang đám mây khác. Rackspace đóng góp mã chạy Cloud Files và công nghệ Cloud Servers của họ; NASA đóng góp phần mềm chạy nền tảng đám mây Nebula của họ.

OpenStack đã hỗ trợ các ứng dụng ảo hóa Xen, KVM, QEMU và User Mode Linux. Nhưng nếu không hỗ trợ cho công nghệ ảo hóa Hyper-V của Microsoft, nhiều khách hàng doanh nghiệp đang chạy một kết hợp giữa các công nghệ Microsoft và non-Microsoft có thể sẽ gặp khó khăn để tận dụng lợi thế của OpenStack.

Cloud.com đang phát triển mã mà sẽ làm cho OpenStack tương thích với Windows Server 2008 R2 Hyper-V (Microsoft cung cấp hướng dẫn kỹ thuật và kiến trúc cho Cloud.com). Các công ty không cho biết họ hy vọng khi nào thì công việc đó hoàn thành.

Khi OpenStack được công bố, trên 35 công ty (bao gồm Dell, Intel, AMD, Rightscale và Citrix) cho biết sẽ hỗ trợ OpenStack.

Download tài liệu OpenStack : http://www.gocit.vn/bai-viet/ebook-deploying-openstack/

Thảo luận bài viết tại forum : http://forum.gocit.vn/threads/openstack.570/

Print Friendly

Comments

comments

Bài viết liên quan