Giới thiệu Openstack

Openstack là một Iaas cloud computing project. Bên cạnh sự hỗ trợ tích cực từ cộng đồng, openstack cũng được hỗ trợ bởi nhiều công ty tên tuổi như redhat, ibm, vmware… Openstack là giải pháp cho public cloud và private cloud với quy mô đa dạng. Được thiết kế thành các component, trao đổi với nhau qua các API nên openstack rất linh động, một component có thể được thay thế mà không ảnh hưởng đến các component còn lại.

Kiến trúc tổng quan của Openstack

openstack_architecture.png

Dashboard là giao diện điều khiển của cloud. Nó kết nối đến tất cả các thành phần còn lại: compute, network, storage, nói chuyện với tất cả các thành phần qua API. Cloud tập hợp gồm nhiều node có các chức năng khác nhau, compute node để tính toán, network OS trên networking node để quản lý network, storage node để quản lý các storage. Khi user application truy cập vào cloud, user sẽ được cấp phát các node nhất định để định nghĩa lên infrastructure mà user đó muốn. Sử dụng cloud, tài nguyên của bạn sẽ được sử dụng hiệu quả tối đa. Khi user đó không còn sử dụng cloud, bạn có thể dễ dàng chuyển giao cho người khác. Bạn cũng có thể dễ dàng add thêm node để mở rộng năng lực tính toán, lưu trữ, mạng lưới của cloud hoặc giải phóng node để thu hẹp cloud.

Một số thành phần chính của Openstack

Chúng ta sẽ điểm qua ba đại diện nova, glance và swift trong bài viết này.

Tiếp tục đi sâu vào thành phần của cloud. Thành phần dashboard có tên mã là horizontal đóng vai trò là một trang quản trị. Thành phần compute thực chất gồm nhiều thành phần (component) con: nova, glance và swift cùng cộng tác nhau.

Nova

Là thành phần chính thực hiện chức năng tính toán, cũng là thành phần quan trọng nhất và có nhiều mối liên hệ với các thành phần xung quanh: horizontal, keystone, image service… Thành phần này chịu trách nhiệm quản lý các running instance của VM. Bản thân các image OS của các VM lại được quản lý bởi image service. Nova sử dụng các image để chạy VM nhưng bản thân nova không có bất kỳ hypervisor nào cả. Thay vào đó, nova được trang bị các driver cho phép giao tiếp với hypervisor qua các API chuẩn. Hãy xem các driver mà nova hỗ trợ: Các driver được chia thành ba nhóm group A, B, C, ứng với mức độ test giảm dần.

nova_drivers.png

Qua đây có thể thấy một compute node có thể host một hypervisor như Xen, EXSI mà trên đó ta tiếp tục deploy nhiều VM hoặc host một non-virtualization OS như Ubuntu, windows server…

Cũng giống như khi deploy một VM lên exsi, để deploy một VM instance lên nova, bạn cần chuẩn bị một virtual hardware template, trong openstack gọi là các flavors bao gồm: memory, cpu, disk, network…

Bản thân nova cũng lại có nhiều thành phần con khác. Đáng nói nhất là nova-scheduler, chịu trách nhịem thực hiện lọc ra các compute node (openstack gọi là host) phù hợp để phục vụ cho một request tính toán.

Về chức năng, để dễ hiểu, nova thực hiện các hoạt động khởi động/dừng running instance, detach/attach storage cho instance, gán IP, tạo snapshot.

Glance

Đóng vai trò là image service. Glance quản lý các thông tin image OS của VM nhưng bản thân các image lại nằm trên các storage. Glance được trang bị các API để lấy các image này về cho nova.

Swift

Đóng vai trò object storage. Swift lưu trữ các image OS của VM.

Tham khảo

https://blog.xenproject.org/2015/05/20/xen-project-now-in-openstack-nova-hypervisor-driver-quality-group-b/

http://www.ibm.com/developerworks/cloud/library/cl-openstack-nova-glance/

Comments

comments