Was ist die Backup Database ?

Antworten
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Was ist die Backup Database ?

Beitrag von Nobby1805 »

Nachdem der Client-Backup und die Backup-Database in letzter Zeit häufig Thema von Threads war möchte ich im Folgenden meine bisherige Erkenntnisse mit euch teilen

Vorab: die Backup Database ist keine Datenbank im klassischen Sinn, sondern eine Menge von Dateien in dem Verzeichnis D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}

Client unabhängig:
NameBeschreibungGröße
Commit.datvermutlich ein Semaphore7680
Control.4096.datVerwaltung der Datenfiles ??4096
Data.4096.n.dat ..... n = (0, 1, 2, …)die gesicherten Clusterbis zu 4 GB
GlobalCluster.4096.datvar. (>8 GB)
GlobalClusterLatest.4096.dat??14336
Index.4096.datvar. (>2 GB)
Für jeden Client:
{GUID}.Machine.configdatbeschreibt den Client4608
Name.VolumeConfig.configdatbeschreibt die Partitionen des Clients4608
Name.BackupSet.DatAuflistung aller vorhandenen Sicherungen für diesen Client> 4608
Für jede Partition jedes Clients
Name.LW.Volume.datInformationen zu allen Sicherungen dieser Partitionvar.
Name.LW.VolumeCluster.4096.datvar. groß
Name.LW.FileRecordHash.4096.datHash-Codes der File-Sätze im $MFTvar.
Wenn Partition Bootpartition ist: Name.LW.Boot.datMBR der Partition5120 oder 5632

Bei manchen Clients zusätzlich:
Name.LW.VolumeClusterLatest1.4096.datvar. groß
Name.LW.VolumeClusterLatest2.4096.datvar.
Name.LW.VolumeClusterLatest3.4096.datvar.

Wobei der Clientname Name ggf. mit -1, -2, ... ergänzt wird wenn derselbe Name für unterschiedliche GUIDs gefunden wird
Für die Partitionsbezeichnung LW habe ich bisher entweder den Laufwerksbuchstaben oder PQSERVICE

In den Datenfiles ist XML-artig die Struktur des Inhaltes abgelegt .. leider stimmt diese Information nicht immer 100 %

commit.dat

Code: Alles auswählen

<File Type="Commit">
<Header>
	<Field Type=""boolean"" Name=""Committed"" />
</Header>
<Record>
	<Field Type=""string"" Name=""FileName"" />
	<Field Type=""int"" Name=""StreamIndex"" />
</Record>
</File>
Control.4096.dat

Code: Alles auswählen

<File Type="Control">
<Header>
	<Field Type=""int"" Name=""BytesPerCluster"" />
	<Field Type=""int"" Name=""NextIndex"" />
	<Field Type=""int"" Name=""NextDataOffset"" />
</Header>
</File>
Data.4096.n.dat

Code: Alles auswählen

<File Type="Data">
<Header>
	<Field Type=""int"" Name=""BytesPerCluster"" />
	<Field Type=""int"" Name=""Index"" />
	<Field Type=""int"" Name=""DataSize"" />
</Header>
</File>
GlobalCluster.4096.dat

Code: Alles auswählen

<File Type="GlobalCluster">
<Header>
	<Field Type=""int"" Name=""BytesPerCluster"" />
</Header>
<Record>
	<Field Type=""fixedbinary"" Length=""16"" Name=""Hash"" />
	<Field Type=""int"" Name=""DataIndex"" />
</Record>
</File>
Die Datei besteht aus dem Header von 4096 Byte, in dem einige Pointer und die o.a. Beschreibung stehen.
Danach folgen Sätze von 262.144 Byte Länge (256 KByte) in denen eine Datenstruktur wie oben beschrieben wurde zu erkennen ist: 16 Byte für den Hash und eine variable Anzahl Byte für den DataIndex, welcher vermutlich ein Index in die zugehörige Data.4096.nnn.dat ist. Interessanterweise sind entweder die gerade Satznummer oder die ungeraden Satznummer gültig, d.H. der Satz 1 wird gelesen, geändert und dann als Satz 2 geschrieben, Satz 3 wird gelesen und dann als Satz 4 geschrieben. Bei der nächsten Sicherung wird Satz 2 gelesen, geändert und als Satz 1 geschrieben, Satz 4 gelesen und als Satz 3 geschrieben (natürlich stark vereinfacht ohne Berücksichtigunge von Löschungen oder Einfügungen).
Wo man erfahren kann ob geraden oder ungeraden Sätze gültig sind ist unklar, ebenso ist noch unklar wie die Übergänge zwischen den 256 KByte-Sätzen behandelt werden.
Die Hash-Werte findet man in den Sätzen aufsteigend von 00 .. 00 bis FE .. FF

GlobalClusterLatest.4096.dat

Code: Alles auswählen

<File Type="GlobalClusterLatest">
<Header>
	<Field Type=""int"" Name=""BytesPerCluster"" />
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid"" />
	<Field Type=""fixedbinary"" Length=""16""  Name=""VolumeGuid"" />
	<Field Type=""string"" Name=""MachineFile"" />
	<Field Type=""string"" Name=""VolumeFile"" />
	<Field Type=""int"" Name=""Version"" />
</Header>
<Record>
	<Field Type=""fixedbinary"" Length=""16"" Name=""Hash"" />
	<Field Type=""int"" Name=""DataIndex"" />
</Record>
</File>
Index.4096.dat

Code: Alles auswählen

<File Type="Index">
<Header>
	<Field Type=""int"" Name=""BytesPerCluster"" />
</Header>
</File>
{GUID}.Machine.configdat

Code: Alles auswählen

<File Type="Machine">
<Header>
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid"" />
</Header>
<Record>
	<Field Type=""string"" Name=""FileName"" />
	<Field Type=""string"" Name=""MachineName"" />
	<Field Type=""string"" Name=""Description"" />
	<Field Type=""string"" Name=""Manufacturer"" />
	<Field Type=""string"" Name=""Model"" />
	<Field Type=""string"" Name=""IpAddress"" />
	<Field Type=""binary"" Name=""MacAddress"" />
	<Field Type=""boolean"" Name=""IsConfigured"" />
	<Field Type=""boolean"" Name=""AllVolumesConfigured"" />
	<Field Type=""boolean"" Name=""AnyVolumesIncluded"" />
	<Field Type=""boolean"" Name=""AnyVolumesEligible"" />
	<Field Type=""boolean"" Name=""JobsExist"" />
	<Field Type=""int"" Name=""LastGoodBackupTime"" />
	<Field Type=""int"" Name=""LastStatus"" />
	<Field Type=""int"" Name=""DiskUsed"" />  
</Record>
</File>
Name.VolumeConfig.configdat

Code: Alles auswählen

<File Type="VolumeConfig">
<Header>
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid"" />
</Header>
<Record>
	<Field Type=""fixedbinary"" Length=""16""  Name=""Guid"" />
	<Field Type=""varbinary"" Name=""UniqueId"" />
	<Field Type=""string"" Name=""MountPoint"" />
	<Field Type=""string"" Name=""VolumeLabel"" />
	<Field Type=""int"" Name=""Capacity"" />
	<Field Type=""int"" Name=""BytesUsed"" />
	<Field Type=""string"" Name=""FileSystem"" />
	<Field Type=""int"" Name=""BytesPerSector"" />
	<Field Type=""int"" Name=""BytesPerCluster"" />
	<Field Type=""int"" Name=""Location""/>
	<Field Type=""int"" Name=""BytesUsedForBackups"" />
	<Field Type=""int"" Name=""Status"" />
	<Field Type=""boolean"" Name=""IsEligibleForBackup"" />
	<Field Type=""int"" Name=""DiskSignature"" />
	<Field Type=""int"" Name=""Partition"" />
	<Field Type=""boolean"" Name=""BackupsExist"" />
	<Field Type=""int"" Name=""ExcludedFolderCount"" />
	<Field Type=""string"" Occurs=""ExcludedFolderCount""  Name=""ExcludedFolder"" />
	<Field Type=""string"" Name=""File"" />
</Record>
</File>

Name.BackupSet.Dat

Code: Alles auswählen

<File Type="BackupSet">
<Header>
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid"" />
</Header>
<Record>
	<Field Type=""int"" Name=""Index"" />
	<Field Type=""int"" Name=""Timestamp"" />
	<Field Type=""int"" Name=""Duration"" />
	<Field Type=""int"" Name=""BytesUsed"" />
	<Field Type=""boolean"" Name=""IsAutomatic"" />
	<Field Type=""string"" Name=""Description"" />
	<Field Type=""int"" Name=""Status"" />
	<Field Type=""int"" Name=""Retention"" />
	<Field Type=""int"" Name=""VolumeCount"" />
	<Field Type=""struct"" Occurs=""VolumeCount"" Name=""Volume"">
		<Field Type=""fixedbinary"" Length=""16"" Name=""Guid"" />
		<Field Type=""string"" Name=""Name"" />
	</Field>
	<Field Type=""int"" Name=""FailureReason"" />
	<Field TYpe=""stringarray"" Name=""FailureDetails"" />
</Record>
</File>
Name.LW.Volume.dat

Code: Alles auswählen

<File Type="Volume">
<Header>
  <Field Type="fixedbinary" Length="16" Name="MachineGuid"/>
  <Field Type="binary" Length="16" Name="VolumeGuid"/>
</Header>
<Record>
  <Field Type="int" Name="BackupSetIndex"/>
  <Field Type="int" Name="Version"/>
  <Field Type="varbinary" Name="UniqueId"/>
  <Field Type="string" Name="MountPoint"/>
  <Field Type="string" Name="VolumeLabel"/>
  <Field Type="string" Name="FileSystem"/>
  <Field Type="int" Name="BytesPerSector"/>
  <Field Type="int" Name="BytesPerCluster"/>
  <Field Type="int" Name="StartTime"/>
  <Field Type="int" Name="Duration"/>
  <Field Type="int" Name="OriginalVolumeBytes"/>
  <Field Type="int" Name="MinimumRestoreBytes"/>
  <Field Type="int" Name="ClusterCount"/>
  <Field Type="int" Name="ChangedClusterCount"/>
  <Field Type="int" Name="HashesReceivedCount"/>
  <Field Type="int" Name="NewClusterCount"/>
  <Field Type="int" Name="Status"/>
  <Field Type="boolean" Name="IsActive"/>
  <Field Type="struct" Name="AutoExclusionSizes" >
    <Field Type="int" Name="ClientSideCache"/>
    <Field Type="int" Name="TemporaryFiles"/>
    <Field Type="int" Name="DigitalVideoRecorder"/>
    <Field Type="int" Name="PageFile"/>
    <Field Type="int" Name="RecycleBin"/>
    <Field Type="int" Name="HibernationFile"/>
    <Field Type="int" Name="MemoryDump"/>
    <Field Type="int" Name="ShadowVolumes"/>
    <Field Type="int" Name="Other"/>
  </Field>
  <Field Type="int" Name="ExcludedFoldersCount"/>
  <Field Type="struct" Occurs="ExcludedFoldersCount" Name="ExcludedFolders" >
    <Field Type="string" Name="Name"/>
    <Field Type="int" Name="Size"/>
    <Field Type="boolean" Name="IsAutoExcluded"/>
  </Field>
  <Field Type="int" Name="BadFilesCount"/>
  <Field Type="struct" Name="BadFile" >
    <Field Type="string" Name="Name"/>
    <Field Type="int" Name="Size"/>
  </Field>
  <Field Type="int" Name="MbrIndex"/>
  <Field Type="int" Name="DiskSignature"/>
  <Field Type="int" Name="Partition"/>
  <Field Type="int" Name="PartitionOffset"/>
  <Field Type="int" Name="FailureReason"/>
  <Field TYpe="stringarray" Name="FailureDetails"/>
  <Field Type="varbinary" Name="ClientInfo"/>
</Record>
</File>
Name.LW.VolumeCluster.4096.dat

Code: Alles auswählen

<File Type="VolumeCluster">
<Header>
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid"" />
	<Field Type=""varbinary"" Name=""UniqueId"" />
	<Field Type=""int"" Name=""BytesPerCluster"" />
</Header>
<Record>
	<Field Type=""int"" Name=""ClusterIndex"" />
	<Field Type=""int"" Name=""LowestVersion"" />
	<Field Type=""int"" Name=""HighestVersion"" />
	<Field Type=""fixedbinary"" Length=""16"" Name=""Hash"" />
	<Field Type=""int"" Name=""DataIndex"" />
</Record>
</File>
Name.LW.FileRecordHash.4096.dat

Code: Alles auswählen

<File Type="FileRecordHash">
<Header>
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid"" />
	<Field Type=""varbinary"" Name=""UniqueId"" />
	<Field Type=""int"" Name=""BytesPerCluster"" />
	<Field Type=""int"" Name=""FileVersion"" />
</Header>
<Record>
	<Field Type=""int"" Name=""Index"" />
	<Field Type=""fixedbinary"" Length=""16"" Name=""Hash"" />
</Record>
</File>
Name.LW.Boot.dat

Code: Alles auswählen

<File Type="Boot">
<Header>
	<Field Type=""fixedbinary"" Length=""16"" Name=""MachineGuid""/>
	<Field Type=""binary"" Length=""16"" Name=""VolumeGuid""/>
</Header>
<Record>
	<Field Type=""int"" Name=""Count""/>
	<Field Type=""varbinary"" Name=""MBR"" Occurs=""Count""/>
</Record>
</File>
Ich werde noch weitere Informationen hinzufügen ... bei Anmerkungen oder Ergänzungen bitte PN senden
Zuletzt geändert von Nobby1805 am 21. Mär 2011, 22:27, insgesamt 6-mal geändert.
Grund: Weitere Informationen hinzugefügt (File Record Hash)
WHS:inzwischen abgeschaltet Acer H340 mit 1x 1 TB (WD10EAVS), 3x 2 TB (2 WD20EARS und 1 ST2000DM001), PP3+UR2
Server:
Intel Celeron J3455 auf Gigabyte Board, Win 10 Pro x64 21H2, 640 GB (System), 16 TB (Backup), 4 TB (Daten), Lindenberg Backup und LightsOut 3
5 Clients:
1 Intel i5-4670K, ASUS H87-PRO, 32 GB, 250 GB SSD, 2x 500 GB, Win 10 Pro x64 21H2
1 Lüfterlos fürs Wohnzimmer, Intel Celeron N4100, 4 GB, 128 GB, Win 11 Pro x64 21H2
1 AMD Ryzen 7 3700X, Gigabyte AORUS, 32 GB, Win 10 Pro x64 2009
1 Sony Vaio EB 2H4E, Win 10 Home x64 2009
1 Samsung NP-R540-JS09DE, Win 10 Pro x64 2009


WHSListTombstones, ein Tool zur Auflistung aller Tombstones
WHSDisks, ein Tool zur Darstellung und Prüfung der DriveExtender-Konfiguration
WHSDiskNames, ein Tool zur Änderung der Plattennamen in der Konsole
WHSBackup, Infos und Tool zur Backup-DB (2011-Version (auch für WSE2012))
Bitte schreibt bei Fragen und Problemen eure Konfig in die Signatur
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Wenn man in der Konsole unter "Computer und Sicherung" eine deaktivierte Sicherung Sicherung wieder aktiviert dann wird nur in der datei {GUID}.Machine.configdat das Feld "IsConfigured" von Falsch (0) auf Wahr (1) gesetzt. Wenn man die Sicherung deaktiviert wird diese Feld von 1 auf 0 geändert. Zusätzlich wird die Datei Name.VolumeConfig.configdat neu geschrieben, ich habe aber keine Änderungen feststellen können.

Die Änderung wird nicht von der Konsole durchgeführt sondern vom Backup-Prozess, im Backup-...log findet man dann folgende Einträge

Code: Alles auswählen

Session: DoStartBackups {2B0E6A2F-2091-4142-9571-DEFADF2DFC12}
DataFile: Deleted: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\{2B0E6A2F-2091-4142-9571-DEFADF2DFC12}.Machine.configdat
DataFile: Renamed from: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\{2B0E6A2F-2091-4142-9571-DEFADF2DFC12}.Machine.confignew to: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\{2B0E6A2F-2091-4142-9571-DEFADF2DFC12}.Machine.configdat
CommitFile: Neutering Commit file: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\Commit.dat

Code: Alles auswählen

Session: DoStopBackups {2B0E6A2F-2091-4142-9571-DEFADF2DFC12}, 0
DataFile: Deleted: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\NORBERT3.VolumeConfig.configdat
DataFile: Renamed from: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\NORBERT3.VolumeConfig.confignew to: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\NORBERT3.VolumeConfig.configdat
DataFile: Deleted: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\{2B0E6A2F-2091-4142-9571-DEFADF2DFC12}.Machine.configdat
DataFile: Renamed from: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\{2B0E6A2F-2091-4142-9571-DEFADF2DFC12}.Machine.confignew to: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\{2B0E6A2F-2091-4142-9571-DEFADF2DFC12}.Machine.configdat
CommitFile: Neutering Commit file: D:\folders\{00008086-058D-4C89-AB57-A7F909A47AB4}\Commit.dat
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Aufgrund der hier viewtopic.php?f=9&t=13477&start=15#p100705 beschriebenen Probleme habe ich mir den GlobalCluster.4096.dat etwas genauer angesehen ... und habe den Eindruck, dass bei MS anscheinend jeder seine eigenen Ideen zum Thema Reliability umsetzen kann (weiß jetzt nicht ob :( oder :) )

Nähere Informationen bei der Beschreibung des Files hinzugefügt
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Ich habe mich in den letztenTagen wieder einmal intensiver mit der Backup DB befasst ...

Interessant welche Informationen dort alles ableitbar sind, so ist z.B. bei jedem Backup pro Partition das jeweils höchste belegte Byte gespeichert ! Daraus wird dann ermittelt ob der Restore auf eien kleinere Partition möglich ist oder nicht.

Code: Alles auswählen

 OriginalVolumeBytes = 435.668.373.504
 MinumumRestoreBytes = 220.979.905.024
Für alle die Interesse haben hier die Pre-Version meines Analyseprogramms ... für Änderungswünsche habe ich ein halb-offenes Ohr ;)
WHSBackup.zip
(23.99 KiB) 782-mal heruntergeladen
ToDo's:
  • Index.dat
  • Client spezifisch
    • VolumeCluster
    • VolumeClusterLatest1 (2, 3)
    • FileRecordHash
    • Boot
Zuletzt geändert von Nobby1805 am 14. Mär 2011, 23:08, insgesamt 2-mal geändert.
Grund: ToDo's für das Tool hinzugefügt
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Bekantermaßen basiert die Clientsicherung auf Clustern, diese werden durch 16 Byte Hash-Werte identifiziert … in der Backup-DB gibt es die GlobalCluster-Datei in der für jedes Cluster der Hashwert und der Speicherort des Clusters in den Data-Dateien angegeben ist.
GlobalCluster hat geschrieben: 15 D0 84 7B 72 68 A1 05 60 66 A9 C7 53 A8 00 00 00 D5 C0 91 F5 01 =514.089.045
16 4B 77 73 D6 FE 90 FA 8A C7 BC 67 9F AA 00 00 00 C9 C8 C4 86 02 =550.577.225
17 DF 1F B0 8C 2A 1C 98 55 07 EB AF F4 F3 00 00 00 F9 F5 81 E7 00 =216.038.137
18 2B E3 ED 82 23 19 79 6B D6 9C 04 34 0A 01 00 00 83 AB D5 E3 00 =209.016.195
Für jede Partition eines zu sichernden Clients gibt es die Volume.dat-Datei in der Informationen zu jeder Sicherung eingetragen sind, eine dieser Informationen ist die Versionsnummer der Sicherung. In der VolumeCluster.4096.dat-Datei wird jetzt für jedes zu sichernde Cluster der Client-Partition aufgeführt für welche Sicherungsversion, mit welchem Hash-Wert das Cluster wo in den Data-Dateien zu finden ist.
Volume.dat hat geschrieben:C.Volume.dat
MachineGuid = 5747B984-7C20-4DFD-A177-B94AE7BF93B3
VolumeGuid = 78738A92-1865-11DC-9061-806D6172696F
BackupSetIndex = 1
Version = 1
UniqueId = 22 22 22 22 00 7E 00 00 00 00 00 00
MountPoint = C:
VolumeLabel =
FileSystem = NTFS
BytesPerSector =512
BytesPerCluster = 4.096
StartTime = 09.05.2010 01:09:00
Duration = 00:46:10
OriginalVolumeBytes = 56.622.956.544
MinumumRestoreBytes = 53.128.004.096
ClusterCounts = 5.074.778
ChangedClusterCounts = 5.074.778
HashesReceivedCount = 5.074.778
NewClusterCount = 1.010.865
VolumeCluster.4096.dat hat geschrieben:C0 1 -2 47 E1 E2 2F F3 69 27 FA 01 00 39 2C E1 2D 0D 3B 372.858.816
C0 2 -5 BE B3 DF 56 08 41 FD 5B CE 98 3F 35 BD 69 12 92 383.573.056
C0 5 - 6 56 71 51 90 EF D9 11 A1 09 51 A9 DD 4E 98 3C 76 413.593.152
C0 6 -11 BE B3 DF 56 08 41 FD 5B CE 98 3F 35 BD 69 12 92 383.573.056
unklar ist mir noch warum die "highest Version" des n. Eintrages gleich der "lowest Version" des n+1. Eintrages ist
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Zur Fortsetzung der Analyse der Backup-Datenbank habe ich auf einem virtuellen Client/WHS eine neue kleine Partition angelegt die nur eine Textdatei enthält und dann mit einer frischen Backup-DB gesichert worden ist.

Warum schreibe ich das hier auf ?
1. weil mir beim Schreiben evt. der eine oder andere Gedanke zu weiteren Untersuchungen/Erklärungen kommt
2. weil ein Leser evt. gute Hinweise geben oder auch "nur" gute Fragen stellen könnte

Ich habe also von der 100 MB-Partition genaue Kenntnis welche Blöcke durch welchen Inhalt belegt sind

Bei der Sicherung wird weder etwas in eine VolumeCluster noch eine VolumeClusterLatest1 Datei eingetragen. Einträge finde ich nur in der VolumeClusterLatest2 und der VolumeClusterLatest3 ... warum manche Einträge in die 2 und andere in die 3 geschrieben werden ist mir nicht klar

Beispiele:
Latest2 hat geschrieben:5 2B 03 28 7A E5 DC B6 85 8B 46 BA 83 2D 5B 06 5C 5
6 EF 7B 60 5D 23 4E 33 80 5C D5 66 41 1C 21 EB EA 6
7 BF 61 9E AC 0C DF 3F 68 D4 96 EA 93 44 13 7E 8B 7
65.482 9C A7 88 F3 82 34 1B 4D 9C 07 CF 65 37 1A 6D 76 8
65.483 AD 0A 09 8F 16 E8 AF D4 62 DD B5 6F FA 9B 8A 45 9
65.490 12 36 F2 1A 57 D1 80 43 46 28 C0 E7 62 73 22 86 10
65.491 F2 E4 A5 CD 0B 9A 31 1B CC BF 2C 14 3F F1 58 E0 11
Latest3 hat geschrieben:8 BF 61 9E AC 0C DF 3F 68 D4 96 EA 93 44 13 7E 8B 7
9 BF 61 9E AC 0C DF 3F 68 D4 96 EA 93 44 13 7E 8B 7
10 BF 61 9E AC 0C DF 3F 68 D4 96 EA 93 44 13 7E 8B 7
11 BF 61 9E AC 0C DF 3F 68 D4 96 EA 93 44 13 7E 8B 7
12 BF 61 9E AC 0C DF 3F 68 D4 96 EA 93 44 13 7E 8B 7
65.489 AD 0A 09 8F 16 E8 AF D4 62 DD B5 6F FA 9B 8A 45 9
65.492 F2 E4 A5 CD 0B 9A 31 1B CC BF 2C 14 3F F1 58 E0 11
Die erste Zahl gibt die Blocknummer auf der Quellpartition an, dann folgen 16 Byte des Hashcodes der das Cluster identifiziert und dann eine Nummer die auf die Backup-DB zeigt (wie genau diese Adressierung funktioniert ist mir noch nicht klar)

Das Beispiel habe ich bewusst gewählt um eine Besonderheit zu zeigen die evt. eine Erklärung für Latest2 bzw. Latest3 sein könnte ...
Die Blöcke 6-12 gehören zur selben Datei, in Latest2 eingetragen haben sie alle einen unterschiedlichen Hashcode als unterschiedlichen Inhalt ... in Latest3 haben alle den selben Hashcode und verweisen auf das selbe Ziel in der Backup-DB ... dieses kommt aber auch schon einmal in der Latest2 vor.
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Bei den Analysen der letzten Woche ist mir aufgefallen, dass mehr Dateien und mehr Cluster gesichert werden als nachweislich auf der Partition vorhanden sind ...

Des Rätsels Lösung: während der Sicherung werden Dateien angelegt und zum Abschluss der Sicherung wieder gelöscht

Hier ein Beispiel:

Code: Alles auswählen

E:\Windows Home Server-Treiber für Wiederherstellung\{58A64BC2-2B29-43BD-9F86-C0C7F17A93EA}
E:\Windows Home Server-Treiber für Wiederherstellung\{58A64BC2-2B29-43BD-9F86-C0C7F17A93EA}\netamd2.inf
E:\Windows Home Server-Treiber für Wiederherstellung\{58A64BC2-2B29-43BD-9F86-C0C7F17A93EA}\pcntpci5.sys
E:\Windows Home Server-Treiber für Wiederherstellung\{6E55AD5D-1480-4EAB-AFA6-CD444DC279E2}
E:\Windows Home Server-Treiber für Wiederherstellung\{6E55AD5D-1480-4EAB-AFA6-CD444DC279E2}\atapi.sys
E:\Windows Home Server-Treiber für Wiederherstellung\{6E55AD5D-1480-4EAB-AFA6-CD444DC279E2}\mshdc._nf
E:\Windows Home Server-Treiber für Wiederherstellung\{6E55AD5D-1480-4EAB-AFA6-CD444DC279E2}\mshdc.inf
E:\Windows Home Server-Treiber für Wiederherstellung\{B026F0FB-787C-4229-A1BD-E75B839A1205}
E:\Windows Home Server-Treiber für Wiederherstellung\{B026F0FB-787C-4229-A1BD-E75B839A1205}\atapi.sys
E:\Windows Home Server-Treiber für Wiederherstellung\{B026F0FB-787C-4229-A1BD-E75B839A1205}\mshdc._nf
E:\Windows Home Server-Treiber für Wiederherstellung\{B026F0FB-787C-4229-A1BD-E75B839A1205}\mshdc.inf
E:\Windows Home Server-Treiber für Wiederherstellung\{B180777D-42F5-4F0F-9E5A-ABEB5497540F}
E:\Windows Home Server-Treiber für Wiederherstellung\{B180777D-42F5-4F0F-9E5A-ABEB5497540F}\atapi.sys
E:\Windows Home Server-Treiber für Wiederherstellung\{B180777D-42F5-4F0F-9E5A-ABEB5497540F}\intelide.sys
E:\Windows Home Server-Treiber für Wiederherstellung\{B180777D-42F5-4F0F-9E5A-ABEB5497540F}\mshdc._nf
E:\Windows Home Server-Treiber für Wiederherstellung\{B180777D-42F5-4F0F-9E5A-ABEB5497540F}\mshdc.inf
E:\Windows Home Server-Treiber für Wiederherstellung\{B180777D-42F5-4F0F-9E5A-ABEB5497540F}\pciidex.sys
E:\Windows Home Server-Treiber für Wiederherstellung\{DBB15650-57DA-4668-A90E-794814C092E5}
E:\Windows Home Server-Treiber für Wiederherstellung\{DBB15650-57DA-4668-A90E-794814C092E5}\disk._nf
E:\Windows Home Server-Treiber für Wiederherstellung\{DBB15650-57DA-4668-A90E-794814C092E5}\disk.inf
E:\Windows Home Server-Treiber für Wiederherstellung\{DBB15650-57DA-4668-A90E-794814C092E5}\disk.sys
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Hier übrigens eine aktuelle Version des Tools
Dateianhänge
WHSBackup.zip
(27.16 KiB) 691-mal heruntergeladen
Zuletzt geändert von Nobby1805 am 11. Jul 2011, 18:49, insgesamt 1-mal geändert.
Grund: Jetzt die Version 0.3
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Wenn man auf dem Client den Registrywert HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Home Server\MountBackup\TraceMAsk verändert dann kann man das Logging nach MountBackup...log verändert

Normalerweise steht dieser Wert auf 7 ... Beispiel:
[01.05.2013 12:45:25 89f8] TICK,THREAD STARTED, 16505
[01.05.2013 12:45:25 89f8] Driver transition (mounted RW volume) OK
[01.05.2013 12:45:25 89f8] Extending
[01.05.2013 12:45:25 a32c] Cluster reads=10, writes=0, errors=0. [770047:1]
[01.05.2013 12:45:25 a32c] Cluster reads=17, writes=3, errors=0. [770046:1]
[01.05.2013 12:45:25 a32c] Cluster reads=23, writes=7, errors=0. [13312125:256]
[01.05.2013 12:45:26 a258] OnProgress: UI progress = 81%
dasselbe Beispiel mit F als TraceMask (Zeilen die im Prinzip schon vorher gelogged wurden blau eingefärbt)
[01.05.2013 12:40:12 7e10] TICK,THREAD STARTED, 15444
[01.05.2013 12:40:12 7e10] Driver transition (mounted RW volume) OK
[01.05.2013 12:40:12 7e10] Extending

[01.05.2013 12:40:12 a374] Read offset 0 length 2000
[01.05.2013 12:40:12 a374] Asking for Cluster [0:2]
[01.05.2013 12:40:12 a374] Read offset 0 length 1000
[01.05.2013 12:40:12 a374] Asking for Cluster [0:1]
[01.05.2013 12:40:12 a374] Read offset 0 length 4000
[01.05.2013 12:40:12 a374] Asking for Cluster [0:4]
[01.05.2013 12:40:12 a374] Read offset 0 length 200
[01.05.2013 12:40:12 a374] Asking for Cluster [0:1]
[01.05.2013 12:40:12 a374] Read offset 8000 length 800
[01.05.2013 12:40:12 a374] Asking for Cluster [8:1]
[01.05.2013 12:40:12 a374] Read offset 0 length 200
[01.05.2013 12:40:12 a374] Asking for Cluster [0:1]
[01.05.2013 12:40:12 a374] Read offset C0000000 length 1000
[01.05.2013 12:40:12 a374] Asking for Cluster [786432:1]
[01.05.2013 12:40:12 a374] Read offset CB1F70000 length 1000
[01.05.2013 12:40:12 a374] Asking for Cluster [13311856:1]
[01.05.2013 12:40:12 a374] Read offset BBFFE000 length 1000
[01.05.2013 12:40:12 a374] Asking for Cluster [770046:1]
[01.05.2013 12:40:12 a374] Read offset BBFFF000 length 1000
[01.05.2013 12:40:12 a374] Asking for Cluster [770047:1]
[01.05.2013 12:40:12 a374] Cluster reads=10, writes=0, errors=0. [770047:1]
und mit 1F als TraceMask wird es noch ausführlicher (Zeilen die im Prinzip schon mit F gelogged wurden blau eingefärbt)
[01.05.2013 17:45:25 aa90] TICK,THREAD STARTED, 17940
[01.05.2013 17:45:25 aa90] Driver transition (mounted RW volume) OK

[01.05.2013 17:45:25 aa90] 24 bytes of application data sent
0000 17 03 01 00 13 ba 0d c1:c4 c2 41 84 b8 bc d7 f8 ..........A.....
0010 26 1e 2c 47 4e a6 37 6f: &.,GN.7o
[01.05.2013 17:45:25 aa90] Extending
[01.05.2013 17:45:25 a8dc] Read offset 0 length 2000

[01.05.2013 17:45:25 a8dc] 24 bytes of application data sent
0000 17 03 01 00 13 a8 3a ab:27 f9 91 f5 63 1e 55 ea ......:.'...c.U.
0010 d9 b8 39 62 62 3c 76 5e: ..9bb<v^
[01.05.2013 17:45:25 a8dc] Asking for Cluster [0:2]
[01.05.2013 17:45:25 a8dc] Trying to read 5 bytes...
[01.05.2013 17:45:25 a8dc] Read 5 bytes.
0000 17 03 01 20 10 ... .
[01.05.2013 17:45:25 a8dc] Message body is 8208 bytes
[01.05.2013 17:45:25 a8dc] Trying to read 8208 bytes...
[01.05.2013 17:45:25 a8dc] Read 8208 bytes.
0000 cd f2 f0 b5 84 8e 5d 82:f3 8f 13 e3 ac 00 80 41 ......]........A
0010 d4 44 94 30 6b c7 fa d9:61 e5 97 84 7f d4 b5 f3 .D.0k...a.......
[01.05.2013 17:45:25 a8dc] Buffers[1].BufferType = SECBUFFER_DATA
[01.05.2013 17:45:25 a8dc] Decrypted data: 8192 bytes
0000 5f 00 80 20 eb 52 90 4e:54 46 53 20 20 20 20 00 _.. .R.NTFS .
0010 02 08 00 00 00 00 00 00:00 f8 00 00 3f 00 ff 00 ............?...
[01.05.2013 17:45:25 a8dc] Read 8192 bytes, hr=00000000
[01.05.2013 17:45:25 a8dc] Trying to read 5 bytes...
[01.05.2013 17:45:25 a8dc] Read 5 bytes.
0000 17 03 01 00 18 .....
[01.05.2013 17:45:25 a8dc] Message body is 24 bytes
[01.05.2013 17:45:25 a8dc] Trying to read 24 bytes...
[01.05.2013 17:45:25 a8dc] Read 24 bytes.
0000 c5 d1 3c 02 bd 3a 9e 85:27 97 2b e2 16 3d d4 4e ..<..:..'.+..=.N
0010 93 21 b9 ce db cb b1 23: .!.....#
[01.05.2013 17:45:25 a8dc] Buffers[1].BufferType = SECBUFFER_DATA
[01.05.2013 17:45:25 a8dc] Decrypted data: 8 bytes
0000 00 00 00 00 00 00 00 00: ........
[01.05.2013 17:45:25 a8dc] Read 8 bytes, hr=00000000
[01.05.2013 17:45:25 a8dc] Read offset 0 length 1000
[01.05.2013 17:45:25 a8dc] 24 bytes of application data sent
0000 17 03 01 00 13 32 7e 01:e4 e0 36 0b 98 ab 34 1c .....2~...6...4.
0010 8c 12 a1 d4 5a 54 17 ce: ....ZT..
[01.05.2013 17:45:25 a8dc] Asking for Cluster [0:1]
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

In der aktuellen Version des Tools (0.6) ist es jetzt möglich die Datenblocks die zu den Sicherungen eines Volumes gehören zu (lese-)prüfen und ggf. jeweils die ersten 16 Byte des Clusters zu loggen (... das erzeugt allerdings extrem große Logfiles)
WHSBackup 0.6.PNG
WHSBackup 0.6.PNG (6.59 KiB) 22998 mal betrachtet
Dateianhänge
WHSBackup.zip
V 0.6.4888.16942
(28.57 KiB) 587-mal heruntergeladen
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

In der neuen Version 0.6.4900.15960 wird jetzt auf bestimmte Fehler gezielt geprüft und dann eine Fehlermeldung zum Kontext ausgegeben
Zusätzlich wird bei VolumeCluster für jeden gelesenen Block eine Logzeile ausgegeben
Dateianhänge
WHSBackup.zip
V 0.6.4900
(28.77 KiB) 599-mal heruntergeladen
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Die neue Version 0.7.5187.20941 stürzt jetzt nicht mehr ab, wenn in den Files variabel lange Bytesequenzen auftreten, die länger als 63 Byte sind ... es hat lange gedauert, bis dieses Problem erstmals auftrat .. und heute habe ich dann ziemlich lange benötigt um den Grund dafür zu finden ;)
WHSBackup.zip
V 0.7.5187.20941
(29.11 KiB) 664-mal heruntergeladen
Benutzeravatar
Nobby1805
Moderator
Beiträge: 21379
Registriert: 6. Jun 2009, 17:40
Wohnort: Essen

Re: Was ist die Backup Database ?

Beitrag von Nobby1805 »

Es gibt jetzt auch eine WHS2011-Version

viewtopic.php?f=66&t=21799
WHS:inzwischen abgeschaltet Acer H340 mit 1x 1 TB (WD10EAVS), 3x 2 TB (2 WD20EARS und 1 ST2000DM001), PP3+UR2
Server:
Intel Celeron J3455 auf Gigabyte Board, Win 10 Pro x64 21H2, 640 GB (System), 16 TB (Backup), 4 TB (Daten), Lindenberg Backup und LightsOut 3
5 Clients:
1 Intel i5-4670K, ASUS H87-PRO, 32 GB, 250 GB SSD, 2x 500 GB, Win 10 Pro x64 21H2
1 Lüfterlos fürs Wohnzimmer, Intel Celeron N4100, 4 GB, 128 GB, Win 11 Pro x64 21H2
1 AMD Ryzen 7 3700X, Gigabyte AORUS, 32 GB, Win 10 Pro x64 2009
1 Sony Vaio EB 2H4E, Win 10 Home x64 2009
1 Samsung NP-R540-JS09DE, Win 10 Pro x64 2009


WHSListTombstones, ein Tool zur Auflistung aller Tombstones
WHSDisks, ein Tool zur Darstellung und Prüfung der DriveExtender-Konfiguration
WHSDiskNames, ein Tool zur Änderung der Plattennamen in der Konsole
WHSBackup, Infos und Tool zur Backup-DB (2011-Version (auch für WSE2012))
Bitte schreibt bei Fragen und Problemen eure Konfig in die Signatur
Antworten