Data Domain: Sådan får du vist en liste over filer på Data Domain File System, sfs-dump

Summary: I denne artikel forklares det, hvordan du bruger Data Domain CLI til at dumpe fil- og mappeoversigter for individuelle MTrees eller for filsystemet (FS) som helhed. Dette gør det muligt for brugerne at finde ud af, hvad der er gemt i Data Domain fra sikkerhedskopieringsprogrammet. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Data Domain er en passiv backend-lagerenhed. Den gemmer kun, hvad sikkerhedskopieringsprogrammerne beder den om, og sletter kun data, når sikkerhedskopieringsprogrammet beder den om at slette filer. Data Domain opretter eller sletter aldrig filer alene.

Uanset den indtagne protokol indeholder Data Domain FS kun filer (i mapper), der er organiseret i MTrees. Alle filerne (både for filer i Active og i alle cloudenheder) deler det samme rod- og navneområde. Der findes et enkelt navneområde, hvilket betyder, at fil- og mappelister inkluderer filerne i Active- og cloud-enhederne uden nogen forskel.

At få en detaljeret fildump kan være nyttigt af grunde som:
  • Foretag en sammenligning med en liste over filer, der administreres af et sikkerhedskopieringsprogram, for at kontrollere, om der er filer, der stammer fra det pågældende sikkerhedskopieringsprogram.
  • En liste over alle filer over en bestemt aldersgrænse for at afgøre, om sikkerhedskopieringsprogrammet håndhæver bøden for sikkerhedskopiering
På grund af de seneste ændringer, der er foretaget i DDOS, har kommandoerne, der skal bruges til at indsamle lister over filer fra Data Domain-systemer, ændret sig over tid. Disse er kun tilgængelige fra DD CLI og vil afhængigt af versionen være:
  • For DDOS tidligere end 7.13.0.0, 7.10.1.15, 7.7.5.25 og 6.2.1.110
se sfs_dump
  • For DDOS, der er lig med eller senere end 7.13.0.0, 7.10.1.15, 7.7.5.25, 6.2.1.110
filesys sfs-dump

Cause

DDOS-versionerne 7.13.0.0, 7.10.1.15, 7.7.5.25 og 6.2.1.110 og nyere giver ikke længere adgang til nedenstående kommando i SE-tilstand:
sfs_dump
SE-tilstand, som var nødvendig for at få adgang til denne funktionalitet, er blevet udfaset som forklaret i DSA-2023-412: Dell Technologies PowerProtect-sikkerhedsopdatering til flere sikkerhedssårbarheder

I en overgangsperiode vil noget af funktionaliteten i den gamle sfs_dump kommando i SE-tilstand var ikke tilgængelig, men blev genindført på et senere tidspunkt. Derfor forsøger denne KB at forklare forskellene, og hvordan man håndterer kommandooutput i hvert enkelt tilfælde.

Resolution

Hvis du vil have en detaljeret liste over filer i et Data Domain fra CLI, og i sidste ende processen til at få oplysninger om filer, der er gemt i Data Domain, afhænger det af, at DDOS-udgivelsen køres. Når tekstoutputfilen med fildetaljerne er indsamlet, er behandlingen af outputtet til en mere brugbar form altid den samme, da outputformatet for alle DDOS-udgivelser er det samme (eller kan konverteres til et fælles format ved hjælp af et script).

Fælles for alle DDOS-udgivelser er kravet om at logge på Data Domain som administratorbruger, og gøre det ved hjælp af en SSH-klient, der understøtter logning af konsoloutputtet til en tekstfil på klientsiden (PuTTY fungerer godt til dette). En bruger skal konfigurere SSH-klienten, så den logger output til tekstfil på klientcomputeren (hvilket sikrer, at der ikke er nogen grænser for antallet af loggede linjer eller den enkelte linjelængde). SSH-sessionslogfilen (og dermed DD-filoversigterne) skrives ikke på Data Domain, men på den (typisk) stationære computer, som SSH-forbindelsen startes fra.

Når du indsamler SSH-sessionsoutputtet, skal du sørge for at give filen et meningsfuldt navn (f.eks. tilføje Data Domain-værtsnavnet og MTree-navnet, der skal dumpes) og sikre, at der er tilstrækkelig plads til logfilen, hvilket kan være ca. 200 MB for systemer med 1 million filer.

Den nøjagtige kommando, der skal køres fra DD CLI for at indsamle lister over filer, afhænger af den anvendte DDOS-version, de er opsummeret nedenfor.
 

DDOS-udgivelser før 7.13.0.0, 7.10.1.15, 7.7.5.25 og 6.2.1.110:

Disse udgivelser understøtter stadig se sfs_dump kommando (og -c mulighed for at udskrive fildetaljer direkte som CSV uden yderligere behandling), selvom det frarådes at gå til SE-tilstand af sikkerhedsmæssige årsager, og i stedet opgradere til den nyeste LTS DDOS-udgivelse, der er tilgængelig.

Sørg for, at du er logget på Data Domain som administratorbruger med en SSH-klient konfigureret til at skrive output til disk, skift til SE-rettighedstilstand, og kør derefter følgende kommando for hvert MTree, du vil have filoplysningerne for:
#### 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>
Kommando i disse versioner kan også producere listen for alle filerne i FS på én gang (i stedet for et MTree ad gangen). Hvis du vil dumpe filoplysningsoplysningerne for alle filer i FS, skal du lade MTree-stien være væk:
# se sfs_dump -c
Når du er færdig, skal du sørge for at stoppe logning af SSH-klienten på disken og sætte filerne til side til videre behandling.

Format for kommandooutputtet er en enkelt linje for hver fil. Hvis du ikke bruger -c Formatet er identisk med det, der er vist ovenfor for senere udgivelser. I tilfælde, hvor -c blev brugt (til CSV-output), er formatet sådan (inklusive en overskrift vist som den første linje i output):
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-versionerne 7.13.0.0, 7.10.1.15, 7.7.5.25 og 6.2.1.110 eller nyere:

Denne version giver ikke længere adgang til sfs_dump fra SE-tilstand (følgende er ikke tilgængeligt):
se sfs_dump
SE-tilstand udfases pga. konstaterede sikkerhedsproblemer. Den alternative kommando, der skal bruges, er nedenfor. Bemærk det lidt anderledes kommandonavn, og at MTree, der skal vises, i dette tilfælde går efter nøgleordet "MTree":
# filesys sfs-dump mtree <mtree-path>
For udgivelser i overskriften sammenlignes denne sfs-dump-kommando med se sfsa_dump:
  • Den nye kommando understøtter ikke -c mulighed for at dumpe filoplysninger i CSV-format (kolonne)
  • Den nye kommando kan kun køre et MTree ad gangen. Der er ingen understøttelse af at køre mod hele FS i en enkelt påkaldelse
For kunder i disse udgivelser, hvis de har brug for at dumpe alle MTrees' fildetaljer til fil, skal man gentage hele listen over MTrees i Data Domain FS og køre kommandoen én gang for hver af dem. En bruger kan få en liste over MTrees i systemet ved at køre:
# mtree list
Output fra nedenstående kommando er identisk med det for foregående se sfs_dump kommando, når den bruges uden -c .
filesys sfs-dump
Sørg for, at du er logget på Data Domain som administratorbruger med en SSH-klient konfigureret til at skrive output til disk, og kør derefter følgende kommando for hvert MTree, du vil have filoplysningerne for:
# filesys sfs-dump mtree <mtree-path>

Hvis du får filoplysningerne for mere end ét MTree, skal du vælge at udføre alle dumps til den samme outputfil eller skifte SSH-klientkonfigurationen til en anden fil, før du kører kommandoen for hver af MTrees.

Alternativt kan du indsamle outputtet på en uovervåget måde ved at køre kommandoen gennem SSH på denne måde:

#### 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

I begge tilfælde har outputoplysninger en linje for hver fil med følgende format:

/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-versionerne 8.1.0.0, 7.13.1.10, 7.10.1.30 og 7.7.5.40 eller nyere:

På grund af kundernes efterspørgsel er nogle af funktionerne i den gamle se sfs_dump kommandoen er blevet genindført og er nu tilgængelig for filesys sfs-dump kommando, nemlig:
  • Muligheden for at tilføje -c mulighed, så output udskrives i en CSV-lignende formateret version (felter adskilt af kolonner)
  • Muligheden for at køre fildumpoplysningerne for alle filerne i FS på én gang
Kommandoen fortsætter med at være den samme som for de umiddelbart tidligere versioner, med de nævnte forbedringer, opsummeret nedenfor:
 
#### 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

Denne kommando bliver ved med at være "skjult", så den ikke vises i den interaktive CLI-hjælp eller i dokumenterne.
 

Sådan behandles sfs_dump eller filesys sfs-dump Data til noget nyttigt:

Formatet for de enkelte filer, der rapporteres i output, når du bruger filesys sfs-dump eller sfs_dump uden -c Indstillingen kan opsummeres som følger:
/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
I eksemplet ovenfor har vi en fil med den oprindelige størrelse som 136.794 byte, som efter at være blevet passeret gennem Data Domain FS-indtagelsespipelinen beregnes til at bruge 15.045 byte efter deduplikering, og 8760 byte, når de unikke segmenter for filen komprimeres, før de skrives til disken. Herfra:
  • Fildeduplikeringen (det, vi kalder "gcomp" eller global komprimering) er en faktor x9.09 (136.794 til 15.045 bytes)
  • Filens lokale komprimering (det vi kalder "lcomp" til lokal komprimering) er en faktor x1,72 (15.045 til 8760 bytes)
  • Den samlede estimerede filstørrelsesreduktion (kendt som "komprimeringsforhold") er en faktor x15,62 (136.794 til 8760 bytes)
Skiftevis sfs_dump -c Output er ens, men mere kortfattet:
/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)
I dette eksempel kan vi foretage de samme beregninger som for den foregående:
  • Fildeduplikeringen (det, vi kalder "gcomp" eller global komprimering) er en faktor x0,99 (33.554.431 til 33.668.007 bytes)
  • Filens lokale komprimering (det, vi kalder "lcomp" til lokal komprimering) er en faktor x0.98 (33.668.007 til 34.208.564 bytes)
  • Den samlede estimerede filstørrelsesreduktion (kendt som "komprimeringsforhold") er en faktor x0,98 (33.554.431 til 34.208.564 bytes)
Sammenlignet med den fil, der vises for nej -c For eksempel opnår denne ingen deduplikering (ingen overflødige segmenter) eller nogen lokal komprimering. Dette indikerer, at filen er komprimeret.
 
Advarsel: Data i outputfilerne vedrørende anden størrelse end "pre-comp-størrelse for filen i bytes" skal tages som omtrentlige og kan ikke fuldt ud stole på. Metadata for filer oprettes på tidspunktet for filindtagelse, og selvom det er korrekt, opdateres det ikke på noget tidspunkt siden, så det bliver forældet over tid. Også, at en fil er post_lc_size er en given mængde betyder ikke, at den diskplads, der bruges af den fil, er identisk med denne mængde, da der er masser af FS-niveau omkostninger, der ikke overvejes på et pr. Filniveau. Begrænsningerne er de samme som for dem, der allerede er kendt for kommandoen:
mtree show compression
Udnyttelse af oplysningerne i outputfilerne ovenfor består i at behandle de numeriske data på en måde, der passer til brugerens mål. Et par eksempler på brugssager kan være:
  • Bestemmelse af gcomp og lcomp for filer, der svarer til en bestemt sti (hvis en sti kan matches med en bestemt sikkerhedskopieringsserver, klient, politik, job osv.)
  • Beregning af, hvor mange data (pre-comp) der er gemt på en given placering, som er ældre end et givet tidsrum (for at bestemme forældreløse eller fejlfinding problemer med sikkerhedskopieringsprogram, der ikke udløber sikkerhedskopier til tiden)
  • Enhver anden type stat, man kan have brug for
At have et enkelt sæt instruktioner og kompensere for tabet af sfs_dump -c mulighed i nyere udgivelser er vores anbefalinger at få outputdataene konverteret til CSV-formatet ovenfor og derefter bruge filen i CSV-format til at blive behandlet yderligere, men afhængigt af dine færdigheder kan du behandle ikke-CSV-outputtet direkte.

Sådan konverteres en ikke-CSV-fil sfs_dump output til en, der er identisk med hvad sfs_dump -c ville have udskrevet, kan du bruge følgende Linux-kommandolinje:
# 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
 
Bemærk: Kommandoen ovenfor ignorerer alt i inputfilen (sfs-dump-noCSV.txt), der ikke starter med en skråstreg, da kun linjer, der starter med "/data", skal indeholde fildetaljer til behandling. Outputfiler har en første linje som overskrift og bruger tabulatortegnet (\t) som feltafgrænser.

Alt ud over dette punkt leveres til brugerne, som de er. Der er ingen garanti eller forpligtelse fra Dells side for de instruktioner, der er delt nedenfor. Indhentning af intelligens fra fillistedetaljer er en brugers opgave, og hvordan man opnår det afhænger helt af det værktøjssæt, der bruges til minedrift af data i fildump-output, det mål, der skal nås, og brugerens egen ekspertise i behandling af data fra kommandooutputtet beskrevet ovenfor. En bruger kan vælge at bruge Linux-kommandolinjebehandling af tekstfiler til at dumpe nogle aggregater, andre kan vælge at producere input til kortlægningsværdier ved hjælp af "gnuplot", mens de fleste brugere menes at søge en mere enkel (men begrænset) tilgang til at opbygge et regneark fra CSV-filen til analyse.

Dell har bestræbt sig på at sikre, at nedenstående instruktioner er korrekte, virker og er nyttige for brugerne, men vi kan ikke garantere, at de virker for dig, og vi yder ikke support til dem, da de ligger uden for supportperioden.


Import af CSV-formateret sfs_dump output i et regneark (eksempel til Excel):

Når CSV-versionen af listen med filoplysninger er tilgængelig, er en måde at få intelligens fra dataene på at indlæse dataene i et regnearkssoftware. Microsoft Excel bruges som et eksempel, selvom instruktionerne skal være ens for anden software. Følg de næste trin for at få CSV-tekstfilen importeret til Excel som CSV:
  1. Åbn Excel, og opret et nyt tomt regneark
  2. Gå til menuen Data øverst, og klik derefter på ikonet med navnet Fra tekst / CSV
  3. Brug dialogboksen til at finde fildataene i CSV-format (sfs-dump-CSV.csv som i eksemplet på konverteringsscript fra ikke-CSV-format), skal du vælge det og klikke på Importér
  4. Hvis inputfilformatet er korrekt, og Excel kan tegne formatet fra de første 200 linjer (hvilket det skal), skal en dialogboks vise forhåndsvisningen af regnearket, der skal genereres. Gennemse oplysningerne for at sikre, at de ser godt ud, herunder at den første linje registreres som overskrifterne
  5. Hvis alt ser godt ud med forhåndsvisningen, skal du klikke på knappen Indlæs nederst i dialogen, og dit nye regneark præsenteres for dig med flot formatering, og feltoverskrifterne omdannes til søge- og filteraktiverede.
Dataene i regnearket er allerede nyttige, du kan gøre ting som at anvende et talfilter på numeriske felter såsom størrelse (for kun at vise filer over en given størrelse) eller anvende et tekstfilternavnefeltet, så kun filer i Data Domain-fildetaljerne, der matcher et givet mønster (kun dem, der starter med stien til et bestemt MTree) vises, og foretage andre afledte beregninger ud fra disse data.

Et korrekt importeret Excel-regneark skal indeholde data i kolonne A til I. Hvis data kun findes i kolonne A, men strækker sig hen over skærmen, skal du lukke Excel og prøve trin 1 til 5 ovenfor.

Tilføj ekstra beregnede felter

Regnearket kan udvides med så mange beregnede felter, som en bruger har brug for. Et interessant felt at have tilføjet er den menneskeligt læsbare dato og klokkeslæt, der svarer til filernes mtime (sidste ændringstid, normalt det tidspunkt, det blev skrevet til DD). Det kan også være nyttigt at beregne og vise nogle komprimeringsværdier pr. fil, afhængigt af hvad dataene bruges til. De nye kolonner udfyldes automatisk ved hjælp af Excel-formler som beskrevet nedenfor.

Konvertering af tidsstempel:

Sådan får du UNIX-lignende tidsstempel konverteret til menneskelig læsbar dato og klokkeslæt:
  1. Højreklik på celle J2, og vælg "Formater celler"
  2. På listen "Kategori" til venstre skal du vælge "Brugerdefineret".
  3. Hvis du ikke allerede er der, skal du oprette formatet til det menneskeligt læsbare dato-klokkeslæt-format (eksemplet indeholder EST-strengen i slutningen. Du kan erstatte den med din tekstmæssige tidszonedefinition eller fjerne "EST" helt, hvis du ikke er interesseret): åå-mm-dd hh:mm:ss "EST"
  4. Klik på "Ok", når du er færdig. Nu har celle J2 et brugerdefineret format til data.
  5. Føj følgende formel til celle J2. I formlen skal du erstatte (-6*3600) med den korrekte tidszoneforskel, der svarer til UTC for den konfigurerede tidszone i Data Domain på tidspunktet for hentning af "sfs-dump"-dataene. For eksempel er østamerikansk tid 6 timer bag UTC om sommeren, deraf "-6" her.
Hvis du ikke er interesseret i en sådan præcis tidsjustering, kan du bruge en forkortet form af formlen i stedet. Den nemmeste måde at få formlen tilføjet og undgå, at dato- og klokkeslætsformatet overskrives, er at kopiere en af de to versioner nedenfor og indsætte i celle J2, når du har skrevet tegnet "lig med" = i cellen for at begynde at redigere cellen:
(((B2/1000000000+(-6*3600))/86400)+25569)
(((B2/1000000000)/86400)+25569)
Bemærk: Hvis du indsætter tekst i J2 uden først at sætte cellen i redigeringstilstand (så at kalde), overskriver du cellens format. Alternativt kan du indlede formlen med et "=", kopiere hele teksten og højreklikke på celle J2 for at indsætte speciel, derefter vælge Som tekst og klikke på OK. Det skal have samme effekt. Hvis dette blev gjort godt, gør Excel automatisk et par ting:
  • Indsæt formlen i celle J2 og også i hver eneste celle i resten af linjerne i regnearket 
  • Beregn formlen for hele regnearket, og vis dato- og klokkeslætsværdien i det konfigurerede format
  • Formater kolonnen smukt som de eksisterende, og få overskriften konfigureret som en dato med mulighed for at anvende datofiltre, det eneste du skal gøre er at indstille et egennavn til kolonnen (dato)

Oplysninger om komprimering

Du kan tilføje kolonner til komprimeringsoplysningerne pr. fil ved at gøre som forklaret ovenfor. Denne gang viser vi formlerne inklusive "=", så du skal kopiere hele teksten og indsætte speciel som tekst:
  • Kopiér følgende formel, og indsæt speciel som tekst i celle K2 for at oprette en kolonne til deduplikering pr. fil eller gcomp:
    =IF(H2=0,0,D2/H2)
  • Kopiér følgende formel, og indsæt speciel som tekst i celle L2 for at oprette en kolonne til lokal komprimering pr. fil eller lcomp:
    =IF(I2=0,0,H2/I2)
  • Kopiér følgende formel, og indsæt speciel som tekst i celle M2 for at oprette en kolonne til det samlede filkomprimeringsforhold pr. fil:
    =K2*L2
Giv de nye kolonner et egennavn. Hvis komprimeringsværdierne skal have et andet format (f.eks. for at begrænse antallet af decimaler), skal du gøre som i eksemplet for dato og klokkeslæt og angive det cellenumeriske format på forhånd, før du indsætter formlen.

Husk at holde dit arbejde sikkert ved at gå til menuen Filer og gøre. Gem som for at sikre, at typen for den gemte fil er angivet til Excel-projektmappe (*.xlsx), så formatering og filtrering bevares.

Når de beskrevne handlinger er udført, indeholder dit regneark følgende (relevante) kolonner:
  • A indeholder et filnavn
  • B indeholder datostemplet (i UNIX-epoken i nanosekunder) for, hvornår filen sidst blev skrevet
  • D er filens oprindelige størrelse
  • H er størrelsen efter global komprimering
  • Jeg er størrelsen efter global og lokal komprimering
  • J indeholder datostemplet for, hvornår filen sidst blev skrevet, i menneskelig læsbar form
  • K indeholder den globale komprimering (deduplikering) for filen
  • L indeholder den lokale komprimering for filen
  • M indeholder den samlede komprimering for filen
Alle filstørrelser er i bytes.
Du kan nu bruge Excel til at filtrere eller sortere efter behov for at rapportere om dine data.
  • Hvis du f.eks. kun vil vise filer i MTree /data/col1/backup, som er over 30 dage gamle:
  1. Klik på pil ned i overskriften Navn, vælg Tekstfiltre, start derefter med, og skriv /data/col1/backup/ ind i kassen. Den efterfølgende skråstreg er vigtig. Klik på OK
  2. Klik på pil ned i overskriften Sidst skrevne dato, vælg Datofiltre og derefter Før. Brug datovælgeren til højre i dialogboksen til at vælge en dato for 30 dage siden. Klik på OK.
Statuslinjen nederst viser, hvor mange rækker der matcher dette valg.

Additional Information

Kommando til at dumpe filplacering (aktiv og sky)

Der er en måde at dumpe listen over filer med en angivelse af, hvilke der er i Aktive, og hvilke i eventuelle skyenheder, hvilket er:
#### 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

Output i begge tilfælde er af følgende 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
-------------------------      ----------------------      ----------------------      ---------------------------
Kommandoen ovenfor har dog en tendens til at være utilstrækkelig til de fleste formål, da størrelsen f.eks. er i enheder, der kan læses af mennesker (snarere end i bytes eller MiB eller en hvilken som helst indstillet multiplikator), og placeringstiden svarer til det tidspunkt, hvor sikkerhedskopierne blev foretaget til Data Domain for filer i Active, men det gør den ikke for filer i Cloud ("Placeringstid" for filer i skyen er den dato og det klokkeslæt, hvor filen blev flyttet til Cloud-enhed).

Vær også opmærksom på, at nedenstående kommando (og scriptet konverterer fra ikke-CSV sfs_dump) Outputter data i kolonner, der er adskilt af tabulatorer. Tabulatortegnene, der findes i outputtet, skal gemmes i logfilen, ellers kan trinnene beskrevet ovenfor for at importere CSV-filen til Excel ikke adskille felterne korrekt.
sfs_dump -c
De instruktioner, der gives, forudsætter et rimeligt kendskab til Excel, men kan oversættes til anden regnearkssoftware.

Moderne versioner af Excel tillader mange rækker, men husk, at hver fil på sfs_dump output, der skal behandles, er en enkelt linje, så Excel skal hurtigt kunne behandle og opdatere et regneark med så mange rækker som filer i dit datasæt. Den hårde grænse er lidt over 1 million rækker, men selv ved filtællinger langt under det, er Excel muligvis ikke det passende til jobbet (for langsomt).

Hvis din sfs_dump output har for mange filer til din version af Excel eller ønsker at behandle data i mindre bits for ydeevne, kan du prøve at køre proceduren en gang for hvert MTree, så du har flere regneark til systemet.

Selv et enkelt MTree sfs_dump output kan være for stort til Excel, i hvilket tilfælde du kan bruge split Linux-kommandoen (eller ethvert andet lignende værktøj til at opdele en stor tekstfil online slutgrænser) til at have flere mindre CSV-filer til at behandle en ad gangen, for eksempel:
# 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)

Hvis du f.eks. vil opdele en inputtekstfil i bidder på 200 MiB hver, så stykkerne navngives, når de starter:

"sfs_dump.out.split"

Kør derefter:

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


Script, der skal bruges "filesys sfs-dump" til hel FS-dumping af fildata

For de få udgivelser, der ikke havde mulighed for at dumpe fildetaljer i CSV-format, leveres scriptet, der vises længere nedenfor, som det er (uden garanti) af Dell til brugere for at opnå et lignende resultat ved at behandle ikke-CSV sfs_dump udgang.

Da de udgivelser, der ikke understøtter CSV-output, også er dem, der ikke tillader at dumpe oplysningerne for alle filer i FS som helhed, bruger scriptet SSH til at oprette forbindelse til måldatadomænet for at gentage listen over MTrees, køre fildumpen et MTree ad gangen for at indsamle fillisten for alle MTrees, omdannes derefter til et CSV-format, der er passende til yderligere behandling:
#!/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.60.36.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 til at kombinere outputtet af ikke-CSV "sfs-dump" og "filesys report generate file-location" i en CSV-fil med alle de samme oplysninger som scriptet ovenfor og pr. filniveau og oplysninger om placeringstid

Følgende script leveres, som det er (uden garanti) af Dell til brugerne, som et middel til forhåbentlig at tilføje værdi til outputtet fra sfs_dump og filesys rapport generere filplaceringskommandoer ovenfor. En bruger kan filtrere filer fra baseret på niveau (Active eller en af de to konfigurerede cloudenheder) for at få en mere præcis indsigt i fildistribution pr. niveau ved at tilføje oplysninger om niveauplacering og placeringstid for hver filpost i output-CSV.

Scripts forventer sfs-dump (ikke sfs_dump -c) output som den første parameter, og filesys-rapporten genererer filplaceringsoutput som den anden. Output skrives til et hårdt kodet filnavn "sfs-dump-output-tiers.csv", som kan ændres i selve scriptet.

Outputtet kan behandles ved hjælp af Excel på samme måde som forklaret ovenfor.
#!/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


For Veritas NetBackup-brugere:

Veritas NetBackup (NBU) er kendt for at oprette filer i et Data Domain med kolontegn som en del af filnavnene. Følgende er f.eks. gyldige NBU-filnavnstier, når Data Domain bruges som backend-lager for 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::
Dette udgør et problem med eksempelscriptene ovenfor, da kolontegnet bruges som en afgrænser for sfs_dump kommandooutput, og kørsel af scripts ovenfor ville give forkerte resultater.

I sådanne tilfælde skal du redigere scriptet på en måde som nedenfor:
--- 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."
Mens ændringerne deles, så scriptet kan gentages over alle MTrees i et Data Domain for at trække pr. MTree sfs_dump data, er ændringerne de samme for det andet script. Men som det også er tilfældet for selve scripts, leverer Dell ovenstående ændringer til dig uden nogen garanti i håb om, at de er nyttige.

Affected Products

Data Domain

Products

Data Domain
Article Properties
Article Number: 000081345
Article Type: Solution
Last Modified: 27 May 2025
Version:  21
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.