Für SCCM Neulinge mag die Art und Weise der Dateiablage in SCCM zunächst etwas unübersichtlich/undurchsichtig erscheinen, was wohl an dem mit System Center 2012 Configuration Manager eingeführtem Konzept der "Content Library" liegt.

Der Grundgedanke ist die effektive Speicherung von Daten auf dem Fileshare nach dem Prinzip des "Single Instance Storage". Hierbei werden Dateien die von mehreren Software Paketen benötigt werden, wie z.B. eine bestimmte DLL oder EXE, jeweils nur einmal gespeichert und lediglich eine Mapping-Referenz zwischen einer bereits existierenden Datei und dem neuen Software Paket hinzugefügt. Somit wird nicht nur der Traffic zwischen den Distribution Points reduziert um ein neues Paket bereit zu stellen, sondern auch die Zeit für die Bereitstellung reduziert.

Da es, wie in meinem Einleitungssatz bereits erwähnt, jedoch nicht immer ganz einfach ist hier die Übersicht zu behalten, möchte ich mit diesem Artikel etwas Licht ins Dunkel bringen.

Zunächst betrachten wir die Content Library an sich, welche eine Kopie der Dateien auf dem Site Server und jeweils eine weitere Kopie pro Distribution Point vorhält. Deren grundsätzliche Idee darin liegt, sowohl die Last bei der Verteilung der Daten im Netzwerk als auch die generelle Festplattennutzung auf den Distribution Points zu minimieren bzw. zu optimieren.

Sofern nicht anders angegeben, wird die Content Library direkt im Root Verzeichnis des bei der Installation gewählten Laufwerks im Ordner "SCCMContentLib" angelegt.

b2ap3_thumbnail_ContentLib_1.png

Innerhalb der Content Library befinden sich die Data Library (DataLib) welche Informationen über die ursprüngliche Struktur der Pakete beinhaltet, die File Library (FileLib) welche alle Originaldateien der Pakete beinhaltet und die Package Library (PkgLib) in der sich die Informationen verstecken, welche Pakete generell auf dem jeweiligen Verteilziel zu finden sind. Die gesamte Content Library wird geschützt als "SCCMContentLib$" freigegeben.

Versuchen wir uns nun den Zusammenhang zwischen den drei Librarys etwas genauer anzusehen und zu verstehen. Hierfür steigen wir zunächst in die Package Library ein.

b2ap3_thumbnail_ContentLib_2.png

In der Package Library findet sich für jedes Paket, welches in SCCM zur Verteilung auf den entsprechenden Distribution Point berechtigt wurde, ein INI File welches als Namen die in SCCM vergebene Paket-ID hat. Schaut man sich eines dieser Files genauer an, findet man im Abschnitt [Packages] eine Liste der "Inhalts-Ids" des Paketes und weitere Informationen wie z.B. die aktuelle Version (Revision) des Paketes.

b2ap3_thumbnail_ContentLib_3.png

Über die bereits erwähnte Inhalts-ID (PS10000A.3) können wir unseren Ausflug nun in die Data Library fortsetzen. Hier finden wir für jeden "Inhalt" eines Paketes eine eigene Datei und einen Ordner.

b2ap3_thumbnail_ContentLib_4.png

Innerhalb des Ordners findet man die jeweilige Original Ordnerstruktur des Paketes und einen Hash Wert zur Validierung innerhalb des INI Files. Unterhalb der Ordnerstruktur in der Data Library werden alle Dateien durch INI Files ersetzt.

b2ap3_thumbnail_ContentLib_5.png

Der Name der Originaldatei wird, wie im Screenshot zu sehen ist, als Name des INI Files übernommen. Diese Files beinhalten nun alle weiteren Informationen über die Originaldateien wie z.B. Größe, Änderungszeit oder auch den von SCCM gebildeten Hash. Um die eigentlichen Dateien nun in der File Library zu finden, können die ersten 4 Stellen des erzeugten Hashes verwendet werden.

b2ap3_thumbnail_ContentLib_6.png

In diesem Beispiel habe ich mir die "CCMSetup.exe" des SCCM Clients ausgesucht, welche folglich im Ordner "6564" in der File Library zu finden ist.

b2ap3_thumbnail_ContentLib_7.png

Innerhalb dieses Ordners sollten sich je nachdem nun ein oder mehrere Sätze von jeweils 3 Dateien befinden.

b2ap3_thumbnail_ContentLib_8.png

Bei der Datei ohne Erweiterung handelt es sich um die Originaldatei. (In unserem Beispiel die CCMSetup.exe) Bei der Datei mit der Endung SIG handelt es sich um eine Signatur Datei und erneut eine INI Datei. Diese beinhaltet eine Liste von "Benutzern" bei denen es sich im Grunde wiederrum um Inhalts-Ids handelt. Über diese Inhalts-Ids wird auf alle Pakete referenziert, die diese Datei gemeinsam verwenden.

b2ap3_thumbnail_ContentLib_9.png

Somit wird die Datei zwar von insgesamt 5 Paketen benötigt, aber nur ein einziges Mal physikalisch gespeichert und damit effektiv Festplattenkapazität gespart.