Wanneer moet Jellyfin een afzonderlijke database- of opslaghost gebruiken?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Voor de meeste Jellyfin-thuisinstallaties is het verstandig de host voor mediaopslag te scheiden van de databasehost: bewaar de productiestatus van de app op een lokale SSD met lage latentie en splits bulkmedia alleen wanneer capaciteit, herstel of plaatsing dat vereist.

Deze beslissing gaat over datafuncties, niet over het aantal machines. Jellyfin bevat configuratie- en databasestatus waarvoor lage latentie belangrijk is, opnieuw op te bouwen caches, tijdelijke transcodeergegevens en grote, overwegend sequentiële mediabestanden. Deze gegevensklassen hebben baat bij verschillende opslag-, back-up- en foutdomeinen. Een tweede host is alleen nuttig als die één functie een duidelijk voordeel biedt op het gebied van capaciteit of herstel, zonder een voorheen lokale afhankelijkheid om te zetten in een kwetsbaar netwerkpad.

Scheid eerst de datafuncties voordat je machines scheidt

Begin met vier functies: gezaghebbende applicatiestatus, opnieuw op te bouwen afgeleide gegevens, tijdelijke werkruimte en media. De database, gebruikers, kijkstatus, afspeellijsten, configuratie en geselecteerde metadata behoren tot de hersteleenheid. Cache- en transcodeersegmenten kunnen doorgaans opnieuw worden aangemaakt. Film- en muziekbestanden zijn grote bronobjecten waarvoor de beschermingsstrategie volledig anders kan zijn dan voor de applicatiedatabase.

Een actuele handleiding voor databaseonderhoud van Jellyfin beschrijft de uniforme 10.11-database als actieve operationele status en niet als wegwerpbare cache. Daarom moet de plaatsing van hosts beginnen bij eigenaarschap en herstelvereisten, in plaats van elke map met de naam “Jellyfin” op dezelfde share te zetten.

Breng deze functies in kaart voordat je hosts uittekent. Als de huidige server voldoende SSD-ruimte en back-updekking voor de applicatiestatus heeft, levert verplaatsen architectonisch niets op. Als de mediabibliotheek de lokale schijfposities, stroomvoorziening, koeling of foutisolatie te boven is gegroeid, is dat een concrete reden om deze functie naar een NAS of opslagserver te verplaatsen terwijl de applicatie lokaal blijft.

Houd de productiedatabase lokaal tenzij het externe databasepad echt wordt ondersteund

Jellyfin 10.11 heeft een belangrijke migratie naar EF Core voltooid, maar dat maakt een aparte PostgreSQL-server nog niet tot de standaard productietopologie. Er bestaan experimentele PostgreSQL-adapters, maar die voegen een extra service, inloggegevens, versiecompatibiliteit, back-upvolgorde en netwerkafhankelijkheid toe. Voor een normaal huishouden wegen deze kosten niet op tegen de theoretische netheid van een speciale databasehost.

De experimentele PostgreSQL-release zelf waarschuwt dat de adapter bedoeld is voor evaluatie en niet voor een productierijpe server. Die experimentele databasegrens is het stopteken: ontwerp geen herstelplan voor thuis rond een niet-ondersteunde backend alleen om de topologie meer op een bedrijfsomgeving te laten lijken.

Voor productie betekent lokaal niet dat de gegevens onbeschermd zijn. Plaats de applicatiestatus op betrouwbare SSD-opslag, maak er een back-up van naar een ander foutdomein en controleer of de back-up kan worden teruggezet met de bijbehorende Jellyfin-versie. Scheid de databaseservice alleen wanneer de gekozen backend voor jouw release wordt ondersteund, je deze onafhankelijk kunt beheren en het herstelvoordeel groter is dan de nieuwe netwerk- en versieafhankelijkheid.

Verplaats media naar een aparte opslaghost wanneer capaciteit of schijftopologie dat vereist

Bulkmedia heeft een ander toegangsprofiel. Bij Direct Play worden voornamelijk grote bestanden sequentieel gelezen met de afspeelbitrate, waardoor een NAS media probleemloos kan leveren zolang het netwerk, de mount en de schijven de gezamenlijke streams aankunnen. Door media te scheiden kan de computernode compact blijven terwijl de opslaghost kan meegroeien met grotere pools, meer schijfposities of een ander back-upontwerp.

Een recente thuisinstallatie met Jellyfin houdt Docker-gegevens op SSD terwijl media op HDD staat, wat een praktische scheiding tussen SSD-app en HDD-media laat zien. De afweging is zichtbaar bij de start van het afspelen: slapende HDD's kunnen extra opstartlatentie veroorzaken, ook al blijft het bladeren snel dankzij app-gegevens die op SSD staan.

Kies een aparte opslaghost wanneer uitbreiding van schijven, geluidsarme plaatsing, redundantie of opslag voor meerdere services het extra pad rechtvaardigt. Houd media lokaal wanneer één behuizing al aan de capaciteits- en back-upvereisten voldoet. Splitsen om het splitsen voegt DNS, mounts, rechten, netwerkstoringen en werk rond de opstartvolgorde toe zonder het daadwerkelijke resultaat voor de gebruiker te veranderen.

Behandel het opslagnetwerk als een vereiste afhankelijkheid, niet als een onzichtbare kabel

Zodra media naar een andere host verhuist, is Jellyfin afhankelijk van een aanwezige mount voordat scans en normale werking kunnen beginnen. Een ontbrekende NAS kan een leeg mountpunt achterlaten dat er nog steeds uitziet als een geldige map, terwijl een traag of instabiel netwerk een opslagprobleem kan veranderen in vertraagd afspelen. De topologie heeft daarom een fail-closed-opstartregel en een meetbare bandbreedtedoelstelling nodig.

Ervaringen uit de community laten zien dat media vanaf een aparte NAS via een normaal thuisnetwerk goed kan werken wanneer het netwerk correct is gedimensioneerd; in een recente discussie bleken veel gebruikers dit precies zo te doen zonder afspeelproblemen. De nuttige les uit afzonderlijke NAS-mediaopslag is dat plaatsing via het netwerk haalbaar is, maar als onderdeel van het mediapad moet worden behandeld en niet als gratis mag worden beschouwd.

Valideer het traagste onderdeel: opslagpool, NAS-netwerkkaart, switch, netwerkkaart van de server, mountprotocol en de vraag naar gelijktijdige streams. Stop Jellyfin of onderbreek destructief bibliotheekonderhoud wanneer de verwachte mediamount ontbreekt. Een tweede host is alleen een betrouwbaarheidsverbetering wanneer een storing ervan duidelijk en ingeperkt is, in plaats van stilzwijgend te worden omgezet in een lege bibliotheek.

Gebruik herstel- en uitbreidingstests als besliscriterium voor splitsing

Oefen voordat je een extra host toevoegt twee scenario's: verlies van de Jellyfin-computenode en verlies van de mediaopslagnode. Een geteste herstelworkflow die vooropstaat laat zien waarom configuratie, persistente gegevens, versiebeheerdefinities van services en de herstelvolgorde samen moeten worden bewezen, in plaats van te worden afgeleid uit het bestaan van back-upbestanden. De test van de opslaghost moet Jellyfin eveneens voorspelbaar laten degraderen zonder gezaghebbende mediastatus te herschrijven of verwijderen.

De herstelcontrole voor Jellyfin-opslag van ZimaSpace gebruikt dezelfde eigendomstest: elk persistent pad moet vóór een incident een benoemde functie, back-upscope en herstelmethode hebben.

Houd één host wanneer applicatiestatus, mediacapaciteit, back-up en normale piek-I/O ruimschoots binnen de mogelijkheden vallen. Splits mediaopslag wanneer capaciteit of de levenscyclus van opslag de beperking wordt. Behandel een aparte databasehost als een geavanceerde uitzondering totdat de databaseleverancier productierijp wordt ondersteund en onafhankelijk herstelbaar is. Het stopcriterium is een topologie waarvan je de functies kunt benoemen en herstellen, niet het maximale aantal dozen dat je kunt toevoegen.

NAS- en serverconfiguratie

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.