Output

There are different ways to retrieve experiment results from Celestial. You can also use your own cloud storage or logging database if your host has Internet access.

stderr and stdout

If your machines have terminal devices available (not using the 8250.nr_uarts=0 boot parameter), your software can write to stdout and stderr. The streams of those devices will be forwarded to text files on your host. You can see the outputs of your machines in the /celestial/out folder. For each machine, there is a .out and a .err file, that capture stdout and stderr, respectively.

Note that this is not recommended for performance-critical applications as writing a lot of data to your host disk in this way can be slow.

Retrieving Files from microVM Disks

If your software manipulates files on your microVM file system, you also have the option to retrieve those files later. Celestial creates an overlay file system for each microVM as ce[SHELL]-[ID].ext4 for satellites or ce[NAME].ext4 for ground stations. Note that if you use multiple hosts, the file system will only be created on the host that hosts that particular machine.

You can mount this file system to copy files (either directly on the host or by downloading a copy of the file system). For example, to copy a file named output.csv from the file system of satellite 840 in shell 1, do:

# create a temporary mounting point
sudo mkdir -p ./tmp-dir

# mount the filesystem
sudo mount /celestial/ce1-840.ext4 ./tmp-dir -o loop

# copy the relevant file to your directory
sudo cp ./tmp-dir/output.csv sat1-840-output.csv

# unmount the filesystem
sudo umount ./tmp-dir

# remove the mounting point
sudo rmdir ./tmp-dir

We recommend only mounting the file system after its microVM has been shut down to avert any file system corruption. Also keep in mind that you must unmount the file system if you want to run Celestial again as Celestial will try to overwrite this file system with a fresh copy.