TESSI (Tool for Extensible Scalable Storage Infrastructure) is designed to assist storage system administrators with the difficult tasks of configuring and testing distributed storage systems. Ultimately, TESSI is intended to enable the testing of multiple different systems such as BeeGFS, DAOS, and HammerSpace, it currently supports Lustre and BeeGFS.
Additionally, TESSI is intended to work with a variety of physical infrastructures but currently only supports virtual clusters installed using libvirt.
The motivation and some additional information about TESSI can be found in our documents folder. Direct link to video.
- TESSI has been tested on CentOS 8 running kernel 6.12.5-1.el8.elrepo.x86_64.
- These instructions correspond to tag v3.0.0.
- TESSI can create a cluster of VMs across a single physical host.
- For wider scaling, multiple physical hosts can be used but they need a secondary private network dedicated to TESSI.
- Ansible
- Libvirt
- Python 3.8
- qemu-img
- > git clone git@gitlab.newmexicoconsortium.org:jbent/tassi.git
- > cd tassi
- > git checkout v3.0.0
- > pip3.8 install -r requirements.txt
- To run TESSI for the first time, make sure you are in the sudoers file.
- Modify either of the configurations in the configs/ folder.
- > sudo ansible-playbook -i configs/[your_file] ./phases/0_prepare/tassi_prepare.yaml
- This will create a Makefile and instructions on using it for the rest of the phases.
Note that a demo video showing how to run TESSI can be found in our documents folder.
TESSI runs in five main phases. Phase 0 is the step documented above. The created Makefile will then allow you to proceed through the following phases:
- Creation of gold VMs. This creates and stores gold VMs with the necessary software.
- For example, the Lustre config creates one gold client image and one gold server image.
- Note that the Lustre config supports patching both Lustre itself as well as the ZFS backend.
- Creation of the virtual networking.
- Creation of the virtual cluster (i.e. cloning from the gold images).
- Testing of the virtual network connecting the nodes in the virtual cluster.
- Configuration of the virtual cluster (e.g. setting up the servers and mounting the clients).
- Testing of the virtual cluster (e.g. using MPI to run IOR).
For help with TESSI, please create a new Issue in this repo or email jbent@newmexicoconsortium.org.