tools/xkvm: add -nographic to speed up devopt query
On systems which include qemu graphical components the time
needed to invoke qemu for querying if an string is a device
option can take many seconds, especially over remote connections.
Adding the '-nographic' parameter prevents qemu from loading
and launching additional resources that are not needed to determine
the devopt query answer.
storage_config: interpret value, not presence, of DM_MULTIPATH_DEVICE_PATH
Curtin assumes any block device that has the DM_MULTIPATH_DEVICE_PATH
key set in udev is a block device, but that's not correct. Since
multipath-tools 0.7.7 (according to https://www.spinics.net/lists/dm-devel/msg35965.html), _every_ block
device that multipathd looks at gets that key set, but it is set to "1"
for things that are part of a multipathed device and "0" for things that
are not. So fix the checks in curtin to follow that.
block-schema: update raid schema for preserve and metadata
Curtin can now accept type: raid storage config which sets the
'preserve' boolean to 'true' which informs curtin that it does
not need to create a new raid device.
We also accept a 'metadata' version hint in the schema as curtin
passes this value along as info to users of block-discover.
DASD devices use a 'vtoc' partition table type. It is similar to DOS
but it is not in MS-DOS format. Adjust this value to 'vtoc' in docs,
block schema and the example config for vmtest.
clear-holders: increase the level for devices with holders by one
In the case where clear-holders looks at a dependent device, if the
parent is already in the registry, we want to take the max level
and then increment this by one to ensure the dependent device is
shutdown first. This resolves the case where we have an LVM over
top a bcache device and we need to remove the LVM device before
any of the bcache devices can be removed as they may share a
cacheset in which case all bcache devices must be stopped before
the cacheset can be removed.