minimega Integration¶
phēnix uses minimega as its underlying network and virtual machine emulation backend. The phenix mm command provides direct access to send commands to minimega or attach to minimega's interactive console from the phēnix host. For full details on minimega's command set and capabilities, consult the minimega Documentation and the minimega API Reference.
Command Line Usage¶
Send commands, or attach, to minimega
Usage:
phenix mm <minimega args>... [flags]
Flags:
--attach Attach to minimega console instead of sending commands
-h, --help help for mm
--namespace string Default minimega namespace to use
Note
For a list of global flags supported across all phenix subcommands, see Global Flags.
Sending Commands to minimega¶
You can execute non-interactive minimega commands directly through phenix mm.
# View minimega cluster host status
phenix mm host
# Display minimega VM information across all namespaces
phenix mm vm info
# List active VLANs in minimega
phenix mm vlan
Namespace Scoping¶
When working with experiment-specific VMs or VLANs, use the --namespace flag to target a specific minimega namespace:
# Execute minimega commands within the 'my-experiment' namespace
phenix mm --namespace my-experiment vm info
# Check network connections in a specific experiment namespace
phenix mm --namespace my-experiment vm net
Attaching to the minimega Console¶
The --attach flag opens an interactive minimega console session, allowing real-time interaction with the minimega shell.
# Attach to the global minimega console
phenix mm --attach
# Attach to the minimega console scoped to a specific experiment namespace
phenix mm --attach --namespace my-experiment
To exit the attached console session, type exit or press Ctrl+D.
minimega Command and Control (miniccc)¶
phēnix and its applications rely on minimega's command and control infrastructure (miniccc) running inside experiment VMs to execute commands, transfer files, and monitor VM health.
- VM Execution: phēnix apps run scripts and commands on VMs via
cc exec. - File Operations: Files are sent to VMs using
cc send. - State of Health: Health metrics are collected via C2 probes (e.g.,
ip addr,systemctl,pgrep).
Daemon Configuration and Socket Access¶
By default, phēnix connects to minimega via a UNIX domain socket.
| Setting | Default | Description |
|---|---|---|
--base-dir.minimega |
/tmp/minimega |
Base directory for minimega runtime state. |
MM_SOCKET_PATH |
/tmp/minimega/minimega |
Path to the minimega command socket. |
MM_FILEPATH |
/phenix/images |
Base directory for minimega disk images. |
--deploy-mode |
— | Deploy mode for minimega VMs (all, no-headnode, only-headnode). |
Common Workflows¶
1. Debugging Experiment VMs¶
When troubleshooting virtual machine or network deployment issues, use phenix mm to inspect minimega's internal state:
# Check detailed VM status and tap interface mappings
phenix mm --namespace my-experiment vm info
# Inspect minimega log entries
phenix mm log
2. Monitoring Cluster Hosts¶
In multi-node minimega deployments, use phenix mm to verify cluster connectivity and host status: