22.5. Vinum objecten

Om deze problemen op te lossen, hanteert vinum een hiërarchie met vier niveaus van objecten:

In de volgende paragrafen wordt beschreven hoe deze objecten de functionaliteit van Vinum leveren.

22.5.1. Volumegrootte overwegingen

Een samenstelling kan meerdere subschijven bevatten die uitgespreid zijn over alle schijven in de Vinum instelling. Dat houdt in dat de grootte van een individuele schijf geen limiet is voor de samenstelling en dus niet voor het volume.

22.5.2. Redundante gegevensopslag

Vinum implementeert RAID-0 door meerdere samenstellingen aan een volume te koppelen. Elke samenstelling representeert hierbij de gegevens in het volume. Een volume kan tussen de één en acht samenstellingen bevatten.

Hoewel een samenstelling de totale gegevens van een volume voorstelt, is het mogelijk dat delen van deze voorstelling missen, door ontwerp (door geen subschijf voor delen van de samenstelling te definiëren) of per ongeluk (door een defecte schijf). Zo lang tenminste één samenstelling de gegevens voor het gehele volume kan leveren, is het volume volledig bruikbaar.

22.5.3. Prestaties

Vinum implementeert aaneenschakelen en spiegelen op het niveau van de samenstelling:

  • Een aaneengeschakelde samenstelling gebruikt de adresruimte van elke subschijf achter elkaar.

  • Een verdeelde samenstelling spreiden de gegevens over iedere subschijf. De subschijven moeten daarvoor allemaal dezelfde grootte hebben en er moeten tenminste twee subschijven zijn om onderscheid te kunnen maken met een aaneengeschakelde samenstelling.

22.5.4. Welke samenstelling?

De versie van Vinum die met FreeBSD 9.1 wordt meegeleverd, kent twee soorten samenstellingen:

  • Aaneengeschakelde samenstellingen zijn het meest flexibel: ze kunnen een oneindig aantal subschijven bevatten die verschillend van lengte mogen zijn. De samenstelling kan uitgebreid worden door subschijven toe te voegen. Ze kosten minder CPU tijd dan verdeelde samenstellingen, hoewel het verschil van de CPU belasting niet meetbaar is. Aan de andere kant, ze zijn het meest kwetsbaar voor hot-spots, waar één schijf heel intensief gebruikt wordt en anderen ongebruikt blijven.

  • Het grootste voordeel van verdeelde samenstellingen (RAID-0) is dat ze geen hot-spots hebben. Door het kiezen van een optimale deelgrootte (veelal 256 kB) kan de belasting op de fysieke schijven gelijk getrokken worden. De nadelen van deze aanpak zijn (minuscuul) complexere code en beperkingen aan de subschijven: ze moeten allemaal van gelijke grootte zijn en het uitbreiden van een samenstelling met extra subschijven is zo gecompliceerd, dat de huidige versie van Vinum dit niet ondersteunt. Vinum voegt een extra, triviale, beperking toe: een verdeelde samenstelling moet tenminste twee subschijven hebben, omdat die anders niet onderscheiden kan worden van een aaneengeschakelde samenstelling.

In Tabel 22.1, “Vinum samenstellingen” worden de voor- en nadelen van elke samenstelling samengevat.

Tabel 22.1. Vinum samenstellingen
SamenstellingtypeMinimaal aantal subschijvenSubschijven toevoegenGelijke grootteToepassing
aaneengeschakeld1janeeVeel gegevensopslag met maximale flexibiliteit en gemiddelde performance.
verdeeld2neejaHoge prestaties, ook bij veel gelijktijdige toegang.