Release: Mirantis OpenStack 5.0
OS: Ubuntu
Networking: Nova-network (FlatDHCP)
Environment: KVM, 1 controller, 1 compute
Steps to reproduce:
from controller node:
echo "Hello World!" > ./test.txt
nova boot --image <image_ID> --flavor 1 --nic net-id=<network_ID> --file /root/test.txt=./test.txt instance-test
On compute node in /var/log/nova-all.log:
Jun 28 00:29:47 node-8 nova-nova.compute.manager ERROR: Instance failed to spawn
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1720, in _spawn
block_device_info)
File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2244, in spawn
admin_pass=admin_password)
File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2697, in _create_image
instance, network_info, admin_pass, files, suffix)
File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2537, in _inject_data
instance=instance)
File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__
six.reraise(self.type_, self.value, self.tb)
File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2531, in _inject_data
mandatory=('files',))
File "/usr/lib/python2.7/dist-packages/nova/virt/disk/api.py", line 353, in inject_data
fs.setup()
File "/usr/lib/python2.7/dist-packages/nova/virt/disk/vfs/guestfs.py", line 132, in setup
{'imgfile': self.imgfile, 'e': e})
NovaException: Error mounting /var/lib/nova/instances/dab50d4d-a884-4b1c-9db4-ca3c8e323f22/disk with libguestfs (external command failed, see earlier error messages)
Then we tried to create an instance without injection and it was launched successfully.
If we go on compute node and try to execute the following commands:
mkdir ./tmp
guestmount -r -a /var/lib/nova/instances/8180ff35-e371-4c69-a357-168e43e49970/disk -i /root/tmp/
We get the same error
Then we execute on the compute node:
update-guestfs-appliance
After that we can mount guest fs and we can launch an instance with injection
update- guestfs- appliance was supposed to be run from postinst script of libguestfs0 deb package:
case "$1" in reconfigure) debconf/ confmodule update- appliance
update- guestfs- appliance >&2 || true
configure|
. /usr/share/
db_get libguestfs/
if [ "$RET" = true ]; then
fi
;;
The libguestfs/ update- appliance is set to true by puppet here: /github. com/stackforge/ fuel-library/ blob/master/ deployment/ puppet/ nova/files/ guestfs. seed /github. com/stackforge/ fuel-library/ blob/master/ deployment/ puppet/ nova/manifests/ utilities. pp
https:/
https:/