packimage deleted every rootimg.* file before it packed, and wrote the new cpio or tar archive under its final name with mode 0600. Until the pack finished, a node that booted got HTTP 403 for its image. When the pack failed, the image was gone or left truncated, and no node could boot until a later pack succeeded. Build every archive in a temporary directory inside the image directory, and rename the archive over the final name only after the pack succeeds, as the openEuler path already did with a temporary file. With --tracker, ctorrent builds the metainfo in the same directory, from the new archive under its final name. The previous metainfo is removed before the archive is renamed, and the new metainfo is renamed after it, so no failure leaves a metainfo that describes another archive. The other rootimg.* files are removed after the rename. The next pack on the same host removes a temporary directory that an interrupted pack left. Image locks are per host, so temporary directories of other hosts that share the directory stay. A pack now also fails when find cannot list the image or cpio cannot read a file, as on the openEuler path. Before, only the compressor status counted, and such a pack published an incomplete archive. Every failure after packimage switches a StateLite tree to stateless files now switches it back. That includes a failure to create the temporary directory or the squashfs staging directory, which File::Temp reports with die. packimage records each file that it moves and checks each move. When a file cannot be moved back, the original stays in .statebackup, packimage reports it, and the next pack refuses to run until the files are restored. The new archive replaces the previous one only after the StateLite files are back. Before, a failed pack left the tree switched, and a retry overwrote the saved StateLite files. The image lock is per host, and service nodes mount a shared image directory without NFS locks. So a pack also holds the directory .packimage-publish while it replaces the archive and removes the other formats. mkdir is atomic for every host, also on NFS without locks. When the lock is older than 60 seconds, or stays held for 60 seconds, the pack fails, names the holder, and keeps the previous archive. packimage does not take the lock over, because its holder can still be running. A ctorrent failure now fails the pack, and the previous archive and metainfo stay. Before, a failed ctorrent left a partial metainfo, and nodeset pointed nodes at it.
xCAT
xCAT is a toolkit for deployment and administration of clusters of all sizes.
The xCAT sunset was only a quick eclipse
Dear xCAT Community,
The xCAT sunset has changed course. VersatusHPC has been invited to join the xCAT Consortium, and future development will move toward direct upstream contributions coordinated with the Consortium and its existing member companies.
That matters most for Enterprise Linux 10 (EL10). EL10 support is coming to xCAT, restoring a future operating-system path for sites that still rely on xCAT. This is an important change from the previous sunset guidance, where the lack of an EL10 path was one of the strongest reasons to move away from xCAT.
The xCAT Consortium continues to recommend Confluent as the long-term successor to xCAT, and that remains the Consortium position. Users planning new cluster-management deployments should evaluate Confluent and its xCAT comparison documentation.
At the same time, xCAT is no longer sunsetted. The Consortium and participating companies will continue updating xCAT while there is community and user demand for it.
In summary:
- xCAT development is continuing upstream through the Consortium and participating companies.
- Enterprise Linux 10 support is coming.
- Confluent remains the Consortium-recommended successor and migration path.
- xCAT updates will continue while there is community and user demand.
We want to thank the xCAT Consortium and community for keeping this project moving. The sun went behind the moon for a moment, but xCAT is still here.
For more information on Confluent and how to get started, please visit the Confluent: Project Page, Documentation or Confluent vs xCAT comparison.
With thanks,
The xCAT Consortium
Documentation
xCAT Documentation is hosted on Read The Docs: https://xcat-docs.readthedocs.io
Status
| xCAT Version | Build Status |
|---|---|
| Latest (master branch) | |
| Stable (latest release) |
Looking for older versions?
Open Source License
xCAT is made available under the EPL license: https://opensource.org/licenses/eclipse-1.0.php
Developers
Want to help? Check out the developers guide!