[lustre-devel] LTVM: An invitation
Patrick Farrell
pfarrell at thelustrecollective.com
Fri Sep 4 17:47:23 UTC 2026
Hi all,
I'm here to tell you about a tool to make it easy for you to do Lustre VMs
for development and testing on your local machine, and make it easy to
explore a running Lustre system.
LTVM (Lustre test VMs) is a tool for building and running Lustre VMs created
by myself and Marc Vef (of DDN). It lets you easily run Lustre VMs on any
Mac or Linux machine, and is perfect for use with AI agents.
https://github.com/lustre-tools/lustre-test-vms
LTVM makes it trivial to create ephemeral Lustre VMs, and is a great fit for
agentic engineering - you or your AI agent can create and deploy VMs in
seconds. It's perfect for development workflows or if you want to explore
Lustre without setup hassle.
LTVM is used every day by engineers at DDN and TLC in their dev workflows.
With a fast connection, it takes about 5 minutes to go from zero to "Lustre
running in a VM". After that, it takes a few seconds to create new VMs.
Here's an example of installing ltvm, fetching a pre-built build chain (you
can also build from scratch), and creating a VM with Lustre running:
git clone https://github.com/lustre-tools/lustre-test-vms.git
cd lustre-test-vms
# One-time host setup: QEMU with microvm support, network bridge,
# dnsmasq, SSH keys, and 'ltvm' on your PATH.
sudo ./ltvm install
# Download the pre-built chain: build container, kernel, VM image,
# and Lustre (~1.3 GB).
ltvm target fetch rocky9
# Create and boot the VM. Boot takes about two seconds.
ltvm create co1-single
# Example options: --vcpus 2 --mem 4096 \
--mdt-disks 1 --ost-disks 3
# Format and mount Lustre inside the VM (llmount.sh).
ltvm llmount co1-single
That VM is a single node client + server combination, running all of Lustre:
$ ssh co1-single 'mount -t lustre,lustre_tgt; lfs df -h'
/dev/mapper/mds1_flakey on /mnt/lustre-mds1 type lustre_tgt (rw,svname=lustre-MDT0000,mgs,osd=osd-ldiskfs,user_xattr,errors=remount-ro)
/dev/mapper/ost1_flakey on /mnt/lustre-ost1 type lustre_tgt (rw,svname=lustre-OST0000,mgsnode=192.168.100.148 at tcp,osd=osd-ldiskfs,errors=remount-ro)
/dev/mapper/ost2_flakey on /mnt/lustre-ost2 type lustre_tgt (rw,svname=lustre-OST0001,mgsnode=192.168.100.148 at tcp,osd=osd-ldiskfs,errors=remount-ro)
192.168.100.148 at tcp:/lustre on /mnt/lustre type lustre (rw,flock,checksum,encrypt,lazystatfs,lruresize,nolock,statfs_project,nosync_on_close,nouser_fid2path,user_xattr,verbose)
UUID bytes Used Available Use% Mounted on
lustre-MDT0000_UUID 275.1M 1.6M 239.9M 1% /mnt/lustre[MDT:0]
lustre-OST0000_UUID 401.5M 1.4M 365.1M 1% /mnt/lustre[OST:0]
lustre-OST0001_UUID 401.5M 1.4M 365.1M 1% /mnt/lustre[OST:1]
filesystem_summary: 802.9M 2.8M 730.2M 1% /mnt/lustre
When you're done with it, "ltvm destroy co1-single" - the VMs are disposable.
If you want to swap the Lustre version to your own:
# Build your tree against the VM's kernel, inside the build container.
ltvm build lustre rocky9 --lustre-tree ~/lustre-release
# Install it into the running VM and remount.
ltvm deploy-lustre co1-single --lustre-tree ~/lustre-release --mount
Builds are incremental and deploys are idempotent, so the edit/build/test
loop stays short.
LTVM can run on a Mac or a Linux VM or on Windows in WSL2. Multiple ltvm VMs
can talk to each other, so you can spread a filesystem across separate
MGS/MDS/OSS/client nodes when you need to.
Everything is containerized, so you can build + test any supported OS from
any platform. LTVM comes with an AGENTS.md and CLAUDE.md with instructions
for your agent to use the tool, plus a SUGGESTED-AGENTS.md of ready-made
snippets to drop into your own Lustre workspace.
This is our invitation to anyone wanting to explore Lustre:
Come on in, the water's fine.
Check out Marc's LUG presentation for more info:
https://wiki.lustre.org/images/6/60/LUG2026-LTVM_Lustre_Test_VM_Project-Farrell.pdf
LTVM is open source (BSD licensed) and is available for any use.
If you have questions, send a note here or create a GitHub issue:
https://github.com/lustre-tools/lustre-test-vms/issues
Note: Please do not use ltvm to produce production images; it is strictly a
dev tool and images produced are deliberately configured without normal
security practices.
Patrick Farrell
Principal Engineer, The Lustre Collective
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-devel_lists.lustre.org/attachments/20260904/770da07c/attachment-0001.html>
More information about the lustre-devel
mailing list