VMWare Video Memory Filter

Registered by Sagar Ratnakara Nikam on 2014-10-06

VMWare Video Memory Filter - A filter scheduler for performing calculations using video memory

Problem Description
==========================================
The nova VMWare driver in Juno does not allow an instance to have a specific video memory, which means the default video memory (4 MB) is set by VMWare vCenter.

A Blueprint to support video memory for instances spawned using VMWare driver is submitted for Kilo
https://blueprints.launchpad.net/nova/+spec/vmware-driver-support-for-video-memory

This BP is an extension of the above mentioned BP

VMWare vCenter allows setting of Video Memory of the VM. The video memory allocation is evenly divided - Half the video memory is reserved on the hardware GPU, while the other half is reserved via host RAM. A maximum of 512 MB video can be assigned to a VM, which means a max of 256 MB is on hardware GPU for a VM. If a VM has video memory assigned and all the hardware GPU is already reserved for other VMs, then software 3D rendering will be used, which means all of the instance’s video memory will be on host RAM. By default the vCenter sets the graphics rendering to “Automatic”, which means if hardware GPU is not available, video memory is set on host RAM and software 3D rendering will be used.

The vCenter does not provide any API which returns the free video memory on the hardware GPU. Hence when a instance requires video memory, the scheduler calculation for a valid host can happen on the free host memory since vCenter by default uses host memory if video memory on hardware GPU is not available.

Proposed Change
==========================================
A new scheduler filter “VMWareVideoMemoryFilter” which extends RamFilter.
The VMWareVideoMemoryFilter will return a host as a valid host if the usable_ram > (requested_ram + video_ram)

The def host_passes() would be overridden in this class

The def _get_ram_allocation_ratio() will NOT be overridden as the allocation ratio will be the same as defined for RamFilter

Blueprint information

Status:
Started
Approver:
John Garbutt
Priority:
Low
Drafter:
Sagar Ratnakara Nikam
Direction:
Needs approval
Assignee:
Sagar Ratnakara Nikam
Definition:
Pending Approval
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
milestone icon next
Started by
Sagar Ratnakara Nikam on 2014-11-01

Related branches

Sprints

Whiteboard

Seems like a simple scheduler filter, no need for a spec. But please be aware there are lots of changes in the resource tracker happening right now. The details of this are best reviewed in code, so approving this. --johnthetubaguy 17th October 2014

Gerrit topic: https://review.openstack.org/#q,topic:bp/vmware-video-memory-filter-scheduler,n,z

Addressed by: https://review.openstack.org/132409
    VMWare Video Memory Filter

Moved to kilo-2 as dependent blueprint is in kilo-2 --johnthetubaguy 16th December 2014

Waiting for resource tracker BP to get merged - Sagar 5th Jan 2015

Sorry, we have now hit the non-priority feature freeze for kilo. Please resubmit your spec for the L release. --johnthetubaguy 5th Feb 2015

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.