vdsm - virtual desktop and server management …virtual desktop and server management daemon kvm...

51
Vdsm Dan Kenigsberg Vdsm is Free What is Vdsm Responsibilities Why Vdsm Architecture API Storage Architecture Storage API Thin Provisioning Bright Future Vdsm Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 1 / 23

Upload: others

Post on 28-Jun-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

VdsmVirtual Desktop and Server Management DaemonKVM Forum 2011, Vancouver

Red Hat

Dan Kenigsberg

August 15, 2011

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 1 / 23

Page 2: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Agenda

1 Vdsm is FreeWhat is VdsmResponsibilitiesWhy VdsmArchitectureAPIStorage ArchitectureStorage APIThin ProvisioningBright Future

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 2 / 23

Page 3: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

What is Vdsm?

Vdsm is a node management API.

High level API for managing ahypervisor node.

Abstracts low level details of underlying Linuxenvironments

Today: RHEL-5 RHEL6 RHEV-HTomorrow: Fedora and other Linux distros (patcheswelcome)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 3 / 23

Page 4: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

What is Vdsm?

Vdsm is a node management API.

High level API for managing ahypervisor node.

Abstracts low level details of underlying Linuxenvironments

Today: RHEL-5 RHEL6 RHEV-HTomorrow: Fedora and other Linux distros (patcheswelcome)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 3 / 23

Page 5: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

What is Vdsm?

Vdsm is a node management API.

High level API for managing ahypervisor node.

Abstracts low level details of underlying Linuxenvironments

Today: RHEL-5 RHEL6 RHEV-HTomorrow: Fedora and other Linux distros (patcheswelcome)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 3 / 23

Page 6: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

What is Vdsm?

Vdsm is a node management API.

High level API for managing ahypervisor node.

Abstracts low level details of underlying Linuxenvironments

Today: RHEL-5 RHEL6 RHEV-HTomorrow: Fedora and other Linux distros (patcheswelcome)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 3 / 23

Page 7: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

What is Vdsm?

Vdsm is a node management API.

High level API for managing ahypervisor node.

Abstracts low level details of underlying Linuxenvironments

Today: RHEL-5 RHEL6 RHEV-HTomorrow: Fedora and other Linux distros (patcheswelcome)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 3 / 23

Page 8: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Vdsm Responsibilities

VM lifecycle (libvirt + guest agent).

Host bootstrap/registration.

Monitoring host and VMs.

Network configuration.

Storage management.

Policy management

schedulerksmthin provisioning (“a running VM should keep running”)storage/network/cpu QoSbalooning.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 4 / 23

Page 9: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Vdsm Responsibilities

VM lifecycle (libvirt + guest agent).

Host bootstrap/registration.

Monitoring host and VMs.

Network configuration.

Storage management.

Policy management

schedulerksmthin provisioning (“a running VM should keep running”)storage/network/cpu QoSbalooning.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 4 / 23

Page 10: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Vdsm Responsibilities

VM lifecycle (libvirt + guest agent).

Host bootstrap/registration.

Monitoring host and VMs.

Network configuration.

Storage management.

Policy management

schedulerksmthin provisioning (“a running VM should keep running”)storage/network/cpu QoSbalooning.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 4 / 23

Page 11: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Vdsm Responsibilities

VM lifecycle (libvirt + guest agent).

Host bootstrap/registration.

Monitoring host and VMs.

Network configuration.

Storage management.

Policy management

schedulerksmthin provisioning (“a running VM should keep running”)storage/network/cpu QoSbalooning.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 4 / 23

Page 12: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Vdsm Responsibilities

VM lifecycle (libvirt + guest agent).

Host bootstrap/registration.

Monitoring host and VMs.

Network configuration.

Storage management.

Policy management

schedulerksmthin provisioning (“a running VM should keep running”)storage/network/cpu QoSbalooning.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 4 / 23

Page 13: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Vdsm Responsibilities

VM lifecycle (libvirt + guest agent).

Host bootstrap/registration.

Monitoring host and VMs.

Network configuration.

Storage management.

Policy management

schedulerksmthin provisioning (“a running VM should keep running”)storage/network/cpu QoSbalooning.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 4 / 23

Page 14: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm

qemu is good:$ qemu-kvm & yay! we have a virtual machine (but seethe fine print).

/usr/libexec/qemu-kvm -S -M rhel6.0.0 -cpu Conroe -enable-kvm -m 2048

-smp 1,sockets=1,cores=1,threads=1 -name z-win7x86-1 -uuid e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-smbios type=1,manufacturer=Red Hat,product=RHEL,version=6Server-6.1.0.2.el6_1,serial=50C1C6F0-B18B-11DE-ADF1-00215EC7FC0C_00:1A:64:E7:0E:E0,uuid=e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/z-win7x86-1.monitor,server,nowait

-mon chardev=charmonitor,id=monitor,mode=control -rtc base=2011-08-04T06:17:36 -boot

cdn -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x6

-drive file=....

Libvirt is even better:To manage more than a handful of virtual machines youwould need libvirt: virsh, virt-manager.

Managing a virtualization node has much more than firingup a (K)VM.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 5 / 23

Page 15: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm

qemu is good:$ qemu-kvm & yay! we have a virtual machine (but seethe fine print).

/usr/libexec/qemu-kvm -S -M rhel6.0.0 -cpu Conroe -enable-kvm -m 2048

-smp 1,sockets=1,cores=1,threads=1 -name z-win7x86-1 -uuid e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-smbios type=1,manufacturer=Red Hat,product=RHEL,version=6Server-6.1.0.2.el6_1,serial=50C1C6F0-B18B-11DE-ADF1-00215EC7FC0C_00:1A:64:E7:0E:E0,uuid=e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/z-win7x86-1.monitor,server,nowait

-mon chardev=charmonitor,id=monitor,mode=control -rtc base=2011-08-04T06:17:36 -boot

cdn -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x6

-drive file=....

Libvirt is even better:To manage more than a handful of virtual machines youwould need libvirt: virsh, virt-manager.

Managing a virtualization node has much more than firingup a (K)VM.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 5 / 23

Page 16: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm

qemu is good:$ qemu-kvm & yay! we have a virtual machine (but seethe fine print).

/usr/libexec/qemu-kvm -S -M rhel6.0.0 -cpu Conroe -enable-kvm -m 2048

-smp 1,sockets=1,cores=1,threads=1 -name z-win7x86-1 -uuid e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-smbios type=1,manufacturer=Red Hat,product=RHEL,version=6Server-6.1.0.2.el6_1,serial=50C1C6F0-B18B-11DE-ADF1-00215EC7FC0C_00:1A:64:E7:0E:E0,uuid=e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/z-win7x86-1.monitor,server,nowait

-mon chardev=charmonitor,id=monitor,mode=control -rtc base=2011-08-04T06:17:36 -boot

cdn -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x6

-drive file=....

Libvirt is even better:To manage more than a handful of virtual machines youwould need libvirt: virsh, virt-manager.

Managing a virtualization node has much more than firingup a (K)VM.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 5 / 23

Page 17: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm

qemu is good:$ qemu-kvm & yay! we have a virtual machine (but seethe fine print).

/usr/libexec/qemu-kvm -S -M rhel6.0.0 -cpu Conroe -enable-kvm -m 2048

-smp 1,sockets=1,cores=1,threads=1 -name z-win7x86-1 -uuid e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-smbios type=1,manufacturer=Red Hat,product=RHEL,version=6Server-6.1.0.2.el6_1,serial=50C1C6F0-B18B-11DE-ADF1-00215EC7FC0C_00:1A:64:E7:0E:E0,uuid=e3e19b36-f6b7-4ab9-b604-1f8b5c471bda

-nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/z-win7x86-1.monitor,server,nowait

-mon chardev=charmonitor,id=monitor,mode=control -rtc base=2011-08-04T06:17:36 -boot

cdn -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x6

-drive file=....

Libvirt is even better:To manage more than a handful of virtual machines youwould need libvirt: virsh, virt-manager.

Managing a virtualization node has much more than firingup a (K)VM.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 5 / 23

Page 18: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm(-18)

With thousands of machines, a cluster of hundreds of hosts,multiple storage exports — what to do?

One solution is Red Hat Enterprise Virtualization (RHEV).

Vdsm is its node agent, tailored for its needs.

Agile, KVM-specific.

RHEV is being open sourced.

Vdsm is moving to a more general use case, applicable toother management platforms.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 6 / 23

Page 19: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm(-18)

With thousands of machines, a cluster of hundreds of hosts,multiple storage exports — what to do?

One solution is Red Hat Enterprise Virtualization (RHEV).

Vdsm is its node agent, tailored for its needs.

Agile, KVM-specific.

RHEV is being open sourced.

Vdsm is moving to a more general use case, applicable toother management platforms.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 6 / 23

Page 20: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm(-18)

With thousands of machines, a cluster of hundreds of hosts,multiple storage exports — what to do?

One solution is Red Hat Enterprise Virtualization (RHEV).

Vdsm is its node agent, tailored for its needs.

Agile, KVM-specific.

RHEV is being open sourced.

Vdsm is moving to a more general use case, applicable toother management platforms.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 6 / 23

Page 21: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm(-18)

With thousands of machines, a cluster of hundreds of hosts,multiple storage exports — what to do?

One solution is Red Hat Enterprise Virtualization (RHEV).

Vdsm is its node agent, tailored for its needs.

Agile, KVM-specific.

RHEV is being open sourced.

Vdsm is moving to a more general use case, applicable toother management platforms.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 6 / 23

Page 22: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Why Vdsm(-18)

With thousands of machines, a cluster of hundreds of hosts,multiple storage exports — what to do?

One solution is Red Hat Enterprise Virtualization (RHEV).

Vdsm is its node agent, tailored for its needs.

Agile, KVM-specific.

RHEV is being open sourced.

Vdsm is moving to a more general use case, applicable toother management platforms.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 6 / 23

Page 23: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Place within oVirt

Freeing Vdsm is another step in freeing RHEV-M within theoVirt framework.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 7 / 23

Page 24: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

By Daniel Schwen, from Wikipedia

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 8 / 23

Page 25: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 26: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 27: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 28: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 29: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 30: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 31: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 32: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation

Written in Python.

Multithreaded, Multi-processes.

Used to speak directly to qemu, now uses libvirt for that.

Speaks with its guest agent via virtio-serial.

Implements a distributed image repository over thesupported storage types: Local directory, FCP, FCoE,iSCSI, NFS...

Maintains that on a multihost system, only one concurrentmetadata writer exists.Scales linearly in data writers.Image-aware API. (import, templates, qcow, raw)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 9 / 23

Page 33: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation (-18)

Robustness as a design goal:

Evaporated NFS exports.

Faulty multipaths.

Node crash.

Live-locked qemu.

Internal Python exceptions.

Self-fencing of metadata writer.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 10 / 23

Page 34: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation (-18)

Robustness as a design goal:

Evaporated NFS exports.

Faulty multipaths.

Node crash.

Live-locked qemu.

Internal Python exceptions.

Self-fencing of metadata writer.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 10 / 23

Page 35: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation (-18)

Robustness as a design goal:

Evaporated NFS exports.

Faulty multipaths.

Node crash.

Live-locked qemu.

Internal Python exceptions.

Self-fencing of metadata writer.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 10 / 23

Page 36: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation (-18)

Robustness as a design goal:

Evaporated NFS exports.

Faulty multipaths.

Node crash.

Live-locked qemu.

Internal Python exceptions.

Self-fencing of metadata writer.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 10 / 23

Page 37: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation (-18)

Robustness as a design goal:

Evaporated NFS exports.

Faulty multipaths.

Node crash.

Live-locked qemu.

Internal Python exceptions.

Self-fencing of metadata writer.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 10 / 23

Page 38: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Architecture and Implementation (-18)

Robustness as a design goal:

Evaporated NFS exports.

Faulty multipaths.

Node crash.

Live-locked qemu.

Internal Python exceptions.

Self-fencing of metadata writer.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 10 / 23

Page 39: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Host Monitoring API

getVdsCapabilities

getVdsStats

ping

fenceNode

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 11 / 23

Page 40: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

VM Lifecycle API

Il etait une fois... la Vie, Albert Barille

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 12 / 23

Page 41: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

VM Lifecycle API

create

destroy

pause

continue

setVmTicket

changeCD

changeFloppy

migrate (downtime,timeout)

hibernate

hooks

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 13 / 23

Page 42: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

VM Lifecycle API (agent-dependent)

shutdown

desktopLogin

desktopLogoff

desktopLock

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 14 / 23

Page 43: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

VM Monitoring API

list

getAllVmStats

getVmStats

Interesting applications installedLogged in usersCPU consumptionMemory usage...

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 15 / 23

Page 44: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Network Configuration API(agent-dependent)

addNetwork

delNetwork

editNetwork

setSafeNetworkConfig

setupNetworks

connectivityCheck

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 16 / 23

Page 45: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Async Tasks API

getAllTasksStatuses

getTaskStatus

clearTask

revertTask

stopTask

(currently used only by the storage subsystem)

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 17 / 23

Page 46: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Storage Architecture

A Storage Domain is one of: Local directory, NFS export,VG over iSCSI LUNs, VG over FCP LUNs. Vdsm (tries to)abstract the differences away.

A Storage Pool aggregates several storage domains. Wetry to remove this concept from the Vdsm level.

Single meta data writer:

SPM lease mechanism (Chockler and Malkhi 2004,Light-Weight Leases for Storage-Centric Coordination).Storage-centric mailbox.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 18 / 23

Page 47: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Storage API

connectStorageServer

getDeviceList

createStorageDomain

attachStorageDomain

createImage

prepareVolume

(and many, many more)

repoStats

getSpmStatus

spmStart

extendVolume

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 19 / 23

Page 48: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Thin Provisioning and LV extend

Disk image is created as a big empty qcow2 file within a small LV.When the guest writes, qcow2 grows.If qcow2 file fills the LV, guest stops.Local Vdsm senses that, and issues an extend requestSPM extends LV, and returns success messageLocal Vdsm continue guest execution.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 20 / 23

Page 49: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Future

New, stable API. RESTful(?), similar to that of rhevm-api

Current API is not very clean (createVG,createStorageDomain)

Split Vdsm up to reusable autonomous parts.

Spin off as a generic image repository.

SANLock, Vepa, VN-Link, storage network, storagemigration, ??

Other use cases:

Single-hostLinux containers?

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 21 / 23

Page 50: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

Contribution

[email protected]

http://git.fedorahosted.org/git/?p=vdsm.git

Ping us on #vdsm at irc.freenode.org:Saggi Mizrahi, Federico Simoncelli, Igor Lvovsky, EduardoWarszawasky, Yotam Oron, Ayal Baron, yours truly.

Come over to see our demo at Andy’s!

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 22 / 23

Page 51: Vdsm - Virtual Desktop and Server Management …Virtual Desktop and Server Management Daemon KVM Forum 2011, Vancouver Red Hat Dan Kenigsberg August 15, 2011 Dan Kenigsberg (Red Hat)

Vdsm

DanKenigsberg

Vdsm is Free

What is Vdsm

Responsibilities

Why Vdsm

Architecture

API

StorageArchitecture

Storage API

ThinProvisioning

Bright Future

The end.Thanks for listening.

Dan Kenigsberg (Red Hat) Vdsm August 15, 2011 23 / 23