yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #76720
[Bug 1813188] [NEW] Live migrations break on flavors with swap/ephemeral disks when created on Juno
Public bug reported:
Description
===========
Instance flavors with Ephemeral/Swap disk configuration created under
Juno do not live migrate/migrate/resize cleanly due to a change in
Liberty as the naming scheme for these underlying disk have changed
around the file extension from
ephemeral_size_fstype
Example: /var/lib/nova/instances/_base/ephemeral_100_default
to
ephemeral_size_hash
Example: /var/lib/nova/instances/_base/ephemeral_100_40d1d2c
per
https://github.com/openstack/nova/blob/juno-eol/nova/virt/disk/api.py#L102
def get_fs_type_for_os_type(os_type):
return os_type if _MKFS_COMMAND.get(os_type) else 'default'
https://github.com/openstack/nova/blob/liberty-
eol/nova/virt/disk/api.py#L123
def get_file_extension_for_os_type(os_type, specified_fs=None):
mkfs_command = _MKFS_COMMAND.get(os_type, _DEFAULT_MKFS_COMMAND)
if mkfs_command:
extension = mkfs_command
else:
if not specified_fs:
specified_fs = CONF.default_ephemeral_format
if not specified_fs:
specified_fs = _DEFAULT_FS_BY_OSTYPE.get(os_type,
_DEFAULT_FILE_SYSTEM)
extension = specified_fs
return utils.get_hash_str(extension)[:7]
which are used the create the file extension.
This leads to errors like
2018-12-15 23:19:40.212+0000: 16105: error :
virStorageFileGetMetadataRecurse:3063 : Cannot access backing file
'/var/lib/nova/instances/_base/swap_2048' of storage file
'/var/lib/nova/instances/a2202625-c9a4-4855-acde-de539d8059ef/disk.swap'
(as uid:108, gid:115): No such file or directory
during migration and you're forced to perform a offline migration to rebuild and reformat
the ephemeral storage
Steps to reproduce
==================
- Create instance with Juno using a flavor which uses ephemeral/swap disks
- Upgrade OpenStack to Newton (because migration was too buggy prior)
- Attempt migration
Expected result
===============
Migration succeeds and honors the file extension format
Actual result
=============
Migrations fail and instances go into error state
Environment
===========
Errors were encountered with newton-eol code but
looking at the code it would happen with nova code past Juno, including all current releases.
Logs & Configs
==============
N/A
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1813188
Title:
Live migrations break on flavors with swap/ephemeral disks when
created on Juno
Status in OpenStack Compute (nova):
New
Bug description:
Description
===========
Instance flavors with Ephemeral/Swap disk configuration created under
Juno do not live migrate/migrate/resize cleanly due to a change in
Liberty as the naming scheme for these underlying disk have changed
around the file extension from
ephemeral_size_fstype
Example: /var/lib/nova/instances/_base/ephemeral_100_default
to
ephemeral_size_hash
Example: /var/lib/nova/instances/_base/ephemeral_100_40d1d2c
per
https://github.com/openstack/nova/blob/juno-eol/nova/virt/disk/api.py#L102
def get_fs_type_for_os_type(os_type):
return os_type if _MKFS_COMMAND.get(os_type) else 'default'
https://github.com/openstack/nova/blob/liberty-
eol/nova/virt/disk/api.py#L123
def get_file_extension_for_os_type(os_type, specified_fs=None):
mkfs_command = _MKFS_COMMAND.get(os_type, _DEFAULT_MKFS_COMMAND)
if mkfs_command:
extension = mkfs_command
else:
if not specified_fs:
specified_fs = CONF.default_ephemeral_format
if not specified_fs:
specified_fs = _DEFAULT_FS_BY_OSTYPE.get(os_type,
_DEFAULT_FILE_SYSTEM)
extension = specified_fs
return utils.get_hash_str(extension)[:7]
which are used the create the file extension.
This leads to errors like
2018-12-15 23:19:40.212+0000: 16105: error :
virStorageFileGetMetadataRecurse:3063 : Cannot access backing file
'/var/lib/nova/instances/_base/swap_2048' of storage file
'/var/lib/nova/instances/a2202625-c9a4-4855-acde-
de539d8059ef/disk.swap' (as uid:108, gid:115): No such file or
directory
during migration and you're forced to perform a offline migration to rebuild and reformat
the ephemeral storage
Steps to reproduce
==================
- Create instance with Juno using a flavor which uses ephemeral/swap disks
- Upgrade OpenStack to Newton (because migration was too buggy prior)
- Attempt migration
Expected result
===============
Migration succeeds and honors the file extension format
Actual result
=============
Migrations fail and instances go into error state
Environment
===========
Errors were encountered with newton-eol code but
looking at the code it would happen with nova code past Juno, including all current releases.
Logs & Configs
==============
N/A
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1813188/+subscriptions
Follow ups