Backups zijn een essentieel onderdeel van de continuรฏteit van Tulpencraft.
Een Minecraft-server kan altijd opnieuw worden geรฏnstalleerd. De werelddata, configuraties, databasegegevens en andere unieke gegevens kunnen echter niet zomaar opnieuw worden opgebouwd.
Daarom worden backups gezien als een afzonderlijke beveiligingslaag naast de productieomgeving.
Het doel van backups is het kunnen herstellen van Tulpencraft na bijvoorbeeld:
De belangrijkste vraag bij backups is daarom niet:
โHebben we een backup?โ
maar:
โKunnen we daadwerkelijk herstellen wanneer dat nodig is?โ
Tulpencraft draait momenteel op de gedeelde Proxmox-host:
๐ฅ๏ธ hv002 โ โโโ ๐ฅ๏ธ mc-proxy001 โ โโโ Velocity โ โโโ Lobby โ โโโ Database โ โโโ overige diensten โ โโโ ๐ฎ Survival VM โ โโโ ๐ฏ Events VM โ โโโ โ toekomstige VM's
De host beschikt over NVMe-storage.
De productiegegevens van Tulpencraft bevinden zich daardoor momenteel binnen de infrastructuur van hv002.
Dit betekent ook dat de Proxmox-host zelf geen ideale enige backupbestemming is.
Een Proxmox snapshot is niet hetzelfde als een backup.
Een snapshot kan handig zijn vรณรณr een wijziging:
VM โ โโโ Snapshot vรณรณr wijziging โ โโโ Wijziging uitvoeren
Een backup is bedoeld om gegevens ook na een ernstiger incident te kunnen herstellen.
Bijvoorbeeld:
Productie โ โผ ๐พ Backup โ โผ ๐ฆ Afzonderlijke opslag
Een snapshot op dezelfde fysieke storage beschermt dus niet tegen het verlies van die storage.
Niet iedere VM hoeft noodzakelijkerwijs op exact dezelfde manier te worden geback-upt.
Voor Tulpencraft zijn vooral de volgende gegevens belangrijk.
De belangrijkste data van een Minecraft-server bestaat uit de werelddata.
Bijvoorbeeld:
/srv/minecraft/survival/world/ /srv/minecraft/survival/world_nether/ /srv/minecraft/survival/world_the_end/
Deze data is uniek en kan vaak niet opnieuw worden gegenereerd zonder voortgang van spelers te verliezen.
Ook configuratiebestanden zijn belangrijk.
Voorbeelden:
/srv/minecraft/survival/server.properties /srv/minecraft/survival/config/ /srv/minecraft/survival/plugins/
Hierin kunnen onder andere instellingen van plugins, permissions en gameplay worden opgeslagen.
Plugin-JAR's zijn meestal opnieuw te downloaden.
Toch kunnen lokale pluginconfiguraties en data essentieel zijn.
Daarom is het verstandig om niet alleen de JAR-bestanden, maar de relevante pluginmappen mee te nemen.
De huidige database draait intern op:
mc-proxy001
Databasegegevens moeten onderdeel zijn van de backupstrategie.
Daarbij moet rekening worden gehouden met het verschil tussen:
Een databasebackup moet bij voorkeur worden gemaakt op een manier die de consistentie van de database waarborgt.
Voor een snelle recovery kunnen ook belangrijke systeemconfiguraties worden bewaard.
Denk bijvoorbeeld aan:
/etc/systemd/system/ /etc/firewalld/ /etc/ssh/ /etc/selinux/
Niet ieder bestand hoeft afzonderlijk te worden geback-upt wanneer de volledige VM wordt meegenomen.
Omdat Tulpencraft op Proxmox draait, ligt het voor de hand om VM's op VM-niveau te kunnen back-uppen.
Conceptueel:
Proxmox
โ
โโโโโโโโโโผโโโโโโโโโ
โ โ โ
โผ โผ โผ
Proxy VM Survival Events
โ โ โ
โโโโโโโโโโผโโโโโโโโโ
โ
โผ
๐พ Backup
Een volledige VM-backup kan een belangrijk hulpmiddel zijn bij disaster recovery.
Proxmox VE ondersteunt hiervoor onder andere integratie met Proxmox Backup Server. Voor VM's worden daarbij block-level backups gebruikt.
Een belangrijke regel is:
De backup moet onafhankelijk zijn van de productieomgeving.
Wanneer productie en backup op dezelfde fysieke storage staan, biedt de backup weinig bescherming tegen een fysiek storageprobleem.
Daarom is de gewenste architectuur bijvoorbeeld:
๐ฅ๏ธ hv002
โ
Tulpencraft VM's
โ
โผ
๐พ Backup
โ
โผ
๐ฆ Afzonderlijke storage
In een verdere volwassen infrastructuur kan dit bijvoorbeeld een afzonderlijke backupserver of Proxmox Backup Server zijn.
Een mogelijke toekomstige oplossing is Proxmox Backup Server (PBS).
PBS is specifiek ontworpen voor het maken en beheren van backups van Proxmox-omgevingen.
Een mogelijke architectuur:
๐ฅ๏ธ Proxmox
โ
โโโโโโโโโโผโโโโโโโโโ
โ โ โ
โผ โผ โผ
Proxy Survival Events
โ โ โ
โโโโโโโโโโผโโโโโโโโโ
โ
โผ
๐๏ธ Proxmox Backup Server
โ
โผ
๐พ Backup
Hierdoor wordt de backupomgeving logisch en fysiek gescheiden van de productie-VM's.
Wanneer backups gevoelige gegevens bevatten, kan encryptie worden toegepast.
Proxmox ondersteunt client-side backup-encryptie met AES-256-GCM.
Daarbij geldt een belangrijke regel:
De encryptiesleutel mag niet uitsluitend op de productieserver worden bewaard.
Wanneer de server en de sleutel tegelijkertijd verloren gaan, kan de backup namelijk niet meer worden hersteld. Proxmox waarschuwt hier expliciet voor.
Een veilige situatie is bijvoorbeeld:
๐ฅ๏ธ Productie
โ
โโโ ๐พ Encrypted backup
โ
โโโ ๐ Backup key
โ
โผ
๐ Afzonderlijk
beveiligd opgeslagen
Wanneer encrypted backups worden gebruikt, moeten encryptiesleutels afzonderlijk worden beheerd.
De sleutel hoort niet uitsluitend:
te staan.
De sleutel moet beschikbaar zijn wanneer een restore noodzakelijk is.
Daarom moet bij de backupdocumentatie altijd worden vastgelegd:
De gewenste frequentie hangt af van het soort data.
Voorbeeld:
| Data | Gewenste frequentie |
|---|---|
| ๐ Survival wereld | Regelmatig |
| ๐๏ธ Database | Regelmatig |
| โ๏ธ Configuraties | Bij wijzigingen + periodiek |
| ๐ฏ Events | Afhankelijk van gebruik |
| ๐ฅ๏ธ Volledige VM | Periodiek |
| ๐งฉ Plugins | Bij wijzigingen + VM-backup |
De exacte frequenties worden vastgesteld zodra de definitieve backupomgeving is ingericht.
Niet iedere backup hoeft permanent te worden bewaard.
Een retentiebeleid kan bijvoorbeeld bestaan uit:
Dagelijkse backups
โ
โโโ recente dagen
โ
โผ
Wekelijkse backups
โ
โโโ langere termijn
โ
โผ
Maandelijkse backups
โ
โโโ langetermijnbewaring
Het exacte beleid wordt bepaald op basis van:
Proxmox Backup Server ondersteunt onder andere prune- en retentionbeleid voor het beheren van oude backups.
Een backup die nooit is getest, is geen gegarandeerde backup.
Daarom moet periodiek worden gecontroleerd of backups daadwerkelijk kunnen worden hersteld.
Een eenvoudige test:
๐พ Backup โ โผ ๐ฅ๏ธ Testomgeving โ โผ โถ๏ธ VM starten โ โผ ๐ Data controleren โ โผ โ Restore geslaagd
Bij een restore-test wordt onder andere gecontroleerd:
Bij een ernstig incident kan een volledige infrastructuurrestore noodzakelijk zijn.
Bijvoorbeeld wanneer:
๐ฅ๏ธ hv002 โ โผ โ verloren / onbeschikbaar โ โผ ๐๏ธ Backup beschikbaar โ โผ ๐ฅ๏ธ Nieuwe Proxmox-infrastructuur โ โผ ๐พ VM's herstellen โ โผ ๐ฎ Tulpencraft opnieuw beschikbaar
Daarom moeten backups niet alleen bestanden bevatten, maar moet ook duidelijk zijn hoe de infrastructuur opnieuw wordt opgebouwd.
De OS-installatie, server-hardening en installatieprocedures worden daarom afzonderlijk gedocumenteerd in deze wiki.
Wanneer Tulpencraft groeit, kan de backuparchitectuur verder worden uitgebreid.
Een mogelijke toekomstige omgeving:
๐ฅ๏ธ Proxmox Node
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
mc-proxy001 mc-db001 mc-lobby001
โ
โผ
Game servers
โ
โผ
๐ฎ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
๐๏ธ Backup Server
โ
โผ
๐พ Backup storage
Bij verdere groei kan eventueel een tweede fysieke locatie of externe backup worden toegevoegd.
Een backup op een andere fysieke locatie biedt bescherming tegen incidenten waarbij een volledige locatie verloren gaat.
Denk bijvoorbeeld aan:
Een mogelijke volwassen backupstrategie is daarom:
๐ข Productie
โ
โผ
๐๏ธ Lokale backup
โ
โผ
๐ Externe/off-site backup
Dit hoeft niet direct bij de start van Tulpencraft volledig te worden ingericht, maar vormt wel een mogelijk toekomstig onderdeel van de infrastructuur.
Backups zijn zelf een belangrijk beveiligingsobject.
Een backup kan immers dezelfde gevoelige gegevens bevatten als de productieomgeving.
Daarom gelden onder andere:
Een backup mag nooit worden beschouwd als een โveilige kopieโ die zonder verdere beveiliging kan worden opgeslagen.
De backupomgeving moet zelf eveneens worden gemonitord.
Belangrijke controles zijn bijvoorbeeld:
Een backup die stilletjes drie weken geleden voor het laatst succesvol heeft gedraaid, moet als probleem worden gezien.
Daarom kan Zabbix worden gebruikt om belangrijke backupstatussen te monitoren.
Zie:
| Onderdeel | Huidige situatie |
|---|---|
| ๐ฅ๏ธ Virtualisatie | Proxmox VE |
| ๐ฅ๏ธ Host | hv002 |
| โก Productiestorage | NVMe |
| ๐พ VM's | Tulpencraft VM's |
| ๐๏ธ Database | Intern op mc-proxy001 |
| ๐ Monitoring | Zabbix |
| ๐๏ธ Backupplatform | Nog verder vast te leggen |
| ๐ Off-site backup | Toekomstig |
| ๐ Backup-encryptie | Afhankelijk van definitieve backupoplossing |
| ๐งช Restore-tests | Onderdeel van de toekomstige backupprocedure |
De backuparchitectuur wordt verder uitgewerkt zodra de definitieve backupoplossing en opslaglocatie zijn vastgesteld.
Binnen Tulpencraft gelden de volgende uitgangspunten: