nova-lxd breaks when lxd is deployed on a zfs filesystem containing the '/' character
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
nova-lxd |
Fix Committed
|
High
|
Unassigned |
Bug Description
OpenStack queens deployed on Ubuntu 16.04 with openstack-ansible.
root@alpha:~# lxc config show
config:
core.
core.
storage.
root@alpha:~#
Here's nova-compute log:
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:52:41.354 33414 ERROR nova.compute.
2018-03-19 12:53:40.910 33414 ERROR nova.compute.
2018-03-19 12:53:41.396 33414 ERROR nova.compute.
Command: sudo nova-rootwrap /etc/nova/
Exit code: 1
Stdout: u''
Stderr: u"cannot open 'tank/lxd': invalid character '/' in pool name\n"
summary: |
- nova-rootwrap breaks when lxd is deployed on a zfs filesystem containing - the '/' character + nova-lxd breaks when lxd is deployed on a zfs filesystem containing the + '/' character |
Changed in nova-lxd: | |
assignee: | nobody → Alex Kavanagh (ajkavanagh) |
Changed in nova-lxd: | |
status: | Triaged → In Progress |
Changed in nova-lxd: | |
status: | Fix Released → Fix Committed |
Changed in nova-lxd: | |
assignee: | Alex Kavanagh (ajkavanagh) → nobody |
I think that this might be a current limitation of nova-lxd. Obviously, a ZFS pool name can't have a '/' in it. This is a limitation of ZFS itself. e.g. try to create a pool name with:
# zpool create tank/lxd /mnt/zpool100M
cannot create 'tank/lxd': invalid character '/' in pool name
use 'zfs create' to create a dataset
So this will be dataset called 'lxd' in the 'tank' pool.
Now, lxd also (obviously) allows the use of zfs datasets to be use in place of a pool. So this is a feature mismatch between nova-lxd and lxd.
So, this is an enhancement. For a dataset, the relevant command will most likely be:
zfs list -o available -H tank/lxd
Which will provide the amount available in dataset. We probably ought to use '-p' (print it in parsable to also solve another bug (https:/ /bugs.launchpad .net/nova- lxd/+bug/ 1757371) re locales.