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

摘要: In dit artikel wordt uitgelegd hoe u de Data Domain CLI kunt gebruiken om de bestands- en directoryvermeldingen voor afzonderlijke MTrees of voor het bestandssysteem (FS) als geheel te dumpen. Zo kunnen gebruikers achterhalen wat er in de back-upapplicatie in Data Domain is opgeslagen. ...

本文章適用於 本文章不適用於 本文無關於任何特定產品。 本文未識別所有產品版本。

症狀

Het Data Domain 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
Als gevolg van recente wijzigingen in DDOS zijn de opdrachten die moeten worden gebruikt voor het verzamelen van lijsten met bestanden van Data Domain-systemen in de loop van de tijd gewijzigd. Deze zijn alleen beschikbaar via de DD CLI en zijn, afhankelijk van de versie:
  • Voor DDOS ouder dan 7.13.0.0, 7.10.1.15, 7.7.5.25 en 6.2.1.110
se sfs_dump
  • Voor DDOS gelijk aan of later dan 7.13.0.0, 7.10.1.15, 7.7.5.25, 6.2.1.110
filesys sfs-dump

原因

DDOS-releases 7.13.0.0, 7.10.1.15, 7.7.5.25 en 6.2.1.110 en hoger bieden geen toegang meer tot onderstaande opdrachten in SE-modus:
sfs_dump
De SE-modus, die nodig was om toegang te krijgen tot deze functionaliteit, is verouderd, zoals uitgelegd in DSA-2023-412: Dell Technologies PowerProtect beveiligingsupdate voor meerdere beveiligingslekken

Voor een overgangsperiode is een deel van de functionaliteit in de oude sfs_dump commando in SE-modus was niet beschikbaar, maar werd in een later stadium opnieuw geïntroduceerd. Vandaar dat deze KB in elk geval probeert uit te leggen wat de verschillen zijn en hoe om te gaan met commando-uitvoer.

解析度

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).

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). Een gebruiker moet de SSH-client zo configureren dat uitvoer wordt gelogd naar een tekstbestand op de clientcomputer (waarbij moet worden gewaarborgd dat er geen limiet is in het aantal gelogde regels of de individuele regellengte). Het logbestand van de SSH-sessie (en dus de DD-bestandslijsten) wordt niet geschreven op het Data Domain, maar op de (meestal) desktopcomputer van waaruit de SSH-verbinding wordt gestart.

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 systemen met 1 miljoen bestanden.

De exacte opdracht die moet worden uitgevoerd vanuit de DD CLI om lijsten met bestanden te verzamelen, hangt af van de gebruikte DDOS-versie, ze worden hieronder samengevat.
 

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 SE-modus te gaan, en in plaats daarvan te upgraden naar de nieuwste LTS DDOS-release die beschikbaar is.

Zorg ervoor dat u bij Data Domain bent aangemeld als administrator, dat er een SSH-client 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 u de bestandsgegevens wilt hebben:
#### 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 Het formaat is identiek aan het hierboven weergegeven formaat voor latere releases. In gevallen waarin -c is gebruikt (voor CSV-uitvoer), is de indeling als volgt (inclusief een header 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:

Deze release biedt niet langer toegang tot sfs_dump in de SE-modus (het volgende is niet beschikbaar):
se sfs_dump
SE-modus is verouderd vanwege gevonden beveiligingsproblemen. De alternatieve opdracht die u kunt gebruiken staat hieronder. Let op de iets andere opdrachtnaam en dat in dit geval de MTree die moet worden vermeld na het trefwoord "MTree" komt:
# filesys sfs-dump mtree <mtree-path>
Voor releases in de kop wordt deze opdracht sfs-dump, vergeleken met se sfsa_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
Voor klanten in deze releases, als ze alle bestandsdetails van de MTrees moeten dumpen om te archiveren, moet men de hele lijst met MTrees in de Data Domain FS herhalen en de opdracht één keer uitvoeren voor elk van hen. Een gebruiker kan een lijst met MTrees in het systeem krijgen door het volgende uit te voeren:
# mtree list
De uitvoer van de onderstaande opdracht is identiek aan die van de vorige se sfs_dump bij gebruik zonder de -c .
filesys sfs-dump
Zorg ervoor dat u bij het Data Domain bent aangemeld als administrator, met een SSH-client die is geconfigureerd om uitvoer naar schijf te schrijven, en voer vervolgens de volgende opdracht uit voor elke MTree waarvoor u de bestandsgegevens wilt invoeren:
# filesys sfs-dump mtree <mtree-path>

Als u de bestandsgegevens voor meer dan één MTree krijgt, kiest u bij uw 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.

Als alternatief kunt u het verzamelen van de uitvoer op een onbeheerde manier uitvoeren door de opdracht via SSH als volgt uit te voeren:

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

Vanwege de vraag van de klant zijn sommige functies in de oude se sfs_dump zijn opnieuw ingevoerd en zijn nu beschikbaar voor de filesys sfs-dump commando, namelijk:
  • 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
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 te verwerken sfs_dump of filesys sfs-dump Gegevens om te zetten in 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 hebben we een bestand met de oorspronkelijke grootte van 136.794 bytes, dat, nadat het door de Data Domain FS-opnamepijplijn is doorgegeven, wordt 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 (wat we 'gcomp' of globale compressie noemen) is een factor x9,09 (136.794 tot 15.045 bytes)
  • De lokale compressie van het bestand (wat we 'lcomp' noemen, 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)
Beurtelings 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 we dezelfde berekeningen maken als voor het vorige:
  • De bestandsdeduplicatie (wat we 'gcomp' of globale compressie noemen) is een factor x0,99 (33.554.431 tot 33.668.007 bytes)
  • De lokale compressie van het bestand (wat we 'lcomp' noemen, 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 "pre-comp-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:
  • De gcomp en lcomp bepalen 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 data (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 kunt u de niet-CSV-uitvoer rechtstreeks verwerken.

Een niet-CSV-bestand converteren sfs_dump uitvoer in een die identiek is aan wat sfs_dump -c zou hebben afgedrukt, kunt u de volgende Linux-opdrachtregel gebruiken:
# 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 we kunnen niet garanderen dat ze voor u werken en we bieden geen support voor hen, omdat ze buiten de reikwijdte van de ondersteuning vallen.


CSV-geformatteerd importeren sfs_dump uitvoer naar 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 uw nieuwe spreadsheet wordt aan u gepresenteerd met een mooie opmaak en de veldkoppen worden omgezet in zoek- en filterkoppen.
De gegevens in de spreadsheet zijn al bruikbaar, je kunt dingen doen zoals een getalfilter toepassen op numerieke velden zoals grootte (om alleen bestanden boven een bepaalde grootte weer te geven), of een tekstfilter toepassen op het naamveld, zodat alleen bestanden in de Data Domain-bestandsdetailsuitvoer 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 bevatten in de kolommen A tot en met I. 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.

Extra berekende velden toevoegen

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. U kunt het 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, kunt u in plaats daarvan een verkorte vorm van de formule gebruiken. 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, nadat u het teken "gelijk aan" = in de cel hebt getypt om te beginnen met het bewerken van de cel:
(((B2/1000000000+(-6*3600))/86400)+25569)
(((B2/1000000000)/86400)+25569)
Opmerking: Als u tekst in J2 plakt zonder eerst de cel in de bewerkingsmodus te zetten (so to call), overschrijft u de opmaak van de cel. U kunt de formule ook 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 (datum) in te stellen

Compressie-informatie

U kunt kolommen toevoegen voor de compressiegegevens per bestand door te gaan zoals hierboven is uitgelegd. Deze keer tonen we de formules inclusief de "=", dus u moet de hele tekst kopiëren en Speciaal plakken 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.
U kunt nu Excel gebruiken om naar wens te filteren of te sorteren om over uw 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.

其他資訊

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 uw sfs_dump uitvoer bevat te veel bestanden voor uw versie van Excel of wilt u gegevens in kleinere bits verwerken voor prestaties, u kunt proberen de procedure één keer uit te voeren voor elke MTree, zodat u meerdere spreadsheets voor het systeem hebt.

Zelfs een enkele MTree sfs_dump De uitvoer kan te groot zijn voor Excel, in welk geval u de opdracht voor het splitsen van Linux (of een andere vergelijkbare tool om een groot tekstbestand online te splitsen) kunt gebruiken om meerdere 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


Te gebruiken script "filesys sfs-dump" voor het dumpen van bestandsgegevens voor hele 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 uitvoer.

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.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 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 u het script bewerken 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 aan u verstrekt zonder enige garantie, in de hoop dat ze nuttig zijn.

受影響的產品

Data Domain

產品

Data Domain
文章屬性
文章編號: 000081345
文章類型: Solution
上次修改時間: 27 5月 2025
版本:  21
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。