Toon paginaOude revisiesReferentiesTerug naar boven Deze pagina is alleen-lezen. Je kan de broncode bekijken maar niet veranderen. Neem contact op met de beheerder als je denkt dat dit niet klopt. # ๐พ Storage Storage vormt een belangrijk onderdeel van de Tulpencraft-infrastructuur. Minecraft is sterk afhankelijk van snelle en betrouwbare opslag. Niet alleen de serverbestanden zelf staan op disk, maar ook werelddata, chunks, plugins, configuraties, logs en eventuele backups. Binnen Tulpencraft wordt onderscheid gemaakt tussen: * ๐ฟ fysieke NVMe-opslag op de Proxmox-host; * ๐ฅ๏ธ virtuele disks van de Tulpencraft-VM's; * ๐ filesystems binnen de VM's; * ๐ Minecraft-werelddata; * ๐ logs en configuraties; * ๐พ backups. --- ## ๐๏ธ Huidige opslagarchitectuur Tulpencraft draait momenteel als virtuele infrastructuur op de Proxmox-node **`hv002`**. De Proxmox-host beschikt over **NVMe-storage**, waardoor de virtuele machines van Tulpencraft gebruikmaken van snelle onderliggende opslag. De huidige architectuur is: ```text ๐ฅ๏ธ Fysieke Proxmox-host โโโ hv002 โ โโโ โก NVMe storage โ โโโ ๐ฅ๏ธ mc-proxy001 โ โโโ Velocity โ โโโ Lobby โ โโโ Database โ โโโ overige netwerkdiensten โ โโโ ๐ฎ Survival VM โ โโโ ๐ฏ Events VM โ โโโ โ toekomstige Tulpencraft VM's ``` De fysieke storage wordt door Proxmox aan de VM's beschikbaar gesteld als virtuele opslag. > **Tulpencraft schrijft niet rechtstreeks naar de fysieke NVMe-disks van `hv002`.** De Minecraft-servers zien hun opslag als virtuele disks die door Proxmox aan de betreffende VM worden aangeboden. --- ## โก NVMe-storage De huidige Proxmox-host **`hv002`** maakt gebruik van **NVMe-opslag**. Dit is gunstig voor Tulpencraft omdat Minecraft regelmatig veel kleine lees- en schrijfacties uitvoert. Vooral de volgende activiteiten kunnen veel storage-I/O veroorzaken: * chunkgeneratie; * chunkloading; * wereldsaves; * wereldgeneratie; * grote WorldEdit-operaties; * backups; * databaseactiviteiten; * pluginactiviteiten. NVMe biedt hierbij doorgaans aanzienlijk lagere latency en hogere I/O-prestaties dan traditionele HDD-opslag. De exacte fysieke configuratie van de NVMe-opslag, zoals: * aantal NVMe-drives; * merk en model; * RAID-configuratie; * controller; * filesystem; * Proxmox-storagebackend; wordt niet door Tulpencraft beheerd en wordt daarom niet als onderdeel van de Tulpencraft-configuratie vastgelegd. --- ## ๐ฅ๏ธ Virtuele disks Iedere Tulpencraft-VM krijgt รฉรฉn of meerdere virtuele disks. Binnen de VM ziet Linux deze bijvoorbeeld als: ```text /dev/sda /dev/sdb ``` De exacte device-namen zijn afhankelijk van de virtuele hardwareconfiguratie. De opslag volgt vervolgens de Linux-opbouw: ```text Virtuele disk โ โผ Partitie โ โผ Filesystem โ โผ Mountpoint โ โผ Applicatie ``` --- ## ๐ Minecraft-data De Minecraft-data wordt binnen Tulpencraft onder: ```text /srv/minecraft/ ``` geplaatst. Een server kan bijvoorbeeld bestaan uit: ```text /srv/minecraft/survival/ โโโ world/ โโโ world_nether/ โโโ world_the_end/ โโโ plugins/ โโโ config/ โโโ logs/ ``` Hierdoor blijft de applicatiedata duidelijk gescheiden van de overige systeemdirectories. --- ## ๐ Werelddata Minecraft-werelden bestaan uit een groot aantal chunkbestanden. Bij een Survival-server kan de opslag daardoor blijven groeien naarmate spelers nieuwe gebieden ontdekken. De omvang wordt onder andere bepaald door: * aantal spelers; * hoeveelheid verkende chunks; * wereldgrenzen; * Nether-gebruik; * The End; * gegenereerde structuren; * plugins; * mapgeneratie; * gebruiksduur. Daarom wordt niet alleen gekeken naar de huidige hoeveelheid vrije ruimte, maar ook naar de **groeisnelheid van de werelddata**. --- ## โก Storage-performance Voor Minecraft is niet alleen de totale opslagcapaciteit belangrijk. Ook de prestaties van de opslag zijn relevant. Belangrijke factoren zijn: * latency; * IOPS; * throughput; * queue depth; * filesystem performance; * virtualisatie-overhead; * storage contention. De NVMe-opslag van `hv002` biedt hiervoor een sterke basis. Dit is met name relevant wanneer meerdere VM's tegelijkertijd actief zijn. Niet alleen Tulpencraft maakt immers gebruik van de fysieke host. --- ## ๐ Storage monitoring Storage wordt periodiek gecontroleerd. ### Schijfruimte ```bash df -h ``` ### Inodes ```bash df -ih ``` ### Block devices ```bash lsblk ``` ### Filesystems ```bash lsblk -f ``` ### Grootste directories ```bash sudo du -xh /srv/minecraft --max-depth=1 | sort -h ``` Voor een specifieke server: ```bash sudo du -xh /srv/minecraft/survival --max-depth=1 | sort -h ``` --- ## ๐จ Vrije ruimte Een filesystem mag niet onbeperkt vollopen. Wanneer een filesystem volledig volloopt kunnen onder andere: * Minecraft niet meer schrijven; * logs niet meer worden bijgewerkt; * werelddata niet meer worden opgeslagen; * databases problemen krijgen; * services crashen; * updates mislukken. Ook op Proxmox-niveau kan een volledig gevulde storage problemen veroorzaken voor meerdere VM's. Storagecapaciteit wordt daarom beschouwd als een operationele resource die actief bewaakt moet worden. --- ## ๐งน Storage opruimen Bij ruimteproblemen wordt eerst vastgesteld waar de ruimte naartoe gaat. ```bash df -h ``` Daarna bijvoorbeeld: ```bash sudo du -xh / --max-depth=1 2>/dev/null | sort -h ``` En specifiek voor Minecraft: ```bash sudo du -xh /srv/minecraft --max-depth=2 | sort -h ``` Mogelijke oorzaken zijn: * werelddata; * oude backups; * oude logs; * crash reports; * tijdelijke bestanden; * oude plugins; * ongebruikte serverbestanden. > **Minecraft-wereldbestanden worden nooit zomaar verwijderd.** Eerst wordt vastgesteld wat de bestanden zijn en of ze daadwerkelijk niet meer nodig zijn. --- ## ๐ Logs Minecraft produceert logbestanden die eveneens opslagruimte gebruiken. Bijvoorbeeld: ```text /srv/minecraft/<server>/logs/ ``` Een logdirectory kan worden gecontroleerd met: ```bash du -sh /srv/minecraft/*/logs ``` Naast Minecraft-logs bestaan er onder andere: * systemd journal logs; * audit logs; * SELinux logs; * pluginlogs; * applicatielogs. Logging maakt daarom onderdeel uit van de totale storageplanning. --- ## ๐๏ธ Database De huidige Tulpencraft-database draait intern op: ```text mc-proxy001 ``` De database gebruikt daarmee eveneens storage van deze VM. In de huidige ontwikkelfase is dit bewust eenvoudig gehouden. Wanneer Tulpencraft groeit, kan de database worden afgesplitst naar een eigen VM. Bijvoorbeeld: ```text mc-proxy001 โโโ Velocity โโโ Lobby + mc-db001 โโโ MySQL / MariaDB ``` Hierdoor kunnen databasebelasting, opslag en backups onafhankelijker worden beheerd. --- ## ๐พ Backups Backups mogen bij voorkeur niet uitsluitend op dezelfde storage blijven staan als de VM die wordt geback-upt. Bij een probleem met de onderliggende storage kunnen anders zowel productiegegevens als backups worden geraakt. Gewenste situatie: ```text ๐ฅ๏ธ Tulpencraft VM โ โผ ๐พ Backup โ โผ ๐ฆ Aparte backup-opslag ``` De concrete backupstrategie wordt beschreven op: * [[technische-infrastructuur:backups|Backups]] --- ## ๐ง Snapshots Snapshots kunnen nuttig zijn vรณรณr grote wijzigingen aan VM's. Bijvoorbeeld vรณรณr: * systeemwijzigingen; * migraties; * configuratiewijzigingen; * upgrades. Een snapshot is echter **geen vervanging voor een backup**. Snapshots gebruiken bovendien extra storagecapaciteit en moeten daarom niet onbeperkt worden bewaard. --- ## ๐๏ธ Toekomstige storagearchitectuur Wanneer Tulpencraft verder groeit, kan de infrastructuur verder worden opgesplitst. Een mogelijke toekomstige architectuur: ```text ๐ฅ๏ธ Proxmox Node โ โก NVMe storage โ โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ โ โ โ โผ โผ โผ mc-proxy001 mc-db001 mc-lobby001 โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ ๐ฅ๏ธ Game server node โ โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโ โ โ โ โผ โผ โผ Survival Events SkyBlock ``` Afhankelijk van de benodigde resources kan dit worden uitgevoerd op: * รฉรฉn krachtige Proxmox-node; * meerdere Proxmox-nodes; * een afzonderlijke game-servernode; * of een combinatie van fysieke en virtuele servers. --- ## ๐ Opschalen Wanneer de beschikbare storage onvoldoende wordt, zijn verschillende opties mogelijk: ### VM vergroten De virtuele disk kan worden uitgebreid wanneer de onderliggende Proxmox-storage hiervoor voldoende capaciteit heeft. ### Extra virtuele disk Een extra virtuele disk kan worden gebruikt voor bijvoorbeeld: ```text /srv/minecraft/ ``` Dit kan nuttig zijn om Minecraft-data los te koppelen van het operating system. ### Extra Proxmox-storage Wanneer de fysieke host onvoldoende capaciteit heeft, kan extra storage worden toegevoegd of kan worden gemigreerd naar een andere storageomgeving. ### Extra fysieke infrastructuur Bij verdere groei kan Tulpencraft uiteindelijk gebruikmaken van eigen fysieke infrastructuur. --- ## ๐งฑ Storage en beschikbaarheid Storage is onderdeel van de totale beschikbaarheid van Tulpencraft. Een storageprobleem kan zich bijvoorbeeld ontwikkelen als: ```text ๐พ Storageprobleem โ โผ ๐ I/O-fouten โ โผ ๐ฅ๏ธ VM-problemen โ โผ ๐ฎ Minecraft-problemen ``` Daarom wordt storage niet alleen als capaciteitsprobleem gezien, maar ook als onderdeel van **beschikbaarheid en continuรฏteit**. --- ## ๐ Security Storage kan gevoelige gegevens bevatten. Denk bijvoorbeeld aan: * databasebestanden; * configuraties; * logs; * spelersgegevens; * pluginconfiguraties; * backups. Toegang tot storage wordt daarom beperkt tot bevoegde systeemgebruikers. Linux-bestandsrechten, SELinux en VM-isolatie vormen hierbij belangrijke beveiligingslagen. Zie ook: * [[technische-infrastructuur:server-hardening|Server hardening]] * [[technische-infrastructuur:selinux|SELinux]] --- ## ๐ Huidige situatie | Onderdeel | Huidige situatie | | | ----------------- | ------------------------------------------ | ---------------------- | | ๐ฅ๏ธ Virtualisatie | Proxmox VE | | | ๐ฅ๏ธ Host | `hv002` | | | ๐ข Hosting | Override.nl / FastWebHosting.nl | | | โก Fysieke storage | **NVMe** | | | ๐ฟ Storagegebruik | Via Proxmox | | | ๐ฅ๏ธ Minecraft | Virtuele machines | | | ๐ Minecraft-data | `/srv/minecraft/` | | | ๐๏ธ Database | Momenteel intern op `mc-proxy001` | | | ๐พ Backups | Zie [[technische-infrastructuur:backups | Backups]] | | ๐ Monitoring | Zie [[technische-infrastructuur:monitoring | Monitoring & logging]] | De fysieke NVMe-configuratie van `hv002` wordt verder niet gedetailleerd gedocumenteerd, omdat deze onderdeel is van de hostingomgeving van Override.nl / FastWebHosting.nl. --- ## ๐ท Uitgangspunten Binnen Tulpencraft gelden voor storage de volgende uitgangspunten: 1. ๐พ Storage moet voldoende capaciteit hebben voor groei. 2. โก Storage-performance is belangrijk voor Minecraft. 3. ๐จ Filesystems worden niet bewust volledig gevuld. 4. ๐ Minecraft-werelddata wordt niet zonder controle verwijderd. 5. ๐พ Backups worden bij voorkeur op afzonderlijke storage bewaard. 6. ๐ง Snapshots zijn geen backups. 7. ๐ฅ๏ธ VM-storage wordt beheerd vanuit Proxmox. 8. ๐ Storagegebruik wordt gemonitord. 9. ๐ Storage wordt volgens least-privilege beveiligd. 10. ๐ Bij groei wordt tijdig opgeschaald. --- ## ๐ Gerelateerde documentatie * [[technische-infrastructuur:overzicht|Technische infrastructuur]] * [[technische-infrastructuur:os-installatie|OS-installatie]] * [[technische-infrastructuur:rocky-linux-10|Rocky Linux 10]] * [[technische-infrastructuur:server-hardening|Server hardening]] * [[technische-infrastructuur:firewall|Firewall]] * [[technische-infrastructuur:selinux|SELinux]] * [[technische-infrastructuur:systemd|systemd]] * [[technische-infrastructuur:monitoring|Monitoring & logging]] * [[technische-infrastructuur:backups|Backups]] * [[serverinfrastructuur:overzicht|Serverinfrastructuur]] > **Opmerking:** de exacte fysieke NVMe-configuratie van `hv002` valt onder het beheer van de hostingomgeving en kan in de toekomst wijzigen. technische-infrastructuur/storage.txt Laatst gewijzigd: 2026/08/23 11:06door rroethof