Delen via


Cachestatus in de hoofdmap van de virtualisatie

De provider gebruikt het lokale bestandssysteem onder de virtualisatiehoofdmap als een cache van de items die worden beheerd. Een item (bestand of map) kan een van de zes statussen hebben op het lokale bestandssysteem:

  • Virtueel

    Het item bestaat niet lokaal op schijf. Het wordt geprojecteerd, d.w.z. gesynthetiseerd tijdens inventarisaties van de bovenliggende map. Virtuele items worden samengevoegd met alle items die op de schijf aanwezig kunnen zijn om de volledige inhoud van de bovenliggende map weer te geven.

  • Tijdelijke aanduiding

    Voor bestanden: de inhoud van het bestand (primaire gegevensstroom) is niet aanwezig op de schijf. De metagegevens van het bestand (naam, grootte, tijdstempels, kenmerken, enzovoort) worden op de schijf opgeslagen.

    Voor directory's: Sommige of alle directe afstammelingen van de map (de bestanden en mappen in de map) zijn niet aanwezig op de schijf, d.w.z. ze zijn nog steeds virtueel. De metagegevens van de map (naam, tijdstempels, kenmerken, enzovoort) worden op de schijf opgeslagen.

  • Gehydrateerde tijdelijke aanduiding

    Voor bestanden: de inhoud en metagegevens van het bestand zijn in de cache opgeslagen op de schijf. Ook wel een gedeeltelijk bestand genoemd.

    Voor mappen: Een map die als tijdelijke aanduiding op schijf is gemaakt, wordt nooit een gehydrateerde tijdelijke aanduiding. Hierdoor kan de provider items toevoegen aan of verwijderen uit de map in de back-upopslag en deze wijzigingen laten doorgevoerd in de lokale cache.

  • Vuile tijdelijke aanduiding (gehydrateerd of niet)

    De metagegevens van het item zijn lokaal gewijzigd en zijn niet langer een cache van de status in het archief van de provider. Houd er rekening mee dat het maken of verwijderen van een bestand of map onder een tijdelijke aanduidingenmap ervoor zorgt dat de tijdelijke aanduidingenmap vuil wordt.

  • Volledig bestand/map

    Voor bestanden: de inhoud van het bestand (primaire gegevensstroom) is gewijzigd. Het bestand is geen cache meer van de status in het archief van de provider. Bestanden die zijn gemaakt in het lokale bestandssysteem (die helemaal niet aanwezig zijn in het archief van de provider) worden ook beschouwd als volledige bestanden.

    Voor mappen: mappen die zijn gemaakt in het lokale bestandssysteem (dat wil gezegd dat die helemaal niet in het archief van de provider bestaan) worden beschouwd als volledige mappen. Een map die als tijdelijke aanduiding op schijf is gemaakt, wordt nooit een volledige map.

  • Grafsteen

    Een speciale verborgen tijdelijke aanduiding die een item vertegenwoordigt dat is verwijderd uit het lokale bestandssysteem. Wanneer een map wordt geïnventariseerd, voegt ProjFS de set lokale items (tijdelijke aanduidingen, volledige bestanden, enzovoort) samen met de set virtuele geprojecteerde items. Als een item wordt weergegeven in zowel de lokale als de geprojecteerde sets, heeft het lokale item voorrang. Als er geen bestand in het lokale bestandssysteem bestaat, is er geen lokale status, dus wordt het weergegeven in de opsomming. Als dat item echter is verwijderd, zou het onverwacht zijn als het in de opsomming wordt weergegeven. Het vervangen van een verwijderd item door een tombstone resulteert in de volgende effecten:

    • Opsommingen om het item niet weer te geven.
    • Bestand wordt geopend dat verwacht dat het item bestaat, mislukt met bijvoorbeeld 'bestand niet gevonden'.
    • Bestand maakt dat verwacht alleen te slagen als het item niet bestaat; ProjFS verwijdert de tombstone als onderdeel van de bewerking.

Als u de bovenstaande statussen wilt illustreren, moet u rekening houden met de volgende reeks, gezien een ProjFS-provider met één bestand "foo.txt" in de virtualisatiehoofdmap C:\root.

  1. Een app inventariseert C:\root. Het virtuele bestand wordtfoo.txtweergegeven. Omdat het bestand nog niet is geopend, bestaat het bestand niet op schijf.
  2. De app opent een ingang voor C:\root\foo.txt. ProjFS vertelt de provider om er een tijdelijke aanduiding voor te maken.
  3. De app leest de inhoud van het bestand. De provider biedt de bestandsinhoud aan ProjFS en wordt in de cache opgeslagen in C:\root\foo.txt. Het bestand is nu een gehydrateerde tijdelijke aanduiding.
  4. De app werkt de tijdstempel Laatst gewijzigd bij. Het bestand is nu een vuil gehydrateerde tijdelijke aanduiding.
  5. De app opent een ingang voor schrijftoegang tot het bestand. C:\root\foo.txt is nu een volledig bestand.
  6. De app verwijdert C:\root\foo.txt. ProjFS vervangt het bestand door een tombstone. Wanneer de app nu C:\root it does not see foo.txtopsommen. Als het bestand wordt geopend, mislukt het openen met ERROR_FILE_NOT_FOUND.