Shell usage notes¶
Introduction¶
WalT users can use the following kinds of shell sessions:
walt node shell
walt image shell
Their purpose is very different.
walt node shell
: access to the real node¶
walt node shell
just wraps a ssh session to the node.
Be warned that a WalT node is a very volatile environment. Each time a node reboots, it loses all modifications made on files (created, suppressed, modified), and restarts from the original files of the image it boots. This ensures that a node booting a given image will always act the same. (See walt help show node-bootup for a more technical explanation on this aspect.)
However, for convenience, a directory /persist
is available on each
node. Data stored there do remain available accross reboots. You can use
it to store large experiment results files for instance. /persist
is
a read-write NFS-mount: data is actually stored on the server.
walt image shell
: modification of operating system¶
If you want to modify files in a permanent way, you must modify the
image the node boots. walt image shell
is the most common way to do
this. It provides a shell running in a virtual environment (docker
container) where you can make the changes, such as installing packages
for example.
Since the image is expected to be booted by a node, and the CPU architecture of the node may be different from the one of the server (e.g. ARM-based raspberry pi versus amd64-based server), the binaries found inside an image may not be compatible with the server CPU. In this case, any binary you run in this shell will involve CPU emulation, which leads to a slower behavior. Avoid heavy processing, such as compiling of a large source code base. In this case, cross-compiling on another machine and importing the build artefacts in the virtual environment (through the emulated network) should be the prefered option. Also, keep in mind that in the virtual environment (docker container) no services are running (no init process, etc). Actually, the only process running in this virtual environment when you enter it is the shell process itself.
Summary table¶
The following table summarizes usage of these 2 commands and their limits.
walt node shell |
walt image shell |
|
---|---|---|
persistence |
until the node reboots |
yes |
backend |
the real node |
virtual environment, possible CPU emulation |
target workflow |
testing/debugging |
apply changes |