Ovirt Arch Iheim
Ovirt Arch Iheim
Ovirt Arch Iheim
Itamar Heim
Director, RHEV-M Engineering, Red Hat
● Advanced features
● Live migration
● Memory page sharing
● Thin provisioning
● PCI Pass-through
● Hardware management
● Device drivers
● I/O Stack
● Resource Management
● Scheduling
● Access Control
● Power Management
● Memory Manager
● Device Model (emulation)
● Virtual Machine Monitor
}
●
● Hardware management
● Device drivers
● I/O Stack
● Resource Management Operating System Kernel
● Scheduling
● Access Control
● Power Management
● Memory Manager
● Device Model (emulation)
● Virtual Machine Monitor
http://www.spec.org/virt_sc2010/
http://bit.ly/virtshootout
● Standalone hypervisor
● Small footprint < 100MB
● Customized 'spin' of Fedora +
KVM
● 'Just enough' Fedora to run virtual
machines
● Runs on all RHEL hardware
with Intel VT/AMD-V CPUs
● Easy to install, configure and upgrade
● PXE boot, USB boot, CD or Hard
drive
oVirt Node
•
Less than 100 MB
•
Pre-configured, no Linux skills
needed.
Full Host
•
Flexible
•
Add monitoring agents, scripts
etc. Leverage existing Fedora
infrastructure.
•
Hybrid mode capable
High Availability Restart guest VMs from failed hosts automatically on other hosts
Power Saver Concentrate virtual machines on fewer servers during off-peak hours
No downtime for virtual machines during planned maintenance windows.
Maintenance Manager Hypervisor patching
Monitoring & Reporting For all objects in system – VM guests, hosts, networking, storage etc.
OVF Import/Export Import and export VMs and templates using OVF files
• Dynamically balance
workloads in the data center.
• Automatically live migrate
virtual machines based on
resources
• Define custom policies for
distribution of virtual machines
High Availability Restart guest VMs from failed hosts automatically on other hosts
Power Saver Concentrate virtual machines on fewer servers during off-peak hours
No downtime for virtual machines during planned maintenance windows.
Maintenance Manager Hypervisor patching
Monitoring & Reporting For all objects in system – VM guests, hosts, networking, storage etc.
OVF Import/Export Import and export VMs and templates using OVF files
Centralized management,
security and policy enforcement
Virtual desktops with user
experience of a physical PC
Multiple monitors
HD quality video
Bi-directional audio/video for
VoIP or video-conferencing
Smartcard support
USB support
Industry leading density of virtual
desktops/server
● Qumranet
● KVM
● SPICE
● SolidICE --> RHEV-M C# --> RHEV-M Java --> oVirt
● C# --> Java
● using automatic conversion approach for core and UI[1]
● VDSM
● oVirt Node
[1] http://lpeer.blogspot.com/2010/04/switching-from-c-to-java.html
oVirt Engine Architecture 23
Things have changed
Postgres
Postgres Admin
AdminPortal
Portal
gwt
gwt
AD
AD oVirt
oVirt RR
EE SDK/CLI
SDK/CLI
Engine
Engine
SS python
python
Java
Java
IPA
IPA TT
User
UserPortal
Portal
gwt
gwt
Guest
Guestagent
agent Guest
Guestagent
agent
SPICE
Shared
SharedStorage
Storage Linux
LinuxVM
VM Win
WinVM
VM Linux/Windows
Linux/Windows
FC/iSCSI/NFS
FC/iSCSI/NFS client
client
libvirt
libvirt
VDSM
VDSM
Host
Host| |Node
Node
Local
LocalStorage
Storage
oVirt Engine Architecture 30
Engine Core (Backend)
VMVM&&Template
TemplateLife
LifeCycle
Cycle Load
Load HA
HA
create,
create,schedule,
schedule,snapshot
snapshot Balancing
Balancing
Storage
Storage
Configuration
Configuration&&Monitoring
Monitoring
Network
Network
Configuration
Configuration&&Monitoring
Monitoring
Host
Host Host
Host Host
Host Host
Host
Register/Install
Register/Install Monitoring
Monitoring Maintenance
Maintenance Fencing
Fencing
Authentication,
Authentication,Authorization
Authorization Inventory
Inventory
Audit
Audit
● Users
● Groups
● Roles
● Permissions
● Users
● Groups
● Roles
● Permissions
● Users
● Groups
● Roles
● Permissions
● Users
● Groups
● Roles
● Permissions
● Users
● Groups
● Roles
● Permissions
● Users
● Groups
● Roles
● Permissions
● Users
● Groups
● Roles
● Permissions
https://fedorahosted.org/rhevm-api/
POST http://10.35.1.1/rhevm-api/vms
<vm>
<name>my_new_vm</name>
<cluster id="99408929-82cf-4dc7-a532-9d998063fa95" />
<template id="00000000-0000-0000-0000-000000000000" />
</vm>
curl -v -u "[email protected]"
-H "Content-type: application/xml"
-d '<vm><name>my_new_vm</name><cluster id="99408929-82cf-4dc7-
a532-9d998063fa95" /><template id="00000000-0000-0000-0000-
000000000000"/></vm>'
'http://10.35.1.1/rhevm-api/vms'
PUT http://10.35.1.1/rhevm-api/vms/2496a177-e7c8-
4f82-bf3d-2d0f73444990
<vm>
<name>test_vm_new_name</name>
</vm>
POST
http://10.35.1.1/rhevm-api/vms/2496a177-e7c8-4f82-bf3d-2
<disk>
<storage_domain id="3e1c96f0-8667-4a80-9689-af1337395dea" href="/rhevm-
api/storagedomains/3e1c96f0-8667-4a80-9689-af1337395dea" />
<size>1073741824</size>
<type>system</type>
<interface>virtio</interface>
<format>raw</format>
<sparse>true</sparse>
<bootable>true</bootable>
<wipe_after_delete>false</wipe_after_delete>
<propagate_errors>false</propagate_errors>
</disk>
● curl -v -u "[email protected]"
-H "Content-type: application/xml"
-d '<disk>...</disk>' http://...
● Data warehouse
● Reports (based on jasperforge.org)
● Tools
● Notifications
● Config
● Iso uploader
● Log collector
SSO
SSO
balloon
balloon Virtio-
Virtio- Virtio-
Virtio- USB
USB Spice
Spice guest
guest
net
net block
block driver
driver Agent
Agent
virto-serial
Guest
GuestAgent
Agent
QEMU/KVM
QEMU/KVM
libvirt
libvirt
hooks
hooks
Host
Host Storage
Storage Network
Network VM
VM Auto
Auto
Config
Config&& Config
Config&& Config
Config&& Config
Config&& Register
Register
Monitor
Monitor Monitor
Monitor Monitor
Monitor Monitor
Monitor
KSM
KSM
VDSM manages a Storage Pool, comprised of Storage Domains
Storage Pool - a VM repository that contains meta data about
storage domains, storage tasks, VMs, locks, etc.
Storage Domain - a disk image repository
Disk Image - a collection of volumes (chain of snapshots)
Volume - stored as files in NFS, and as Logical Volumes for
FC/iScsi
Thin provisioning for SAN supported (storage mailbox based)
A Storage Pool is implemented as a managed cluster
Manager is oVirt Engine, running on a node external to
the hosts using the storage pool
Heartbeats and fencing are used in case of node failures
Storage based leased locks used as another layer of
protection
Clustering wise - VMs are mostly single reader/writer -
locks mostly needed to handle failures
Can easily create a cluster of >100 nodes
http://www.ovirt.org