[openstack-dev] [Nova] z/VM introducing a new config driveformat

melanie witt melwittt at gmail.com
Tue Apr 17 01:20:20 UTC 2018


On Mon, 16 Apr 2018 14:56:06 +0800, Chen Ch Ji wrote:
>  >>>The "iso file" will not be inside the guest, but rather passed to 
> the guest as a block device, right?
> Cloud init expects to find a config drive with following requirements 
> [1], in order to make cloud init able to consume config drive , we 
> should be able to prepare it,
> in some hypervisor, you can define something like following to the VM 
> then VM startup is able to consume it
> <source file="/var/log/cloud/new/abc.iso"/>
> but for z/VM case it allows disk to be created during VM create (define 
> )stage but no disk format set, it's the operating system's 
> responsibility to define the purpose of the
> disk, so what we do is
> 1) first when we build image ,we create a small AE like cloud-init but 
> only purpose is to get files from z/VM internal pipe and handle config 
> drive case

What does AE stand for? So, this means in order to use the z/VM driver, 
users must have special images that will ensure the config drive will be 
readable by cloud-init. They can't use standard cloud images.

> 2) During spawn we create config drive in nova-compute side then send 
> the file to z/VM through z/VM internal pipe (omit detail here)
> 3) During startup of the virtual machine, the small AE is able to mount 
> the file as loop device and then in turn cloud-init is able to handle it
> 
> because this is our special case, we don't want to upload to cloud-init 
> community because of uniqueness and as far as we can tell, no hook in 
> cloud-init mechanism allowed as well
> to let us 'mount -o loop' ; also, from openstack point of view except 
> this small AE (which is documented well) no special thing and 
> inconsistent to other drivers
> 
> [1]https://github.com/number5/cloud-init/blob/master/cloudinit/sources/DataSourceConfigDrive.py#L225

Where is the AE documented? How do users obtain it? What tools are they 
supposed to use to build images to use with the z/VM driver?

That aside, from what I can see, the z/VM driver behaves unlike any 
other in-tree driver [0-5] in how it handles config drive. Drivers are 
expected to create the config drive and present it to the guest in 
iso9660 or vfat format without requirement of a custom image and the 
existing drivers are doing that.

IMHO, if the z/VM driver can't be fixed to provide proper config drive 
support, we won't be able to approve the implementation patches. I would 
like to hear other opinions about it.

I propose that we remove the z/VM driver blueprint from the runway at 
this time and place it back into the queue while work on the driver 
continues. At a minimum, we need to see z/VM CI running with 
[validation]run_validation = True in tempest.conf before we add the z/VM 
driver blueprint back into a runway in the future.

Cheers,
-melanie

[0] 
https://github.com/openstack/nova/blob/888cd51/nova/virt/hyperv/vmops.py#L661
[1] 
https://github.com/openstack/nova/blob/888cd51/nova/virt/ironic/driver.py#L974
[2] 
https://github.com/openstack/nova/blob/888cd51/nova/virt/libvirt/driver.py#L3595
[3] 
https://github.com/openstack/nova/blob/888cd51/nova/virt/powervm/media.py#L120
[4] 
https://github.com/openstack/nova/blob/888cd51/nova/virt/vmwareapi/vmops.py#L854
[5] 
https://github.com/openstack/nova/blob/888cd51/nova/virt/xenapi/vm_utils.py#L1151



More information about the OpenStack-dev mailing list