Providers
Providers actieve volumes beheren en de schaduwkopieën ervan op aanvraag maken.
Als reactie op een aanvraag van een aanvrager genereert een provider COM-gebeurtenissen om toepassingen van een komende schaduwkopie te signaleren en deze kopie vervolgens te maken en te onderhouden totdat deze niet meer nodig is.
Hoewel er sprake is van een schaduwkopie, maakt de provider een omgeving waarin effectief twee onafhankelijke kopieën zijn van elk volume dat schaduw gekopieerd is: een actieve schijf die wordt gebruikt en bijgewerkt als normaal, de andere een kopie die is vast en stabiel voor back-up.
Hoewel een standaardprovider wordt geleverd als onderdeel van Windows, kunnen andere leveranciers hun eigen implementaties leveren die zijn geoptimaliseerd voor hun eigen opslaghardware- en softwareaanbiedingen.
Vanuit het oogpunt van een eindgebruiker of back-up/hersteltoepassingsontwikkelaar hebben alle providers dezelfde interface (zie Providers selecteren).
Alle providers moeten het volgende kunnen doen:
- I/O-aanvragen onderscheppen tussen het bestandssysteem en het onderliggende massaopslagsysteem.
- Leg de status van een volume op het moment van schaduwkopie vast en haal deze op, waarbij de weergave 'tijdstip' van de bestanden op de schijf behouden blijft, zonder dat er gedeeltelijke I/O-bewerkingen zijn doorgevoerd in de status.
- Gebruik deze weergave 'tijdstip' om een virtueel volume met de gekopieerde schaduwgegevens beschikbaar te maken (minimaal voor VSS-toepassingen).
Afhankelijk van hoe dit gebeurt, kan een provider een van de volgende drie typen zijn:
Systeemprovider
Een schaduwkopieprovider, de -systeemprovider, wordt geleverd als standaardonderdeel van een installatie van een Windows-besturingssysteem. Momenteel is de systeembeheerder een bepaald exemplaar van een softwareprovider. Dit kan echter in de toekomst veranderen.
De systeemprovider maakt gebruik van een methode voor kopiëren op schrijfbewerkingen om een volume in de schaduwkopie te behouden. Kopieën van de sectoren op schijf die zijn gewijzigd ('diffs' genoemd) sinds het begin van het maken van de schaduwkopie worden opgeslagen in een schaduwkopieopslaggebied.
Daarom kan de systeemprovider het livevolume beschikbaar maken, dat naar normaal kan worden geschreven en gelezen, en de 'verschillen' toepassen op de gegevens van het livevolume om de geblokkeerde gegevens van de schaduwkopie effectief beschikbaar te maken.
Voor de systeemprovider moet het opslaggebied voor schaduwkopie zich op een NTFS-volume bevinden. Het volume dat schaduw moet worden gekopieerd, hoeft geen NTFS-volume te zijn, maar ten minste één volume dat op het systeem is gekoppeld, moet een NTFS-volume zijn.
Softwareproviders
Software shadow copy providers onderscheppen en verwerken I/O-aanvragen in een softwarelaag tussen het bestandssysteem en de volumebeheersoftware. Deze providers worden geïmplementeerd als een DLL-onderdeel in de gebruikersmodus en ten minste één kernelmodusapparaatstuurprogramma, meestal (maar niet noodzakelijkerwijs) een stuurprogramma voor opslagfilters. Het werk van het maken van deze schaduwkopieën wordt uitgevoerd in software.
Een softwareschaduwkopieprovider moet een 'point-in-time'-weergave van een volume behouden door toegang te hebben tot een set bestanden die kunnen worden gebruikt om de volumestatus nauwkeurig opnieuw te maken vóór de schaduwkopie. Een voorbeeld hiervan is de copy-on-write-techniek van de systeemprovider.
VSS legt echter geen beperkingen op welke techniek die softwareproviders gebruiken om schaduwkopieën te maken en te onderhouden, en externe leveranciers zijn vrij om hun softwareproviders te implementeren zoals ze passen.
Daarnaast biedt VSS ondersteuning voor veel van de functionaliteit van softwareschaduwkopieproviders, zoals het definiëren van de point-in-time, gegevenssynchronisatie en het leegmaken van gegevens, het bieden van een gemeenschappelijke interface voor back-uptoepassingen en het beheer van de schaduwkopie.
Een softwareprovider is per definitie van toepassing op een breder scala aan opslagplatforms dan een hardwareprovider en moet even goed kunnen werken met basisschijven of logische volumes. Deze algemeenheid biedt de prestaties die mogelijk beschikbaar zijn door schaduwkopieën in hardware te implementeren en maakt geen gebruik van leverancierspecifieke volumeopname- of bestandsspiegelingsfuncties.
Hardwareproviders
Hardwareschaduwkopieproviders onderscheppen I/O-aanvragen van het bestandssysteem op hardwareniveau door te werken in combinatie met een hardwareopslagadapter of controller. Het werk van het maken van de schaduwkopie wordt uitgevoerd door een hostadapter, opslagapparaat of RAID-controller buiten het besturingssysteem.
Deze providers worden geïmplementeerd als een DLL-onderdeel in de gebruikersmodus dat communiceert met de hardware die de schaduwkopiegegevens beschikbaar maakt: daarom moeten hardwareschaduwkopieproviders mogelijk andere onderdelen in de kernelmodus aanroepen of maken.
Hardwareproviders maken gebruik van VSS-schaduwkopieën van volledige schijven of logische eenheden (LUN's). Aanvragers hebben nog steeds te maken met schaduwkopieën van volumes; alle volume-naar-schijftoewijzing wordt intern verwerkt door VSS. Schaduwkopieën die zijn gemaakt door hardwareproviders van volumes die zich op dynamische schijven bevinden, hebben een specifieke vereiste: ze kunnen niet worden geïmporteerd in hetzelfde systeem. Ze moeten transporteerbaar worden gemaakt en in een tweede systeem worden geïmporteerd.
Hoewel een provider van hardwareschaduwkopieën gebruikmaakt van VSS-functionaliteit die het tijdstip definieert, gegevenssynchronisatie toestaat, de schaduwkopie beheert en een gemeenschappelijke interface biedt met back-uptoepassingen, geeft VSS niet het onderliggende mechanisme op waarmee de hardwareprovider schaduwkopieën produceert en onderhoudt.