Fix disk detection after LVM striping and update database workload profiles#674
Merged
ericavella merged 10 commits intomainfrom Apr 24, 2026
Merged
Fix disk detection after LVM striping and update database workload profiles#674ericavella merged 10 commits intomainfrom
ericavella merged 10 commits intomainfrom
Conversation
…ofiles - Add /proc/mounts fallback for raid0 path discovery in MySqlServerConfiguration and PostgreSQLServerConfiguration. After StripeDisks creates an LVM volume, lshw no longer reports the logical volume, causing 'Expected disks not found'. The fallback reads /proc/mounts to find the raid0 mount point. - Search all disks (not just filtered) for raid0 access paths in both MySQL and PostgreSQL server configuration components. - Remove unsupported CreateTables and DistributeDatabase dependency steps from PostgreSQL Sysbench TPCC and OLTP profiles. - Tune HammerDB TPCC WarehouseCount to LogicalCoreCount * 10 and TPCH ScaleFactor to 1 for faster validation runs. - Fix HammerDBExecutor async method missing await warning. - Add copilot-instructions.md for repository development guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lution Add two new DiskFilter types to DiskFilters: - Logical: matches LVM device mapper disks (/dev/dm-*, /dev/mapper/*) - AccessPath: matches disks by volume access path substring Add /dev/dm and /dev/mapper to valid Linux device path prefixes so LVM logical volumes are no longer silently dropped by the prefix filter. Simplify MySqlServerConfiguration and PostgreSQLServerConfiguration: - Default DiskFilter changed to 'Logical' (was 'osdisk:false&sizegreaterthan:256g') - Remove /proc/mounts parsing and multi-tier raid0 search logic - Clean fallback: Logical filter -> OsDisk:false&BiggestSize physical disk Update MySQL profiles to use DiskFilter: Logical on MySQLServerConfiguration steps. PostgreSQL profiles use the new default. StripeDisks steps unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lshw does not report LVM logical volumes (/dev/dm-*, /dev/mapper/*), so the Logical disk filter returns empty after StripeDisks creates an LVM volume. Added FindLvmMountPathAsync to both MySqlServerConfiguration and PostgreSQLServerConfiguration that reads /proc/mounts to find any mount backed by an LVM device, returning the mount path (e.g. mnt_raid0). Fallback chain is now: 1. Logical filter (works if lshw ever reports LVM devices) 2. /proc/mounts LVM device check (handles real-world lshw limitation) 3. Physical disk BiggestSize fallback (unmounted single disk scenario) Verified on Azure VMs: - E8ds_v6 (1 disk, single-disk LVM) -> mnt_raid0 found via /proc/mounts - E16ds_v6 (2 disks, striped LVM) -> mnt_raid0 found via /proc/mounts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: erica vellanoweth <37354999+ericavella@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
nchapagain001
approved these changes
Apr 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes raid0 disk detection failures in MySQL and PostgreSQL server configuration components, and updates database workload profiles for improved validation.
Key Changes
Bug Fix: Disk detection after LVM striping
After
StripeDiskscreates an LVM striped volume from NVMe disks,lshwno longer reports the logical volume device. This causedMySqlServerConfigurationandPostgreSQLServerConfigurationto fail with Expected disks not found.Fix: Added a
/proc/mountsfallback that reads the mount table to find the raid0 mount point when lshw-based disk discovery fails. Also changed both components to search all disks (not just filtered disks) for raid0 access paths.Profile Updates
CreateTablesandDistributeDatabasedependency stepsWarehouseCountfrom memory-based to{LogicalCoreCount} * 10ScaleFactorfrom 10 to 1Other
HammerDBExecutor.csasync method without await warning.github/copilot-instructions.mdValidation
All workloads validated on Azure VMs in both single-node and client/server configurations: