Data Domain: Bestanden op het Data Domain bestandssysteem vermelden met sfs-dump

Samenvatting: In dit artikel wordt uitgelegd hoe u de Data Domain opdrachtregelinterface (CLI) kunt gebruiken om de bestands- en directoryvermeldingen voor afzonderlijke MTrees of voor het bestandssysteem (FS) als geheel te dumpen. ...

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

Het Data Domain (DD) is een passief back-end storageapparaat. Het slaat alleen op wat de back-uptoepassingen opdragen en verwijdert alleen gegevens wanneer de back-uptoepassing aangeeft dat het bestanden moet verwijderen. Data Domain maakt of verwijdert nooit zelf bestanden.

Ongeacht het opgenomen protocol bevat de Data Domain FS alleen bestanden (binnen mappen) die zijn georganiseerd in MTrees. Alle bestanden (zowel voor bestanden in Active als in eventuele cloudeenheden) delen dezelfde root en namespace; er bestaat één naamruimte, wat betekent dat bestands- en maplijsten de bestanden in de Active- en cloud-eenheden zonder enig onderscheid bevatten.

Het verkrijgen van een gedetailleerde bestandsdump kan nuttig zijn om redenen zoals:
  • Een vergelijking uitvoeren met een lijst van bestanden die worden beheerd door een back-upapplicatie om te zien of er bestanden zijn die de applicatie niet meer beheert.
  • Een lijst opstellen van alle bestanden die een bepaalde drempelwaarde overschrijden om te bepalen of de back-upapplicatie de boete voor het bewaren van back-ups afdwingt

Oorzaak

De CLI-tool voor het maken van bestandenlijsten is sfs_dump.

Oplossing

Gebruik SSH Session Logging om de lijstuitvoer te verzamelen. De exacte opdracht die moet worden uitgevoerd vanuit de DD CLI om lijsten met bestanden te verzamelen, is afhankelijk van de versie van het Data Domain Operating System (DDOS) die wordt gebruikt.

Snelkoppelingen

Om een gedetailleerde lijst met bestanden in een Data Domain van de CLI te krijgen en uiteindelijk het proces voor het verkrijgen van informatie over bestanden die zijn opgeslagen in het Data Domain, moet de DDOS-release worden uitgevoerd.

Zodra het tekstuitvoerbestand met de bestandsgegevens is verzameld, is het verwerken van de uitvoer in een meer bruikbare vorm altijd hetzelfde, aangezien het uitvoerformaat voor alle DDOS-releases hetzelfde is (of kan worden geconverteerd naar een algemeen formaat met behulp van een script).

SSH Session Logging:

Gemeenschappelijk voor alle DDOS-releases is de vereiste om in te loggen op het Data Domain als een admin-gebruiker, en dit te doen met behulp van een SSH-client die het loggen van de console-uitvoer naar een tekstbestand aan de clientzijde ondersteunt (PuTTY werkt hier goed voor). Configureer de SSH-client zodanig dat uitvoer wordt gelogd naar een tekstbestand op de client (zorg ervoor dat er geen beperkingen zijn in het aantal gelogde regels of de individuele regellengte). Het SSH-sessielogbestand (en dus de DD-bestandslijsten) wordt niet geschreven op het Data Domain, maar op de (meestal) desktopclient van waaruit de SSH-verbinding wordt geïnitieerd.

Geef bij het verzamelen van de SSH-sessie-uitvoer het bestand een betekenisvolle naam (zoals het toevoegen van de Data Domain-hostnaam en de MTree-naam die moet worden gedumpt) en zorg ervoor dat er voldoende ruimte is voor het logbestand, dat ongeveer 200 MB kan zijn voor Data Domains met 1 miljoen bestanden.

DDOS-releases vóór 7.13.0.0, 7.10.1.15, 7.7.5.25 en 6.2.1.110:

Deze releases ondersteunen nog steeds de se sfs_dump commando (en de -c optie om bestandsdetails rechtstreeks als CSV uit te voeren zonder verdere verwerking), hoewel het om veiligheidsredenen wordt afgeraden om naar de modus Support Engineer (SE) te gaan, en in plaats daarvan te upgraden naar de nieuwste DDOS-release die beschikbaar is.

Meld u aan bij Data Domain als administrator, met een SSH-client die is geconfigureerd om uitvoer naar schijf te schrijven, schakel over naar de SE-privilegemodus en voer vervolgens de volgende opdracht uit voor elke MTree waarvoor de bestandsgegevens vereist zijn:

#### To produce the output directly as CSV
# se sfs_dump -c <mtree-path>

#### To produce the output as default format
# se sfs_dump <mtree-path>

Command in deze versies kan ook de lijst voor alle bestanden in de FS in één keer produceren (in plaats van één MTree tegelijk). Als u de bestandsinformatiedetails voor alle bestanden in de FS wilt dumpen, laat u het MTree-pad weg:

# se sfs_dump -c

Zorg er na voltooiing voor dat u stopt met het loggen van de SSH-client op schijf en dat u de bestanden opzij zet voor verdere verwerking.

Indeling voor de opdrachtuitvoer is één regel voor elk bestand. Als u niet met -c, is het formaat identiek aan het bovenstaande formaat voor latere releases. In gevallen waarin -c werd gebruikt (voor CSV-uitvoer), is het formaat als volgt (inclusief een koptekst die wordt weergegeven als de eerste regel in de uitvoer):

name    mtime   fileid  size    seg_bytes       seg_count       redun_seg_count pre_lc_size     post_lc_size
/data/col1/backup/file       1656995350000000000     78      33554431        33668007        4016    0       33668007        34208564

DDOS releases 7.13.0.0, 7.10.1.15, 7.7.5.25 en 6.2.1.110 of hoger:

De MTree die moet worden vermeld, komt na het trefwoord "MTree":

# filesys sfs-dump mtree <mtree-path>

filesys sfs_dum commando, vergeleken met se sfs_dump:

  • De nieuwe opdracht biedt geen ondersteuning voor de -c optie om bestandsinformatie te dumpen in CSV-indeling (kolom)
  • De nieuwe opdracht kan alleen een MTree tegelijk uitvoeren, er is geen ondersteuning voor het uitvoeren tegen de hele FS in een enkele aanroep

Als het dumpen van alle bestandsdetails van de MTrees naar het bestand vereist is, herhaalt u de hele lijst met MTrees in de Data Domain FS en voert u de opdracht één keer uit voor elk van hen. Een gebruiker kan een lijst met MTrees in het systeem krijgen door het volgende uit te voeren:

# mtree list

Meld u aan bij Data Domain als beheerder, met een SSH-client die is geconfigureerd om uitvoer naar schijf te schrijven, en voer vervolgens de volgende opdracht uit voor elke MTree waarvoor de bestandsgegevens nodig zijn:

# filesys sfs-dump mtree <mtree-path>

Als de bestandsdetails voor meer dan één MTree nodig zijn, kiest u de optie om alle dumps naar hetzelfde uitvoerbestand uit te voeren, of schakelt u in de SSH-clientconfiguratie over naar een ander bestand voordat u de opdracht voor elk van de MTrees uitvoert.

U kunt de uitvoer ook zonder toezicht verzamelen door de opdracht uit te voeren met behulp van SSH:

#### Releases 7.13.0.0, 7.10.1.15, 7.7.5.25 and 6.2.1.110 onwards only
# ssh sysadmin@DD-HOSTNAME "filesys sfs-dump mtree /data/col1/backup" > sfs-dump-DD-backup.txt

In beide gevallen heeft de uitvoerinformatie één regel voor elk bestand, met de volgende indeling:

/data/col1/backup/file: mtime: 1580211658000000000 fileid: 175 size: 136794 type: 9 seg_bytes: 138282 seg_count: 18 redun_seg_count: 14 (78%) pre_lc_size: 15045 post_lc_size: 8760 (58%) mode: 02000100644 start_offset: 0 end_offset: 18446744073709551615

DDOS releases 8.1.0.0, 7.13.1.10, 7.10.1.30 en 7.7.5.40 of hoger:

filesys fs-dump:

  • De mogelijkheid om de -c optie, zodat de uitvoer wordt afgedrukt in een CSV-achtige opgemaakte versie (velden gescheiden door kolommen)
  • De mogelijkheid om de bestandsdumpinformatie voor alle bestanden in de FS in één keer uit te voeren
  • Gebruik ssh-sessielogging om de uitvoer te verzamelen.

Command blijft hetzelfde als voor de vorige versies, met de genoemde verbeteringen, hieronder samengevat:

#### File listing for all the files in a given MTree path
# filesys sfs-dump mtree <mtree-path>

#### File listing for all the files in a given MTree path, with CSV-like output
# filesys sfs-dump -c mtree <mtree-path>

#### File listing for all the files in the FS
# filesys sfs-dump

#### File listing for all the files in the FS, with CSV-like output
# filesys sfs-dump -c


Deze opdracht blijft 'verborgen', zodat deze niet wordt weergegeven in de interactieve Help van CLI of in de documenten.

Hoe verwerk je sfs_dump of filesys sfs-dump data tot iets nuttigs:

De indeling van de afzonderlijke bestanden die worden gerapporteerd in de uitvoer bij gebruik van filesys sfs-dump of sfs_dump zonder de -c De optie kan als volgt worden samengevat:

/data/col1/backup/file: mtime: 1580211658000000000 fileid: 175 size: 136794 type: 9 seg_bytes: 138282 seg_count: 18 redun_seg_count: 14 (78%) pre_lc_size: 15045 post_lc_size: 8760 (58%) mode: 02000100644 start_offset: 0 end_offset: 18446744073709551615

Field 01 : filename with full path (/data/col1/backup/file)
Field 03 : file last modification time as UNIX epoch in nanoseconds (nanoseconds since January 1st 1970 at midnight)
Field 05 : file (inode) ID, inode numbers are per MTree (175)
Field 07 : pre-comp size for the file in bytes (136794)
Field 09 : type of file (9)
Field 11 : segment store bytes (this is NOT the file size), please ignore (138282)
Field 13 : segment count, or the number of segments the file consists of (18)
Field 15 : number of file segments which are redundant, or not unique (14)
Field 16 : percentage of non-unique segments to total segments (78%)
Field 18 : combined size of the file's unique segments after deduplication (15045)
Field 20 : combined size of the file's unique segments after deduplication and local compression (8760)
Field 21 : ratio of post-deduplicated + post-compressed unique segments size to post-deduplicated unique segment size (58%), shows how well local compression worked
Field 23 : file mode, please ignore

In het bovenstaande voorbeeld heeft het origineel een grootte van 136.794 bytes. Het is berekend op 15.045 bytes na deduplicatie en 8760 bytes wanneer de unieke segmenten voor het bestand worden gecomprimeerd voordat het naar schijf wordt geschreven. Vandaar:

  • De bestandsdeduplicatie (ook bekend als "gcomp" of globale compressie) is een factor x9,09 (136.794 tot 15.045 bytes)
  • De lokale compressie van het bestand (ook wel bekend als "lcomp" voor lokale compressie) is een factor x1,72 (15.045 tot 8760 bytes)
  • De geschatte totale vermindering van de bestandsgrootte (ook wel 'compressieverhouding' genoemd) is een factor x15,62 (136.794 tot 8760 bytes)

Afwisselend sfs_dump -c De output is vergelijkbaar, maar beknopter:

/data/col1/backup/file       1656995350000000000     78      33554431        33668007        4016    0       33668007        34208564

Field 01 : filename with full path (/data/col1/backup/file)
Field 02 : file last modification time as UNIX epoch in nanoseconds (nanoseconds since January 1st 1970 at midnight)
Field 03 : file (inode) ID, inode numbers are per MTree
Field 04 : pre-comp size for the file in bytes (33554431)
Filed 05 : segment store bytes (this is NOT the file size), please ignore (33668007)
Field 06 : segment count, or the number of segments the file consists of (4016)
Field 07 : number of file segments which are redundant, or not unique (0)
Field 08 : combined size of the file's unique segments after deduplication (33668007)
Field 09 : combined size of the file's unique segments after deduplication and local compression (34208564)

Voor dit voorbeeld kunnen dezelfde berekeningen worden gemaakt als bij het vorige:

  • De bestandsdeduplicatie (ook bekend als "gcomp" of globale compressie) is een factor x0,99 (33.554.431 tot 33.668.007 bytes)
  • De lokale compressie van het bestand (ook bekend als "lcomp," voor lokale compressie) is een factor x0,98 (33.668.007 tot 34.208.564 bytes)
  • De geschatte totale verkleining van de bestandsgrootte (ook wel 'compressieverhouding' genoemd) is een factor x0,98 (33.554.431 tot 34.208.564 bytes)

Vergeleken met het bestand dat wordt weergegeven voor het nr -c Deze bereikt bijvoorbeeld geen deduplicatie (geen redundante segmenten) of lokale compressie. Dit geeft aan dat het om een gecomprimeerd bestand gaat.
 

Let op: Gegevens in de uitvoerbestanden met betrekking tot een andere grootte dan "precomp-grootte voor het bestand in bytes" moeten als bij benadering worden beschouwd en kunnen niet volledig worden vertrouwd. Metadata voor bestanden worden gemaakt op het moment dat het bestand wordt opgenomen, en hoewel het dan correct is, wordt het sindsdien op geen enkel moment bijgewerkt, dus het wordt na verloop van tijd verouderd. Ook dat een bestand post_lc_size is een bepaalde hoeveelheid betekent niet dat de schijfruimte die door dat bestand wordt gebruikt, identiek is aan die hoeveelheid, aangezien er veel overheadkosten op FS-niveau zijn die niet per bestand in aanmerking worden genomen. De beperkingen zijn dezelfde als die voor de beperkingen die al bekend zijn voor de opdracht:
mtree show compression
Het benutten van de informatie in de bovenstaande uitvoerbestanden bestaat uit het verwerken van de numerieke gegevens op een manier die past bij de doelen van de gebruiker. Enkele voorbeelden van gebruiksscenario's kunnen zijn:
  • Bepaling van de gcomp als lcomp voor bestanden die overeenkomen met een bepaald pad (als een pad kan worden afgestemd op een bepaalde back-upserver, client, policy, taak, enzovoort)
  • Berekenen hoeveel gegevens (pre-comp) wordt opgeslagen op een bepaalde locatie die ouder is dan een bepaalde hoeveelheid tijd (om weeskinderen vast te stellen of problemen op te lossen met back-upapplicaties die back-ups niet op tijd laten verlopen)
  • Elk ander type statistiek waar men gebruik van kan maken
Om een enkele set instructies te hebben en om het verlies van de sfs_dump -c optie in recentere releases zijn onze aanbevelingen om de uitvoergegevens te converteren naar het bovenstaande CSV-formaat en vervolgens het bestand in CSV-formaat te gebruiken om verder te worden verwerkt, maar afhankelijk van uw vaardigheden kan de niet-CSV-uitvoer direct worden verwerkt.

Converteren naar CSV:

Een niet-CSV-bestand converteren sfs_dump uitvoer in een die identiek is aan wat sfs_dump -c zou hebben afgedrukt, kan de volgende Linux-opdrachtregel worden gebruikt:

# cat sfs-dump-noCSV.txt | grep ^/ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size"}
{
    colon_index = index($0, ":")
    filename = substr($0, 1, colon_index - 1)
    gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
    n = split(substr($0, colon_index + 1), fields, " ")
    print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19]
}' > sfs-dump-CSV.csv

 

Opmerking: Het bovenstaande commando negeert alles in het invoerbestand (sfs-dump-noCSV.txt) dat niet begint met een schuine streep, omdat alleen regels die beginnen met "/data" bestandsdetails moeten bevatten voor verwerking. Uitvoerbestanden hebben een eerste regel als koptekst en gebruiken het tabelteken (\t) als veldscheidingsteken.


Alles na dit punt wordt aan gebruikers geleverd zoals het is. Dell biedt geen enkele garantie of verplichting voor de onderstaande instructies. Het verkrijgen van informatie uit de details van de bestandslijst is de taak van een gebruiker, en hoe dat moet worden bereikt, hangt volledig af van de toolset die wordt gebruikt voor het minen van gegevens in de uitvoer van bestandsdumps, het doel dat moet worden bereikt en de eigen expertise van de gebruiker bij het verwerken van gegevens uit de hierboven beschreven opdrachtuitvoer. De ene gebruiker kan ervoor kiezen om Linux-opdrachtregelverwerking van tekstbestanden te gebruiken om sommige aggregaten te dumpen, anderen kunnen ervoor kiezen om input te produceren voor het in kaart brengen van waarden met behulp van "gnuplot", terwijl de meerderheid van de gebruikers wordt verondersteld een meer eenvoudige (maar beperkte) benadering te zoeken, om een spreadsheet te bouwen van het CSV-bestand voor analyse.

Dell heeft zich ingespannen om ervoor te zorgen dat de onderstaande instructies correct, werkend en nuttig zijn voor gebruikers, maar kan niet garanderen dat ze werken en dat er ook geen support wordt geboden, aangezien deze buiten de reikwijdte van de ondersteuning vallen.

De sfs_dump-uitvoer met CSV-indeling importeren in een spreadsheet (bijvoorbeeld voor Excel):

Zodra de CSV-versie van de lijst met bestandsgegevens beschikbaar is, is een manier om informatie uit de gegevens te halen, het laden van de gegevens in spreadsheetsoftware. Microsoft Excel wordt als voorbeeld gebruikt, hoewel de instructies voor andere software vergelijkbaar moeten zijn. Volg de volgende stappen om het CSV-tekstbestand als CSV-bestand in Excel te importeren:

  1. Open Excel en maak een nieuwe lege spreadsheet
  2. Ga naar het menu Gegevens bovenaan en klik vervolgens op het pictogram Met de naam Van tekst/CSV
  3. Gebruik het dialoogvenster om de bestandsgegevens in CSV-indeling te vinden (sfs-dump-CSV.csv zoals in het voorbeeld conversiescript van niet-CSV-indeling), selecteer het en klik op Importeren
  4. Als het invoerbestandsformaat correct is en Excel het formaat uit de eerste 200 regels zou kunnen tekenen (wat zou moeten), zou een dialoogvenster het voorbeeld van het te genereren spreadsheet moeten tonen. Controleer de informatie om er zeker van te zijn dat deze er goed uitziet, inclusief dat de eerste regel wordt gedetecteerd als de headers
  5. Als alles er goed uitziet met het voorbeeld, klikt u op de knop Laden onder aan het dialoogvenster, en de nieuwe spreadsheet wordt gepresenteerd met een mooie opmaak en de veldkoppen worden omgezet in zoek- en filterkoppen.

De gegevens in de spreadsheet zijn al nuttig, zoals het toepassen van een getalfilter op numerieke velden zoals grootte (om alleen bestanden boven een bepaalde grootte weer te geven), of het toepassen van een tekstfilter op het naamveld, zodat alleen bestanden in de Data Domain-bestandsgegevensuitvoer die overeenkomen met een bepaald patroon (alleen bestanden die beginnen met het pad voor een bepaalde MTree) worden weergegeven, en andere afgeleide berekeningen uitvoeren op basis van die gegevens.

Een correct geïmporteerd Excel-spreadsheet moet gegevens in de kolommen A-I bevatten. Als de gegevens alleen in kolom A aanwezig zijn, maar zich over het hele scherm uitstrekken, sluit u Excel en probeert u de bovenstaande stappen 1 tot en met 5 opnieuw uit te voeren.

Voeg extra berekende velden toe:

De spreadsheet kan worden uitgebreid met zoveel berekende velden als een gebruiker nodig heeft. Een interessant veld om toe te voegen is de door mensen leesbare datum en tijd die overeenkomen met de mtime van de bestanden (laatste wijzigingstijd, meestal de tijd dat het naar het DD is geschreven). Ook kan het berekenen en weergeven van enkele compressiewaarden per bestand nuttig zijn, afhankelijk van waarvoor de data worden gebruikt. De nieuwe kolommen worden automatisch ingevuld met behulp van Excel-formules, zoals hieronder wordt beschreven.

Tijdstempelconversie:

Om de UNIX-achtige tijdstempel te converteren naar een door mensen leesbare datum en tijd:

  1. Klik met de rechtermuisknop op cel J2 en kies "Cellen opmaken"
  2. Kies in de lijst "Category" aan de linkerkant voor "Custom".
  3. Als dit nog niet het geval is, maakt u de indeling voor de door mensen leesbare datum-tijdnotatie (het voorbeeld bevat de EST-tekenreeks aan het eind. Het kan worden vervangen door uw tekstuele tijdzonedefinitie, of "EST" volledig verwijderen als u niet geïnteresseerd bent): jjjj-mm-dd uu:mm:ss "EST"
  4. Klik op "OK" als u klaar bent. Cel J2 heeft nu een aangepaste indeling voor gegevens.
  5. Voeg de volgende formule toe aan cel J2. Vervang in de formule de (-6*3600) door het juiste tijdzoneverschil dat overeenkomt met UTC voor de geconfigureerde tijdzone in het Data Domain op het moment dat de "sfs-dump"-gegevens worden opgehaald. De tijd in het oosten van de VS loopt bijvoorbeeld 6 uur achter op UTC tijdens de zomer, vandaar de "-6" hier.
Als u niet geïnteresseerd bent in zo'n nauwkeurige tijdaanpassing, kan in plaats daarvan een verkorte vorm van de formule zijn. De eenvoudigste manier om de formule toegevoegd te krijgen en te voorkomen dat de datum- en tijdnotatie wordt overschreven, is door een van de twee onderstaande versies te kopiëren en in cel J2 te plakken, zodra het teken "gelijk aan" (=) in de cel is getypt om te beginnen met het bewerken van de cel:
(((B2/1000000000+(-6*3600))/86400)+25569)
(((B2/1000000000)/86400)+25569)
Opmerking: Als tekst in J2 wordt geplakt zonder de cel eerst in de bewerkingsmodus te zetten (om te bellen), wordt de opmaak van de cel overschreven. U kunt de formule ook laten voorafgaan door een "=", de hele tekst kopiëren en met de rechtermuisknop op cel J2 klikken om speciaal te plakken, vervolgens As Text te selecteren en op OK te klikken. Het zou hetzelfde effect moeten krijgen. Als dit goed is gedaan, doet Excel automatisch een paar dingen:
  • Plak de formule in cel J2 en ook in elke cel van de rest van de regels in de spreadsheet 
  • Bereken de formule voor het hele spreadsheet en geef de waarde voor datum en tijd weer in de geconfigureerde indeling
  • Maak de kolom mooi op als de bestaande en laat de koptekst configureren als een datum met de mogelijkheid om datumfilters toe te passen, het enige wat u hoeft te doen is een eigennaam voor de kolom in te stellen (datum)

Compressie-informatie:

Kolommen kunnen worden toegevoegd voor de compressie-informatie per bestand door te gaan zoals hierboven uitgelegd. Deze keer wordt in de formules de "=" weergegeven, dus de hele tekst moet worden gekopieerd, en Plak speciaal als tekst:

  • Kopieer de volgende formule en plak Speciaal als tekst in cel K2 om een kolom te maken voor de deduplicatie per bestand, of gcomp:
    =IF(H2=0,0,D2/H2)
  • Kopieer de volgende formule en plak Speciaal als tekst in cel L2 om een kolom te maken voor de lokale compressie per bestand, of lcomp:
    =IF(I2=0,0,H2/I2)
  • Kopieer de volgende formule en plak Speciaal als tekst in cel M2 om een kolom te maken voor de totale bestandscompressieverhouding per bestand:
    =K2*L2

Geef de nieuwe kolommen een eigen naam. Als u wilt dat de notatie voor de compressiewaarden een andere is (bijvoorbeeld om het aantal decimalen te beperken), doet u zoals in het voorbeeld voor de datum en tijd en stelt u de numerieke notatie van de cel van tevoren in voordat u de formule plakt.

Vergeet niet om uw werk veilig te houden door naar het menu Bestand te gaan en te doen. Sla dit op door ervoor te zorgen dat het type voor het opgeslagen bestand is ingesteld op Excel-werkmap (*.xlsx), zodat de opmaak en het filter behouden blijven.

Na voltooiing van de beschreven acties bevat uw spreadsheet de volgende (relevante) kolommen:

  • A bevat een bestandsnaam
  • B bevat de datumstempel (in UNIX-epoch in nanoseconden) voor wanneer het bestand voor het laatst is geschreven
  • D is de oorspronkelijke grootte van het bestand
  • H is de grootte na globale compressie
  • I is de grootte na globale en lokale compressie
  • J bevat de datumstempel van wanneer het bestand voor het laatst is beschreven, in een voor mensen leesbare vorm
  • K bevat de globale compressie (deduplicatie) voor het bestand
  • L bevat de lokale compressie voor het bestand
  • M bevat de totale compressie voor het bestand

Alle bestandsgroottes zijn in bytes.
Excel kan nu naar wens worden gefilterd of gesorteerd om over de gegevens te rapporteren.

  • Als u bijvoorbeeld alleen bestanden binnen de MTree /data/col1/backup wilt weergeven die meer dan 30 dagen oud zijn:
  1. Klik op de pijl-omlaag in de koptekst Naam, selecteer Tekstfilters, dan Begint met en typ /data/col1/backup/ in de doos. De schuine streep aan het eind is belangrijk. Klik op OK
  2. Klik op de pijl-omlaag in de koptekst 'Laatste geschreven datum', selecteer 'Datumfilters' en vervolgens 'Voor'. Gebruik de datumkiezer aan de rechterkant van het dialoogvenster om een datum 30 dagen geleden te selecteren. Klik op OK.
De statusbalk onderaan geeft aan hoeveel rijen overeenkomen met deze selectie.

Extra informatie

Opdracht om bestandslocatie te dumpen (actief en cloud)

Er is een manier om de lijst met bestanden te dumpen met een indicatie van welke in Active staan en welke in alle cloudeenheden, namelijk:

#### For the DD FS as a whole
# filesys report generate file-location

#### For an individual MTree or subdirectory
# filesys report generate file-location path /data/col1/test

De uitvoer is in beide gevallen van het volgende type:

-------------------------      ----------------------      ----------------------      ---------------------------
File Name                      Location(Unit Name)         Size                        Placement Time
-------------------------      ----------------------      ----------------------      ---------------------------
/data/col1/test/file1.bin                  Cloud-Unit                  200.00 GiB      Sat Mar  5 13:24:10 2022
/data/col1/test/file2.bin                      Active                   10.00 TiB      Sat May 14 00:48:17 2022
-------------------------      ----------------------      ----------------------      ---------------------------

Het bovenstaande commando is echter meestal ontoereikend voor de meeste doeleinden, omdat de grootte bijvoorbeeld in door mensen leesbare eenheden is (in plaats van in bytes of MiB of een andere vaste vermenigvuldiger) en de plaatsingstijd overeenkomt met het moment waarop de back-ups zijn gemaakt naar het Data Domain voor bestanden in Active, maar niet voor bestanden in Cloud ("Plaatsingstijd" voor bestanden in de cloud is de datum en tijd waarop het bestand naar de Cloud-eenheid is verplaatst).

Houd er ook rekening mee dat de onderstaande opdracht (en het script dat wordt geconverteerd van niet-CSV sfs_dump) voert gegevens uit in kolommen die worden gescheiden door tabbladen. De tabtekens in de uitvoer moeten worden opgeslagen in het logboekbestand, anders kunnen de bovenstaande stappen om het CSV-bestand in Excel te importeren de velden niet correct scheiden.

sfs_dump -c

De instructies die worden gegeven, veronderstellen een redelijke kennis van Excel, maar kunnen worden vertaald naar andere spreadsheetsoftware.

Moderne versies van Excel staan veel rijen toe, maar houd er rekening mee dat elk bestand op de sfs_dump De uitvoer die moet worden verwerkt is een enkele regel, dus Excel moet in staat zijn om een spreadsheet met evenveel rijen als bestanden in uw gegevensset snel te verwerken en bij te werken. De harde limiet is iets meer dan 1 miljoen rijen, maar zelfs als het aantal bestanden daar ver onder ligt, is Excel mogelijk niet de juiste voor de taak (te traag).

Als de sfs_dump uitvoer heeft te veel bestanden voor de versie van Excel of om gegevens in kleinere bits te verwerken voor prestaties, probeer de procedure één keer uit te voeren voor elke MTree, zodat er meerdere spreadsheets voor het systeem zijn.

Zelfs een enkele MTree sfs_dump De uitvoer kan te groot zijn voor Excel, in welk geval het gebruik van de gesplitste Linux-opdracht kan worden gebruikt (of een andere vergelijkbare tool om een groot tekstbestand online te splitsen) om verschillende kleinere CSV-bestanden één voor één te verwerken, bijvoorbeeld:

# split  -b <size> <filename> <new filename prefix>  (splits by file size)
# split  -l <size> <filename> <new filename prefix>  (splits by number of lines)
# split  -n <size> <filename> <new filename prefix>  (splits by number of pieces)

Als u bijvoorbeeld een invoertekstbestand wilt splitsen in blokken van elk 200 MiB, zodat de stukken een beginnende naam krijgen:

"sfs_dump.out.split"

Voer vervolgens het volgende uit:

# split -b 200M sfs_dump.out sfs_dump.out.split


Script om "filesys sfs-dump" te gebruiken voor het dumpen van bestandsdata in volledige FS.

Voor die paar releases die niet de mogelijkheid hadden om bestandsdetails in CSV-indeling te dumpen, wordt het script dat hieronder wordt weergegeven, door Dell geleverd zoals het is (zonder garantie) aan gebruikers om een vergelijkbaar resultaat te bereiken door niet-CSV-bestanden te verwerken sfs_dump Output.

Aangezien de releases die geen CSV-uitvoer ondersteunen ook de releases zijn die niet toestaan om de informatie voor alle bestanden in de FS als geheel te dumpen, gebruikt het script SSH om verbinding te maken met het doel-Data Domain om de lijst met MTrees te herhalen, waarbij de bestandsdump één MTree tegelijk wordt uitgevoerd, om de bestandslijst voor alle MTrees te verzamelen, zet ze vervolgens om in een CSV-indeling die geschikt is voor verdere verwerking:

#!/bin/bash

#### WARNING
####     This script is provided to you by Dell Technologies with NO GUARANTEE, as best-effort sample code to get a full FS sfs-dump collected
####     for DDOS releases which do not support "se sfs-dump", or as an alternative to it, in releases which support "filesys fs-dump"
####     That this script does not work for you, or if you need help setting it up, extending it, or resolving any issues, is not entitled to support
####     This script is not part of Dell PowerProtect / Data Domain, and hence it is not supported

#### Replace values below to suit your needs
USERNAME="sysadmin"
DD_HOSTNAME="10.n.n.172"
#### NO CHANGES NEEDED BEYOND THIS POINT

clear
echo "Script collects a full FS sfs-dump from \"${DD_HOSTNAME}\", using the command \"filesys sfs-dump\", one MTree at a time"
echo "    * Script has to be configured by settting the \"USERNAME\" and \"DD_HOSTNAME\" variables within the top of the script"
echo "    * Script expects passwordless SSH connection as \"USERNAME\" to the \"DD_HOSTNAME\" configured"
echo "    * To configure passwordless SSH login to a DataDomain, check KB at https://www.dell.com/support/kbdoc/000004033 "
echo "    * Test passwordless login is configured and working prior to going ahead with this script"
echo "    * If passwordless login is not configured, script will ask for the \"${USERNAME}\" password "
echo "          - Once for getting the MTree list"
echo "          - And once for each one of the MTrees in \"${DD_HOSTNAME}\" "
echo
echo -n "Are you sure you want to continue? (y/n) : "
read -n 1 answer
echo
if [ "${answer}" = "y" ]; then
    echo "Going ahead with the script."
    echo
else
    echo "Stopping script now. Re-run when passwordless login to \"${DD_HOSTNAME}\" as \"${USERNAME}\" works. Bye."
    exit 1
fi

echo -n "1/6 : Collecting list of MTrees from DD..."
ssh ${USERNAME}@${DD_HOSTNAME} "mtree list" 2>/dev/null | grep ^/ | awk '{print $(NF-3)}' > mtree-list.txt
echo "Done."

n_mtrees=$( wc -l mtree-list.txt | cut -d" "  -f1 )
echo -n "2/6 : Collecting per-Mtree sfs-dump information for ${n_mtrees} MTrees ..."
for mtree in `cat mtree-list.txt`; do
    name=$(echo $mtree | cut -d/ -f4)
    ssh ${USERNAME}@${DD_HOSTNAME} "filesys sfs-dump mtree ${mtree}" 2>/dev/null | grep ^/ > sfs-dump-${name}.txt
    echo -n "."
done
echo "Done."

echo -n "3/6 : Putting all the files together..."
for file in `ls sfs-dump-*.txt`; do 
    if [ -s "${file}" ]; then cat ${file} >> sfs-dump-noCSV.txt; fi
done
echo "Done."

echo -n "4/6 : Converting sfs-dump output to CSV format..."
cat sfs-dump-noCSV.txt | grep ^/ | grep -v ^$ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size"}
{
    colon_index = index($0, ":")
    filename = substr($0, 1, colon_index - 1)
    gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
    n = split(substr($0, colon_index + 1), fields, " ")
    print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19]
}' > sfs-dump-CSV.csv
echo "Done."

echo -n "5/6 : Cleaning up..."
for mtree in `cat mtree-list.txt`; do name=$(echo $mtree | cut -d/ -f4); rm -f sfs-dump-${name}.txt ; done
rm sfs-dump-noCSV.txt
rm mtree-list.txt
echo "Done."


echo -n "6/6 : Summary"
echo
n_files=$( wc -l sfs-dump-CSV.csv | cut -d" "  -f1 )
echo
echo "Collecting whole FS sfs-dump data from ${HOSTNAME} completed"
echo "File includes output for ${n_mtrees} MTrees, with a combined $(( ${n_files} - 1 )) files across Active and Cloud Tiers (if applicable)"
echo "Start of file shown below for your convenience :"
echo "===================="
head -5 sfs-dump-CSV.csv
echo "===================="
echo
echo "Done."

exit 0


Script om de uitvoer van niet-CSV "sfs-dump" en "filesys report generate file-location" te combineren in een CSV-bestand met dezelfde informatie als het script hierboven en per bestandslaag en informatie over de plaatsingstijd.

Het volgende script wordt as-is (zonder garantie) door Dell aan gebruikers geleverd als een middel om hopelijk waarde toe te voegen aan de uitvoer van de sfs_dump en het bestandsrapport genereren hierboven opdrachten voor bestandslocatie. Een gebruiker kan bestanden filteren op basis van laag (actief of een van de twee geconfigureerde Cloud Units) om een nauwkeuriger inzicht te krijgen in de bestandsdistributie per laag door de locatie van de laag en informatie over de plaatsingstijd toe te voegen aan elke bestandsvermelding in het uitvoer-CSV-bestand.

Scripts verwachten de sfs-dump (niet sfs_dump -c) uitvoer als de eerste parameter, en het filesys-rapport genereert bestandslocatie-uitvoer als de tweede. Uitvoer wordt geschreven naar een hardgecodeerde bestandsnaam "sfs-dump-output-tiers.csv", die in het script zelf kan worden gewijzigd.

De uitvoer kan met behulp van Excel op dezelfde manier worden verwerkt als hierboven uitgelegd.

#!/bin/bash

#### WARNING
####     This script is provided to you by Dell Technologies with NO GUARANTEE, as best-effort sample code to match the output from commands :
####       * sfs-dump (in non CSV format)
####       * filesys report generate file-location
####     So that a new CSV with the file paths appearing on both is created for all the data in sfs-dump file with the added tier and placement time information from location report
####
####     This script is not part of Dell PowerProtect / Data Domain, and hence it is not supported
####
####     Usage : extend-sfs-dump-with-tier.sh sfs-dump-output.csv file-location-output.log
####     Output : static "sfs-dump-output-tiers.csv" file name (may be changed below)

#### Replace values below to suit your needs
OUTPUT_FILENAME="sfs-dump-output-tiers.csv"
#### NO CHANGES NEEDED BEYOND THIS POINT

clear

if [ ! $# == 2 ]; then
    echo "Combine output from sfs-dump and tier location report into a CSV file with tier and placement time information"
    echo
    echo "Usage : $0 SFS-DUMP-OUTPUT-FILE    REPORT-FILE-LOCATION-FILE"
    echo "NOTE : SFS-DUMP-OUTPUT-FILE has to be in non-CSV format"
    exit 1
fi

INPUT_SFSDUMP="$1"
INPUT_LOCATION="$2"


echo -n "1/6 : Sanity checking input files..."
if [ ! -s "${INPUT_SFSDUMP}" ]; then
    echo "Input file ${INPUT_SFSDUMP} does not exist"
    exit 1
fi
if [ ! -s "${INPUT_LOCATION}" ]; then
    echo "Input file ${INPUT_LOCATION} does not exist"
    exit 1
fi
n_files_sfsdump=`grep ^/ ${INPUT_SFSDUMP} | wc -l`
n_files_location=`grep ^/ ${INPUT_LOCATION} | wc -l`
if [ ${n_files_sfsdump} -eq ${n_files_location} ]; then
    echo -n "both have the same amount of files (${n_files_location}). "
else
    echo -n "sfs-dump has ${n_files_sfsdump} files whereas location report has ${n_files_location} files, this may be normal if the difference is small. "
fi
echo "Done."


echo -n "2/6 : Sanitize \"file-location\" input..."
cat ${INPUT_LOCATION} | awk 'BEGIN {rejected="temp-location-rejected.log"; accepted="temp-location-accepted.log"} { if ( $0 ~ "Missing -unit") { gsub(/Missing -unit/, "Missing-Cloud-Unit", $0); print $0 > rejected } else { if ($0 ~ "^/" ) print $0 > accepted } }'
if [ -s "temp-location-rejected.log" ]; then
    REJECTS_EXIST="yes"
    echo -n "Some files in location report sit in unavailable or deleted cloud units, you may need to re-run this script after fixing the issue and gathering a new location report. "
    cat temp-location-rejected.log temp-location-accepted.log | sed -e 's/\t/:\t/' | sort > temp-location-report-sorted.log
    rm temp-location-rejected.log
else
    cat temp-location-accepted.log | sed -e 's/\t/:\t/' | sort > temp-location-report-sorted.log
    REJECTS_EXIST="no"
fi
rm temp-location-accepted.log
echo "Done."


echo -n "3/6 : Sanitize \"sfs-dump\" input..."
cat ${INPUT_SFSDUMP} | grep ^/ | sort > temp-sfs-dump.log
echo "Done."


echo -n "4/6 : Merging information for sfs-dump and location report..."
join -1 1 -2 1 temp-sfs-dump.log temp-location-report-sorted.log > temp-merged-information.log
rm temp-sfs-dump.log
rm temp-location-report-sorted.log
n_files_combined=`grep ^/ temp-merged-information.log | wc -l`
if [ ${n_files_combined} -eq 0 ]; then
    echo "No files matched from input files. sfs-dump output must NOT be in CSV format. Exiting."
    rm temp-merged-information.log
    exit 1
fi
echo -n "Input files matched on ${n_files_combined} files. "
echo "Done."


echo -n "5/6 : Converting merged sfs-dump / location-report output to CSV format..."
cat temp-merged-information.log | grep ^/ | grep -v ^$ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size\ttier\tplacement_time"}
{
    colon_index = index($0, ":")
    filename = substr($0, 1, colon_index - 1)
    gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
    n = split(substr($0, colon_index + 1), fields, " ")
    print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19] "\t" fields[27] \
        "\t" fields[length(fields)-4] " " fields[length(fields)-3] " " fields[length(fields)-2] " " fields[length(fields)-1] " " fields[length(fields)]
}' > ${OUTPUT_FILENAME}
rm temp-merged-information.log
echo "Done."


echo -n "6/6 : Summary"
echo
echo
echo "Merging information from sfs-dump (${INPUT_SFSDUMP}) and location-report ${INPUT_LOCATION} output completed."
echo "Output file (${OUTPUT_FILENAME}) includes information for a total ${n_files_combined} files, out of ${n_files_sfsdump} in input sfs-dump, and ${n_files_location} in input location report."
if [ "${REJECTS_EXIST}" == "yes" ]; then
    echo "Note there are some files in disconnected or deleted cloud units, for which the \"tier\" field has been replaced with \"Missing-Cloud-Unit\"."
fi
echo
echo "Start of file shown below for your convenience :"
echo "===================="
head -5 ${OUTPUT_FILENAME}
echo "===================="
echo
echo "You may follow the instructions in https://www.dell.com/support/kbdoc/000081345 to process this CSV file in an spreadhseet"
echo
echo "Done."

exit 0


Voor gebruikers van Veritas NetBackup:

Veritas NetBackup (NBU) staat erom bekend bestanden in een Data Domain te maken met dubbele punten als onderdeel van de bestandsnamen. De volgende zijn bijvoorbeeld geldige NBU-bestandsnaampaden wanneer het Data Domain wordt gebruikt als back-endstorage voor NBU:

/data/col1/MTREE_NAME/POLICY-NAME_1400502741_C1_F1:1400502741:VM_PRD-02:4:1::
/data/col1/MTREE_NAME/POLICY-NAME_1400502741_C1_F2:1400502741:VM_PRD-02:4:1::
/data/col1/MTREE_NAME/POLICY-NAME_1400502741_C1_HDR:1400502741:VM_PRD-02:4:1::

Dit vormt een probleem met de bovenstaande voorbeeldscripts, omdat het dubbele punt wordt gebruikt als scheidingsteken voor de sfs_dump command output, en het uitvoeren van de bovenstaande scripts zou onjuiste resultaten opleveren.

In dergelijke gevallen moet het script worden bewerkt op een manier zoals hieronder:

--- iterate-dd-for-fs-sfs-dump.sh       2024-01-23 06:32:16.521409000 -0500
+++ iterate-dd-for-fs-sfs-dump-NBU.sh   2024-02-27 03:26:42.808246000 -0500
@@ -55,11 +55,11 @@
 cat sfs-dump-noCSV.txt | grep ^/ | grep -v ^$ | awk '
 BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size"}
 {
-    colon_index = index($0, ":")
-    filename = substr($0, 1, colon_index - 1)
+    colon_index = index($0, ":::")
+    filename = substr($0, 1, colon_index + 1)
     gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
     n = split(substr($0, colon_index + 1), fields, " ")
-    print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19]
+    print filename "\t" fields[3] "\t" fields[5] "\t" fields[7] "\t" fields[11] "\t" fields[13] "\t" fields[15] "\t" fields[18] "\t" fields[20] "\t"
 }' > sfs-dump-CSV.csv
 echo "Done."

Terwijl de wijzigingen worden gedeeld voor het script om te itereren over alle MTrees in een Data Domain om per MTree te trekken sfs_dump data, zijn de wijzigingen hetzelfde voor het andere script. Maar omdat dit ook het geval is voor de scripts zelf, worden de bovenstaande wijzigingen door Dell geleverd zonder enige garantie, in de hoop dat ze nuttig zijn.

Getroffen producten

Data Domain

Producten

Data Domain
Artikeleigenschappen
Artikelnummer: 000081345
Artikeltype: Solution
Laatst aangepast: 08 jun. 2026
Versie:  26
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.