[LU-17322] Alternative testing wrappers/tools Created: 28/Nov/23 Updated: 13/Dec/23 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Tim Day | Assignee: | Tim Day |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Severity: | 3 |
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
Scripts like auster and llmount.sh, while useful, are limited in their capabilities. It would be useful a tool which could automatically setup test VMs (via QEMU or otherwise) with various kernel and Lustre versions (or native Linux Lustre client). Other possible features could include environment validation, automatically installing Lustre on remote nodes, better LUTF integration, better xfstest integration, run sanity suites in parallel. This ticket tracks various patches contributing towards such a tool. |
| Comments |
| Comment by Gerrit Updater [ 28/Nov/23 ] |
|
"Timothy Day <timday@amazon.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/53271 |
| Comment by Patrick Farrell [ 28/Nov/23 ] |
|
Tim, This sounds like a great idea, but my past experience with a similar effort (never made public) was it ended up with a very large degree of environment and tool dependency/specificity, too much so to be very useful in to most people and hard to maintain except for one environment. So this ends up being something each group testing Lustre tends to roll for themselves. Any thoughts on how you'd avoid some of those pitfalls here? (There may be benefits to working toward this even if the whole thing isn't useful outside of a specific environment.) |
| Comment by Tim Day [ 28/Nov/23 ] |
|
I think there's two big goals that testing tools aim to achieve:
I think the test running code for Lustre is fine. The wrapper I'm writing mimics the auster pretty closely. I think that can largely stay the same (although it could be made easier to use).
The current tooling doesn't really help with setting up a test environment. Running everything on a single node isn't always helpful for testing. My main goal is to have a way to provision nodes automatically - and to deploy software to those nodes automatically. I'm going to write it in such a way that people could write their own node deployment plugins.
I'm going to start with QEMU. The only additional dependency for that should be QEMU itself, so I think that should work on all of the major distros. I'll have to test it out, though.
One major goal of this work is to make it easier to test the upstream client. I want to be able to run a sanity test against the upstream client in QEMU by running one command. Other projects have done something similar:
|
| Comment by Gerrit Updater [ 12/Dec/23 ] |
|
"Timothy Day <timday@amazon.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/53415 |
| Comment by Gerrit Updater [ 13/Dec/23 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/53271/ |