gotochanger virtual tape library simulator — storage slots, drives, and robot arm diagram

A fake SCSI tape autochanger (virtual tape library) simulator for testing backup software against something that behaves like a real tape library — storage slots, I/O ("mail slot") elements, multiple drives, volumes, robot moves, and SNMP traps — without any real tape hardware.

What it does

Drop-in Bareos replacement

A much more capable replacement for Bareos's disk-changer.in, staying compatible with existing Device Type = File configurations.

Full library topology

Storage slots, I/O slots, magazines, mailboxes, drives, volumes, cleaning tapes, logical libraries, and tape sets — modeled after real SCSI Medium Changer element types.

REST API + web UI

A management web UI with RBAC and API tokens, a setup wizard, and a full OpenAPI/Swagger spec with interactive docs.

SNMP + Prometheus

SNMPv2c traps with a structured event-code taxonomy, plus a Prometheus exporter with a ready-to-import Grafana dashboard.

Offsite vault + backups

Manual or scheduled offsite rotation for volumes, plus on-demand and scheduled configuration backup/restore.

Optional kernel mode

An optional backend exposes the same library as real SCSI devices (/dev/sg*, /dev/nst*) via TCMU/LIO, for tools that need an actual SCSI changer.

Realistic latency simulation

Configurable latency profiles model real robot move and drive timing, with drive bandwidth throttling to native tape speeds in kernel mode.

Fault injection

Fault individual drives or the shared robotic arm on demand, to exercise backup software's error-handling paths without breaking real hardware.

Get it

# Debian 13 (apt)
curl -fsSL https://apt.sw-servers.net/apt-sw-servers.net.gpg.asc \
  | sudo gpg --dearmor \
  | sudo tee /usr/share/keyrings/apt-sw-servers-archive-keyring.gpg > /dev/null

echo "deb [signed-by=/usr/share/keyrings/apt-sw-servers-archive-keyring.gpg] https://apt.sw-servers.net/gotochanger main" | sudo tee /etc/apt/sources.list.d/gotochanger.list
sudo apt-get update

sudo apt-get install gotochanger

# Docker
docker pull swenske/gotochanger:latest

See the README for full installation and quick-start instructions.