New Zstash Capabilities
With v0.4.1, Zstash can now archive locally in addition to its ongoing ability to save time during the archiving and extracting processes.
What is Zstash?
Zstash is a long-term archiving solution for E3SM.
E3SM simulations generate large amounts of data that require archiving for long-term storage. Within Department of Energy (DOE) computing centers, this is accomplished with tape High Performance Storage Systems (HPSS). For optimal performance, data stored on HPSS should consist of a relatively small number of large files. Therefore, it is not practical to directly archive individual E3SM model output files to HPSS. Additionally, data on HPSS can on rare occasions become corrupted. To detect data corruption, checksums should be computed during data archival and retrieval. To address these challenges, E3SM developers created Zstash, a command line utility written in Python. The program’s design is intentionally minimalist to provide an effective long-term archiving solution without creating an overly complicated (and hard to maintain) tool.
Key features:
- Files are archived into standard tar files with a user-specified maximum size optimized for HPSS storage, typically 128 to 256 GB.
- Tar files are created locally first, then transferred to HPSS.
- Checksums (md5) of input files are computed on-the-fly during archiving. For large files, this saves a considerable amount of time compared to separate checksumming and archiving steps (Figure 1). (Checksums are computed on-the-fly again when extracting files to verify file integrity.)
- Checksums and additional metadata (size, modification time, tar file and offset) are stored in an SQLite3 index database.
- The SQLite3 database enables faster retrieval of individual files by providing the containing tar file and offset (location) within that tar file.
- Parallel extraction is supported for additional performance (Figure 2).
E3SM now requires all simulations to be archived using Zstash to ensure standardization and completeness in simulation archiving.
What’s new?
Zstash v0.4.1 has been released. Zstash can now be used on machines without HPSS (such as Anvil and Compy). By specifying --hpss=none, users can store files in a local archive instead of using an HPSS archive. The option to use a local archive is available even if the machine has HPSS. Running Zstash without HPSS decreases the runtime and allows users to transfer the tar files in the archive to long-term storage elsewhere, using a tool like Globus. The E3SM project recently decided to make LLNL’s petabyte storage system the permanent long-term archive for E3SM and has archived at LLNL all production simulation data including data from NERSC’s HPSS archive. Users must use Zstash to archive data at LLNL. Future production simulations will be permanently archived at LLNL, but can also be stored at NERSC via HPSS if it is convenient for users.
Developers have completed a significant amount of work to improve how Zstash operates under the hood, refactoring the code and test suite to ensure that Zstash functions properly. Additionally, the Zstash build now uses noarch, so developers do not have to make different releases for Linux and macOS. Users can download a single release for use on either platform. Zstash is also included in the E3SM Unified environment.
Zstash Links
- Web page: https://e3sm.org/resources/tools/data-management/zstash-hpss-archive/
- Documentation: https://e3sm-project.github.io/zstash/docs/html/index.html
- GitHub repository: https://github.com/E3SM-Project/zstash
- Installation: https://e3sm-project.github.io/zstash/docs/html/getting_started.html
- Usage/Examples: https://e3sm-project.github.io/zstash/docs/html/usage.html
Contacts
- Ryan Forsyth and Chris Golaz,
- Lawrence Livermore National Laboratory