NVMe SSD Storage Node Configuration

Primary Storage Location:/mnt/swarm-data/

All persistent data is consolidated on the manager node (p0) with the following directory structure:

/mnt/swarm-data/
├── authentik/
│   ├── media/          # User avatars, logos
│   ├── redis/          # Authentication cache
│   └── templates/      # Custom email templates
├── bookstack/
│   └── data/           # Wiki configuration
├── homarr/
│   ├── configs/        # Dashboard configuration
│   └── icons/          # Custom icons
├── mariadb/            # MariaDB database files
├── nextcloud/
│   └── data/           # File synchronization storage
├── paperless/
│   ├── data/           # Application data
│   ├── media/          # Processed documents
│   ├── export/         # Export directory
│   └── consume/        # Incoming documents
├── portainer/          # Container management data
├── postgres/
│   └── data/           # PostgreSQL database cluster
├── traefik/
│   ├── certificates/   # SSL certificates
│   └── dynamic/        # Dynamic configuration
├── uptime-kuma/        # Monitoring database
└── vikunja/
    └── files/          # Task attachments

Cross-Node Data Accessibility

Centralized Storage Benefits:

  • Single backup location for all persistent data
  • Simplified disaster recovery procedures
  • No data synchronization complexity
  • Consistent storage performance

Service Placement Implications:

# Services requiring storage access run on manager node
deployment:
  placement:
    constraints: [node.hostname == p0]

Network Storage Access:

  • Worker nodes access data through service APIs
  • No direct filesystem access required
  • Eliminates network filesystem complexity

Backup and Recovery Considerations

Backup Strategy:

  • Direct filesystem backup of/mnt/swarm-data/
  • Database dumps for PostgreSQL and MariaDB
  • Application-specific export procedures
  • Certificate backup included in Traefik directory

Recovery Procedures:

  • Restore/mnt/swarm-data/directory structure
  • Redeploy Docker stacks
  • Services automatically reconnect to persistent data