VMware: Support for console log in the VMware driver (partial)

Registered by Radoslav Gerganov on 2014-10-14

The VMware driver doesn't provide a serial console log unlike other compute drivers (libvirt, hyperv).
This is a proposal to implement this feature by using virtual serial ports with network backing [1].

During the Juno cycle we tried to implement console log by using serial ports with file backing [2][3]. Unfortunately, this was not accepted because there is no way to control the size of the log file which is a well-known problem for other drivers[4].

The current proposal is to leverage the support for Virtual Serial Port Concentrator[5] in vCenter and use it to collect console logs for OpenStack instances. The VSPC will be deployed along with nova-compute and it will persist each console log into a dedicated folder, supporting max file size for each log.

The changes required in the VMware driver are:
1. When spawning instances, add virtual serial port which points to the VSPC
2. Implement get_console_log to return the log file created by VSPC for given instance UUID

Testing:

This feature will be tested with the standard set of tempest tests that we have for getting the console log. Currently these tests are not executed by the VMware CI but we will enable them as soon as this blueprint is implemented. The VMware CI will take care to deploy the VSPC as additional step for preparing the testbed.

[1] http://pubs.vmware.com/vsphere-55/topic/com.vmware.wssdk.apiref.doc/vim.vm.device.VirtualSerialPort.URIBackingInfo.html
[2] https://review.openstack.org/86038
[3] https://review.openstack.org/115239
[4] https://bugs.launchpad.net/nova/+bug/832507
[5] https://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.wssdk.vsp.doc/virtual_serial_port_using_proxy_Chapter1.3.2.html

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Low
Drafter:
Radoslav Gerganov
Direction:
Approved
Assignee:
Radoslav Gerganov
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 12.0.0
Started by
Radoslav Gerganov on 2015-01-22
Completed by
John Garbutt on 2015-08-05

Related branches

Sprints

Whiteboard

I would recommend getting agreement in a nova-spec on the new approach, but it looks like you are taking into account the main issues, and this is restricted to the VMware driver, so I am happy to approve this without a spec. However, before approve we really need a step by step set of instructions for someone to use/test this, and ideally a promise to test this in minesweeper --johnthetubaguy 17th October 2014.

This is a feature parity fix, so I hope that we can get this approved without having a spec. I have added a 'Testing' section to the blueprint. --rgerganov 30th October 2014.

OK, we need to be sure to document things, particularly as there is no spec, but that OK, approved. --johnthetubaguy 30th October 2014

Bumping to k-2 -- mikal 9 Dec 2014

Gerrit topic: https://review.openstack.org/#q,topic:bp/vmware-console-log,n,z

Addressed by: https://review.openstack.org/149203
    VMware: add serial port device

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

Trivial approval granted for Liberty in the nova meeting -- mikalstill 5 June 2015
Please move to NeedsCodeReview once its all ready to review, which might well be right now. --johnthetubaguy 5th June 2015

Addressed by: https://review.openstack.org/450636
    VMware: serial console log (completed)

Addressed by: https://review.openstack.org/509417
    Move last_bytes into the path module

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.