Need a resource job to detect /dev/mapper devices
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Checkbox Provider - Resource |
Fix Released
|
High
|
Sylvain Pineau | ||
Checkbox Support Library |
Fix Released
|
High
|
Sylvain Pineau |
Bug Description
Need a new resource job and script to detect the presence of /dev/mapper devices.
This will allow for easy testing with checkbox standard storage tests against things like multi-pathed internal storage, software RAID, LVM, and anything else that creates devices within /dev/mapper.
This is critical right now for doing Power8 certification as the current crop of P8 machines are configured with on-board multipath RAID, e.g. two RAID cards using multipathing to connect to the same on-board disks to provide redundant pathways.
We are NOT, at this time, planning on testing the failover/failback features of multipathing, but we are unable to test at all via checkbox as it only looks for actual block devices.
On a system with multipathing enabled, the kernel sees two block devs for each physical device, e.g. a look at udev would show both an sda and sdg with the same UUID and physical address, thus the same physical device but presented as two separate devices.
the fix to include multipath tools in Ubuntu now properly provides a /dev/mapper/mpathX device for each multipath array, similar to how LVM devices appear in /dev/mapper as well.
A generic resource to look at /dev/mapper would be great to help test all manner of mapped devices.
Suggestion, it should provide a resource like this:
devmapper.lvm = true|false
devmapper.mpath = true|false
etc.
The corresponding bug to this is: https:/
which is for writing actual tests for these devices.
Related branches
- Sylvain Pineau (community): Approve
-
Diff: 34 lines (+8/-9)1 file modifiedbin/block_device_resource (+8/-9)
- Jeff Lane : Pending requested
- Checkbox Developers: Pending requested
-
Diff: 9337 lines (+9273/-2)3 files modifiedcheckbox_support/parsers/tests/test_udevadm.py (+23/-2)
checkbox_support/parsers/tests/udevadm_data/IBM_PSERIES_POWER8.txt (+9220/-0)
checkbox_support/parsers/udevadm.py (+30/-0)
affects: | checkbox → plainbox-provider-resource |
Changed in checkbox-support: | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Sylvain Pineau (sylvain-pineau) |
milestone: | none → 0.34.0 |
Changed in plainbox-provider-resource: | |
status: | Confirmed → In Progress |
assignee: | nobody → Sylvain Pineau (sylvain-pineau) |
Changed in checkbox-support: | |
status: | In Progress → Fix Committed |
Changed in plainbox-provider-resource: | |
status: | In Progress → Fix Committed |
milestone: | none → 0.32.0 |
Changed in checkbox-support: | |
status: | Fix Committed → Fix Released |
Changed in plainbox-provider-resource: | |
status: | Fix Committed → Fix Released |
Discussion elsewhere has indicated that this is not quite cut and dried, but to be honest, I'm not entirely sure why. Can someone explain why this is difficult to implement? What I had in mind was essentially somethign like above that simply returns a true or false, or just a true if a dev/mapper device exists.
Then jobs could do something like this:
name: storage-a-palooza removable = false
requires:
devmapper.mpath = false
blockdev.
and
name: multi-path- storage- o-rama
requires:
devmapper.mpath = true