[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
Subject: LU-17322 auster: move functions to test-framework.sh
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: af899aaeb09524ce9b8feca4bfc79590aec0c10c

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:

  • Setting up test infrastructure
  • Running tests

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
Subject: LU-17322 yalt: Yet Another Lustre Tester
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 8a1cfec1d6518382ab0cfdabc327afc2277101aa

Comment by Gerrit Updater [ 13/Dec/23 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/53271/
Subject: LU-17322 auster: move functions to test-framework.sh
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 27e1ecb19cef4f04ab56727f2382cf228b368ad2

Generated at Sat Feb 10 03:34:29 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.