Skip to content

Debug Logs

This guide outlines how vJailbreak handles debug log collection for VM migrations. Traditionally, enabling debug logs required editing ConfigMaps and restarting pods. With the current setup, debug logs are automatically collected and stored without any manual intervention. In kubectl logs of the pod, normal logs will be displayed as usual.

How It Works

  • For every migration executed via vJailbreak, debug logs are written to the host system under /var/log/pf9.

  • A high-level milestone log is written for the migration at:

    /var/log/pf9/<migration-name>.log

    This mirrors the same key milestone messages (e.g. “Snapshot created”, “Starting NBD server”, “VM active”) that also appear in kubectl logs for the pod — it is not a full copy of the pod’s stdout/stderr.

  • In addition, logs are now split by category into a dedicated directory for the migration:

    /var/log/pf9/<migration-name>/<category>.<timestamp>.log

    Each category captures the output of a specific part of the migration, so an issue can be traced straight to the relevant subsystem instead of scanning one milestone log:

    CategoryContents
    nbdNBD/nbdcopy disk-copy commands and their output
    virtv2vvirt-v2v conversion commands and their output
    generalEverything else run during the migration
  • These logs are centrally accessible from the vjailbreak node, simplifying the debugging process.

Log File Location

Node TypePathDescription
vjailbreak-master/var/log/pf9/<migration>.logHigh-level milestone log for the migration
vjailbreak-master/var/log/pf9/<migration>/<category>.<timestamp>.logPer-category split logs (nbd, virtv2v, general)

Example

If a migration is named vm-migrate-001, its logs will be available at:

  • /var/log/pf9/vm-migrate-001.log — milestone log
  • /var/log/pf9/vm-migrate-001/nbd.2026-08-25-10:15:00.log — disk-copy log
  • /var/log/pf9/vm-migrate-001/virtv2v.2026-08-25-10:20:00.log — conversion log

on the vjailbreak node.

Log Retention

As of v0.5.0, these logs are cleaned up automatically:

  • The sync-daemon DaemonSet checks every 5 minutes and deletes files older than the retention period. A migration’s logs are never deleted while it’s still active (last modified within 60 minutes).
  • Default retention is 24 hours, also the minimum allowed value.
  • Configure the retention period with the LOG_RETENTION_HOURS setting (Global Settings UI, or the vjailbreak-settings ConfigMap) — see Use vJailbreak Settings.

Downloading a Debug Bundle from the UI

Instead of SSHing into the vjailbreak node to collect logs manually, you can download a full debug bundle directly from the migration’s Pod logs tab.

Download button on the Pod logs tab

There is a download button as shown in the image above. This downloads all the logs, debug logs, and everything related to the migration as a tar ball — no extra kubectl or SSH access is required.