Openstack là gì? Các thành phần của Openstack

Openstack là gì? Các thành phần của Openstack

Openstack là gì? Các thành phần của Openstack



Openstack là gì?

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ác thành phần của Openstack

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 share 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 windows 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 usb 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ộ.

Rate this post