OpenNebula yêu cầu một nhóm các máy tính kết nối với nhau, trong đó một máy đóng vai trò Front-end, các máy còn lại là các Host, nơi trực tiếp chạy các máy ảo. Hệ thống cần ít nhất một mạng vật lý để kết nối tất cả máy tính lại với nhau.
Hình 2.9. Sơ đồ tổng quan k iến trúc hệ thống sử dụng OpenNebula
Các thành phần cơ bản của hệ thống OpenNebula bao gồm : - Front-end : Nơi chạy các dịch vụ của OpenNebula
- Hosts : Cung cấp các tài nguyên vật lý cần thiết để có thể chạy các máy ảo (VM) - Datastores : Nơi lưu trữ các ảnh dùng để tạo máy ảo.
- Service Network : Hệ thống mạng vật lý dùng để hổ trợ các dịch vụ cơ bản như kết nối hệ thống lưu trữ và hệ thống xử lý của OpenNebula.
- VM Networks : Mạng vật lý hổ trợ VLAN cho các máy ảo.
2.3.3.1 Front-end
Front-end là máy tính nơi cài đặt OpenNebula, máy này phải có quyền truy xuất vào kho lưu trữ ảnh Datastores và phải được kết nối đến mỗi host . Các dịch vụ của OpenNebula bao gồm :
- Chức năng quản lý và lập lịch.
- Chức năng giám sát tài nguyên và tính toán chi phí. - Giao diện web Sunstone dùng để quản lý tài nguyên. - Server cung cấp giao diện lập trình ( API ).
Các host là các máy vật lý nơi các máy ảo vận hành. Trong quá trình cài đặt, cần cấu hình để cho phép tài khoản Administrator của OpenNebula có thể SSH đến tất cả các host. Bên cạnh đó, tùy theo Hypervisor sử dụng trên host, cần phải cấp quyền cho một số lệnh với quyền root hoặc gán tài khoản quản trị vào một số group phù hợp.
2.3.3.3 Storage
OpenNebula sử dụng một tính năng mới là Datastores để quản lý các ảnh của máy ảo, các ảnh này được tạo và đăng kí tại Datastores. Nhìn chung các Datastores này phải truy xuất được từ Front-End sử dụng các công nghệ thích hợp như NAS, SAN.
Khi một máy ảo được triển khai trên một host nào đó thì các ảnh này sẽ được chuyển từ Datastore sang host đó.
Hình 2.10. Mô hình Datastore trong hệ thống OpenNebula
2.3.3.4 Networking
Các network subsystem dễ tùy biến, chỉnh sửa được đưa vào trong hệ thống, nhằm dễ dàng tích đáp ứng các yêu cầu về mạng của người sử dụng.
Các deamon chạy trên máy front-end cần có network để truy cập đến các host, theo dõi hypervisor, di chuyển các file image. Tùy theo hạ tầng cụ thể, ta cần phải cài đặt network cụ thể cho phù hợp với mục đích này.
Nhằm cho phép các máy ảo có thể kết nối được với nhau giữa các host vật lý khác nhau, cấu hình mặc định kết nối network interface của máy ảo đến một bridge của host. Để làm được điều này, cần có một kỹ thuật đặc biệt gọi là ethernet bridging.
Ví dụ, với một host với 2 card mạng vật lý, một dùng cho public IP address (giả sử là eth0), một dùng cho virtual network, cần phải có 2 bridge như sau:
$ brctl show
bridge name bridge id STP enabled interfaces vbr0 8000.001e682f02ac no eth0
vbr1 8000.001e682f02ad no eth1
Hình 2.11. Mô hình một host có 2 bridge, một gắn v ới card mạng eth0, một gắn v ới card mạng eth1.