Voor ons VPS-, webhostings- en STACK-platformen gebruiken wij storageservers. Op deze servers worden bijvoorbeeld de complete images van VPS'en weggeschreven of de data van individuele STACK-accounts. De storageservers gebruiken een ZFS-bestandssysteem, met uitzondering van ons PerformanceVPS-platform dat Ceph gebruikt.
ZFS is een bestandssysteem dat zich richt op pooled storage, performance en data integriteit. Hiervoor gebruikt het de volgende middelen:
- Pooled storage: alle fysieke schijven op de server worden aan een 'pool' toegevoegd en ruimte wordt van die gezamenlijke pool gebruikt. De pool kan vergroot worden door er simpelweg extra schijven aan toe te voegen.
- Performance: ZFS gebruikt enkele caching technieken om een snelle read en write performance te bereiken.
- Data integriteit: Wanneer data wordt weggeschreven, wordt een checksum berekend en meegeschreven. Als je later de data terug leest, wordt de checksum opnieuw berekend. Als die berekening niet klopt met de weggeschreven checksum, is er een data error en zal SFS automatisch proberen die te corrigeren.
Naast dat wij ZFS gebruiken op ons VPS-platform, gebruiken wij een Raid-Z setup. Hierbij gebruiken wij vier schijven die data wegschrijven en een vijfde schijf die ter controle dient.
Stel dat de eerste vier respectievelijk een 1, 0 , 1 en 0 wegschrijven, dan heeft de vijfde schijf de som daarvan, namelijk 2. Valt er een schijf uit, bijvoorbeeld de 3e, dan weet ZFS automatisch dat daar een 1 op moet staan en kan het automatisch de data herstellen na het plaatsen van een nieuwe schijf. Stel dat de 5e was uitgevallen, dan zou ZFS weten dat die de waarde 2 moet krijgen en kan de data ook herstelt worden.