Drücke "Enter", um den Text zu überspringen.

Kategorie: Microsoft

SCCM: Laufwerk C:\ auf CAS läuft wegen SCCMContenLib voll

Erst kürzlich bekam ich von unserem SCCM-System eine E-Mail mit folgendem Betreff:

Warnung: Warnung: Nicht genügend Speicherplatz für Datenbank an Standort "CAS" vorhanden

Als ich der Sache auf den Grund ging, stellte ich fest, dass der Ordner C:\SCCMContentLib ziemlich groß geworden ist:

contenlib1

Der Grund hierfür ist, dass auch auf einer CAS – wo kein DP vorhanden ist – Daten für die Verteilung abgelegt werden, wenn dieser Content auf der CAS angelegt wurde, was im Sinne einer zentralen Verteilung sicher oft gemacht wird. Da aber nun kein DP vorhanden ist, kann man das Laufwerk nicht beeinflussen, auf dem diese Daten abgelegt werden sollen. Daher wird standardmäßig das Laufwerk verwendet, welches über den meisten freien Speicherplatz verfügt (zum Zeitpunkt der Installation der CAS).

Dies hätte man verhindern können, wenn man vor der Installation der ContentLibrary auf der CAS ein leeres File mit dem Namen “no_sms_on_drive.sms” im Laufwerks-Root des Laufwerkes ablegt, auf dem keine SCCM-Daten liegen sollen.

Um nun aber nachträglich die Daten von einem Laufwerk auf ein anderes zu bekommen, ist das Tool “ContenLibraryTransfer” gedacht, welches sich im Configuration Manager Toolkit befindet.

Neben diesem Tool sind dort auch noch weitere enthalten:

contenlib2

Hinweis: Es wird immer nur die aktuellste Version von Microsoft angeboten – also aktuell 2012 R2. Diese Version funktioniert auch z.B. auf einem SCCM 2012 SP1!

Die Benutzung ist relativ einfach:

C:\Program Files (x86)\ConfigMgr 2012 Toolkit R2\ServerTools\ContentLibraryTransfer.exe –SourceDrive <AktuellesLaufwerk> –TargetDrive <ZielLaufwerk>

Das Tool kopiert dann die Inhalte auf das Ziellaufwerk und sorgt dafür, dass alle internen Verweise entsprechend geändert werden. Außerdem wird anschließend auf dem Quelllaufwerk eine NO_SMS_ON_DRIVE.SMS angelegt.

Am Ende sollte es dann so aussehen:

contenlib3

3 Comments

SCCM: PowerShell-Skript, um OSD-Ergebnisse zu parsen

Wenn man im SCCM 2012 (R2) eine TaskSequenz laufen lässt, bricht diese normalerweise ab, sobald ein einzelner Step fehlerhaft ist. Um aber gerade bei längeren Tasksequenzen einen Abbruch (evtl. kurz vor Fertigstellung) zu vermeiden, kann man einzelne (oder auch alle) Schritte so konfigurieren, dass bei deren Fehler dennoch regulär weitergearbeitet wird:

TaskSequenz_BeiFehler

Wenn man nun diese Option wählt, kann es einem leicht passieren, dass man bei Fertigstellung einer Tasksequenz nicht sofort sieht, ob alle Schritte erfolgreich abgearbeitet wurden oder eben einzelne Schritte einen Fehler verursacht haben. Um diese leichter abprüfen zu können, habe ich ein kleines PowerShell-Skript geschrieben. Dieses erhebt nicht den Anspruch, aus Programmierer-Sicht optimal geschrieben zu sein, sondern es soll in erster Linie funktionieren. Und das tut es (zumindest in unserer Produktiv-Umgebung) sehr gut 😉

Hier nun das Skript-Listing (und hier als .ps1 zum Download):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
cls
$failed = New-Object System.Collections.ArrayList
$success = New-Object System.Collections.ArrayList
$logfiles = New-Object System.Collections.ArrayList
$logdirs = New-Object System.Collections.ArrayList
$notfound = 0
$tsfailed = $false
 
$logdirs += 'C:\Windows\ccm\logs'
$logdirs += 'C:\Windows\ccm\logs\smstslog'
$logdirs += 'c:\_SMSTaskSequence\Logs\Smstslog\'
$logdirs += 'c:\windows\system32\ccm\logs\Smstslog\'
$logdirs += 'c:\windows\system32\ccm\logs\'
$logdirs += 'c:\windows\sysWOW64\ccm\logs\'
 
foreach($logdir in $logdirs)
{
    If (Test-Path $logdir)
    {
        $foundlogfiles = Get-ChildItem $logdir -Filter smsts*.log
        foreach($foundlogfile in $foundlogfiles)
        {
            $logfiles += $foundlogfile.FullName
        }
    }
}
 
foreach ($file in $logfiles)
{
    Write-Host 'Parsing Logile' $file
    $logzeilen = Select-String -Path $file -Pattern 'Failed to run the action:'
    foreach ($zeile in $logzeilen)
    {
        $zeile = $zeile.ToString()
        $pos1 = $zeile.IndexOf('Failed to run the action:')
        $pos2 = $zeile.IndexOf(')]LOG]!&gt;')
        if ($pos2 -le $pos1)
        {
            $pos2 = $zeile.Length
        }
        $Paket = $zeile.Substring($pos1+26,$pos2-($pos1+26))
        $failed += $Paket
        $notfound++
    }
}
 
foreach ($file in $logfiles)
{
    $logzeilen = Select-String -Path $file -Pattern 'Successfully completed the action'
    foreach ($zeile in $logzeilen)
    {
        $zeile = $zeile.ToString()
        $pos1 = $zeile.IndexOf('Successfully completed the action (')
        $pos2 = $zeile.IndexOf(') with the exit')
        $Paket = $zeile.Substring($pos1+35,$pos2-($pos1+35))
        $success += $Paket
    }
}
 
foreach ($file in $logfiles)
{
    $logzeilen = Select-String -Path $file -Pattern 'Execution of task sequence failed'
    if ($logzeilen.Count -gt 0)
    {
        $tsfailed = $true
    }
}
 
if ($tsfailed)
{
    Write-Host -Foregroundcolor Red 'The whole TaskSequence failed to run!'
}
 
if ($notfound -gt 0)
{
    Write-Host -ForegroundColor Yellow 'At least one action failed. TaskSequence possibly aborted!'
    Write-Host -ForegroundColor Red 'Failed actions:'
    foreach($pak in $failed)
    {
        Write-Host $pak
    }
}
 
Write-Host -ForegroundColor Green 'Successfully completed actions:'
foreach($pak in $success)
{
    Write-Host $pak
}
 
if ($notfound -gt 0)
{
    Write-Host -ForegroundColor Yellow 'At least one action failed. TaskSequence possibly aborted!'
}
 
Read-Host "Done - press any key to continue ..."

Ausgabe sieht dann in etwa so aus:

Output

Schreibe einen Kommentar...

SCOM: Probleme beim Setup von SCOM 2012 R2 – hier: Reporting Server

Die Installation von SCOM (System Center Operations Manager) 2012 R2 ist eigentlich nicht sehr schwer – jedoch gibt es einige potentielle “Stolpersteine”, wenn man die Reporting-Komponente nutzen möchte. Selbst bei installiertem SSRS (SQL Server Reporting Service) können diverse Fehler auftreten, die ich hier mit samt ihrer Lösung vorstellen möchte.

Zunächst einmal kann folgende Fehlermeldung auftauchen, die verschiedene Gründe haben könnte:

scom2012ssrs1

Mögliche Fehler:

  • SSRS sind nicht installiert (trivial)
  • Reporting Services Webdienst-URL ist nicht konfiguriert (Durchaus denkbar, direkt nach dem Setup)
  • Keine SSRS-Datenbank angelegt (kann nach dem Setup auch gut möglich sein)
  • Keine Berichts-Manager-URL konfiguriert (vor allem wenn noch keine Webdienst-URL gesetzt wurde normal)

Ob einer der Fehler vorliegt lässt sich recht einfach mit Hilfe des “Konfigurations-Manager für Reporting Services” prüfen:

Hier ist beispielsweise keine Webdienst-URL gesetzt (zweiter Fall):

scom2012ssrs2

Das Ganze sollte so aussehen (wenn dies erst gerade geschehen ist, sollte die rot markierte Meldung zu sehen sein):

scom2012ssrs3

Dritter Fall: Keine Datenbank. Das sieht dann so aus:

scom2012ssrs4

Durch einen Klick auf “Datenbank ändern” kann man mit Hilfe von “Neue Berichtsserver-Datenbank erstellen” und der Standardwerte eine neue DB samt TempDB anlegen. Das sollte am Ende so aussehen:

scom2012ssrs6

Vierter Fall: Berichts-Manager-URL ist noch nicht konfiguriert; sieht so aus:

scom2012ssrs7

Durch “Anwenden” lässt sich dies korrigieren und sieht danach so aus:

scom2012ssrs8

Zurück im Setup das SCOM2012R2 kann man nun erneut sein Glück versuchen, jedoch könnte nun folgender Fehler auftauchen, dessen Meldung man nur sieht, wenn man mit dem Mauszeiger über das rote Kreuz fährt:

scom2012ssrs9

Die Meldung ist zum Glück sehr aussagekräftig, so dass ein Blick in services.msc (Dienste) recht schnell Klarheit bringt:

scom2012ssrs10

Der SQL Agent Dienst sollte auf Autostart stehen und muss zum Zeitpunkt der Installation laufen, also so:

scom2012ssrs11

Das sind nun also die häufigsten Fehler und ihre eigentlich recht einfache Lösung; ich hoffe, das Ganze ist für die Problemlösung hilfreich.

Schreibe einen Kommentar...

Hyper-V 4.0: Live Größenänderung von virtuellen Festplatten

Eine der wirklich praktischen Neuerungen im Hyper-V 4.0 unter Windows Server 2012 R2 ist die Möglichkeit, eine virtuelle Festplatte im laufenden Betrieb zu vergrößern oder zu verkleinern. Dies funktioniert, wenn:

  • Die virtuelle Festplatte das VHDX-Format verwendet und
  • Am SCSI-Controller angebunden ist

Wenn man eine virtuelle Maschine der 2.Generation (Gen2-VM) verwendet, stellt sich die Frage nach der zweiten Bedingung nicht, da hier ja ohnehin nur noch SCSI zum Einsatz kommt.

In der Abbildung ist eine Muster-VM zu sehen, die neben ihrer OS-Platte noch über eine zweite Platte (VHDX, SCSI-Controller) mit 30GB verfügt:

vhdxresize1

vhdxresize2

vhdxresize3

Nun kann diese VHDX-Festplatte im laufenden Betrieb vergrößert werden. Dazu ist nur ein Klick auf “Bearbeiten” nötig:

vhdxresize4

Der Assistent führt einen dann durch die notwendigen Schritte, bei dem schließlich auch die gewünschte neue Größe angegeben wird: (Klick auf Bild für Vergrößerung)

 

vhdxresize5 vhdxresize6
vhdxresize7 vhdxresize8

 

Am Ende steht dann eine Festplatte mit mehr Speicher zur Verfügung, bei der anschließend noch die Partition erweitert werden muss:

vhdxresize9

PS: Die VHDX lässt sich auch verkleinern, allerdings nur, wenn die Partition im Inneren kleiner ist, als der Datenträger…

Weitere Informationen: http://technet.microsoft.com/en-us/library/dn282286.aspx

Schreibe einen Kommentar...

Windows 8.1 als WLAN-Hotspot nutzen

Windows 8.1 hat eine einfache Möglichkeit an Board, eine bestehende Internetverbindung (z.B. 3G/UMTS) über WLAN mit bis zu 10 Geräten zu teilen. Diese Möglichkeit kann man mit passender Software auch schon in älteren Windows-Versionen nutzen, dort lautet das Stichwort “ICS” (Internet Connection Sharing). Hier ist die Einrichtung aber nicht ganz so einfach wie unter Windows 8.1. Dort existiert nämlich eine tiefere Einbindung von UMTS-Verbindungen in das Betriebssystem. Das Ganze wird dort als “Mobile Broadband” bezeichnet. Damit das Freigeben der Verbindung über WLAN klappt, benötigt man ein UMTS-Gerät mit NDIS 6.3 kompatiblem Treiber. Das lässt sich im Zweifelsfall per PowerShell-Kommando abfragen:

Get-NetAdapter | Select Name, NdisVersion

Um die UMTS-Verbindung freizugeben, müssen sowohl die WLAN-Verbindung als auch die UMTS-Verbindung eingeschalten sein:

hotspot1

Danach muss die “Mobile Broadband” Verbindung geöffnet werden. Dies geschieht über “Change PC setting” / “PC-Einstellungen ändern” ([WIN]+[I]), dort unter “Network” / ”Netzwerk”:

hotspot2

Dort kann das Freigeben der Verbindung aktiviert werden (“Share this connection” / ”Diese Verbindung freigeben”):

hotspot3

Dazu ist einfach der Schieber auf “on” zu bewegen. Die standardmäßige SSID entspricht dem Hostnamen, kann aber, ebenfalls wie das (zufällig generierte) Kennwort über den “Edit”-Button geändert werden.

Bis der Hotspot auf anderen WLAN-Geräten zu sehen kann eine Weile dauern (bis zu 30 Sekunden). Danach kann die Verbindung genutzt werden.

Dabei ist zu beachten, dass bei einem Verbindungsabbruch der UMTS-Verbindung standardmäßig kein Wiederverbinden stattfindet. Dies lässt sich aber so einstellen:

hotspot4

Weitere Informationen siehe hier:

http://windows.microsoft.com/de-DE/windows-8/mobile-broadband-from-start-to-finish#

Schreibe einen Kommentar...

SCVMM und Orchestrator im Zusammenspiel: Ein kleines Beispiel

Das die Produkte der System Center Familie gut zusammenarbeiten ist sicher recht bekannt. Wie sich das aber im Einzelnen gestaltet oftmals nicht. Daher möchte ich hier an einem kleinen Beispiel verdeutlichen, wie die einzelnen Schritte aussehen.

Das Beispiel soll folgendes tun:

  • Ein Orchestrator 2012 R2 Runbook überwacht den IIS-Dienst auf einer virtuellen Maschine (direkt, ohne SCOM; würde aber natürlich auch mit SCOM gehen)
  • Fällt der IIS-Dienst aus, versucht Orchestrator, diesen neu zu starten
  • Misslingt der Neustart des Dienstes, so wird die gesamte VM neugestartet (allerdings “von aussen”)
  • Nach dem Neustart wird erneut der IIS geprüft
  • Läuft der IIS-Dienst immer noch nicht, so wird die VM heruntergefahren und mit Hilfe von SCVMM eine neue Webserver-VM provisioniert

Im Einzelnen sind folgende Schritte nötig:

  1. SQL-Datenbank-Server installieren
  2. Zielsysteme für SCVMM und Orchestrator vorbereiten
  3. SCVMM und Orchestrator installieren (dürfen auf einem System gemeinsam laufen, müssen aber nicht)
  4. Integration-Pack für SCVMM beim Orchestrator einbinden. Dazu dient der “Deployment Manager”:

scorch_01

scorch_02

Die Runbooks kann man bei Microsoft aus dem TechNet beziehen. Nach dem Download müssen sie registriert und dann auf den Runbook Server bereitgestellt werden.

5. Konfiguration des Integration Packs im Runbook Designer:

scorch_03

scorch_04

Hierbei müssen die Verbindungsdaten zum SCVMM eingegeben werden.

6. Nun kann ein neues Runbook erstellt werden und mit den passenden Widgets bestückt und diese “verdrahtet” werden:

scorch_05

Zum Einsatz kommen hier im Beispiel folgende Widgets (vom Anfang zum Ende aufgezählt):

a) Überwachung / Dienststatus abrufen

b) System / Dienst starten/beenden

c) SC 2012 Virtual Machine Manager / Shut Down VM

d) SC 2012 Virtual Machine Manager / Start VM

e) Überwachung / Dienststatus abrufen

f) SC 2012 Virtual Machine Manager / Shut Down VM

g) SC 2012 Virtual Machine Manager / Create VM from Template

 

Die Einstellungen der jeweiligen Widgets möchte ich nun hier noch kurz zeigen:

Widget a)

widget_a

Schleife um a)

widget_a_schleife1

widget_a_schleife_2_kleinwidget_a_schleife_3_klein

Der Link zwischen a) und b)

link_a_b_klein

Widget b)

widget_b

Link zwischen b) und c)

link_b_c_klein

Widget c)

widget_c

Widget d)

widget_d

Widget e) und f) analog zu den Widgets a) und c)

Widget g)

widget_g

Wenn das Runbook fertiggestellt ist, kann es getestet werden. Dazu muss es ausgecheckt werden und anschliessend der Runbook-Tester gestartet werden:

runbook_tester

Im Runbook-Tester wird das Runbook mitunter etwas anders optisch dargestellt:

scorch14

Nach einem Klick auf “Ausführen” oben links startet das Runbook und arbeitet die einzelnen Schritte ab. Hier kann man u.a. sehen, dass weder der Neustart des Dienstes noch der Reboot der VM einen Erfolg brachten und daher nun eine neue VM erzeugt wird:

runbook_tester2

Dies lässt sich auch im SCVMM nachvollziehen:

scvmm

Schreibe einen Kommentar...

Hyper-V und USB-Datenträger

Oft liest und hört man, dass Hyper-V nicht mit USB-Datenträgern umgehen kann/könne. Dies wird mit der Generation-2-VM unter Windows Server 2012 R2 (Hyper-V 4.0) anders. Dort ist es dank des “Erweiterten Sitzungsmodus” möglich, eine Hyper-V VM auch ohne Netzwerk per RDP anzusprechen und dabei auch Laufwerke mitzunehmen.

Aber: Auch unter den älteren Hyper-V-Versionen bzw. auch bei Generation-1-VMs lassen sich USB-Datenträger mit in die VM “hineinreichen”. Dies klappt allerdings leider nur dann, wenn sich der Datenträger als Festplattenlaufwerk präsentiert (i.A. also bei USB- und Firewire-Festplatten). Dazu muss folgendermaßen vorgegangen werden:

1. Datenträger am Host-System über die Datenträgerverwaltung offline schalten:

hvusb1

(Die Datenträger-Verwaltung erreicht man bei Windows 8 bzw. dem Server 2012 am einfachsten mit [WIN]+[X])

Dann kann man per Rechtsklick auf den gewünschten Datenträger diesen offline schalten:

hvusb2

hvusb3

2. Den Datenträger als Pass-Through-Disk an die Hyper-V VM als neues Laufwerk anbinden:

hvusb4

(Da Hyper-V mit dem SCSI-Controller auch hotplug-fähig ist, klappt dies sogar, während die VM läuft)

hvusb5

Statt einer vorhandenen virtuellen Festplatte wählt man eben unten eine physische Festplatte aus; hier werden nur Datenträger zur Auswahl angeboten, die beim Host offline sind.

3. Datenträger an der VM online schalten und benutzen:

In der Datenträgerverwaltung des Gast-Systems taucht nun eine Festplatte auf, die aber noch offline ist. Analog zum Offline-Schalten im ersten Schritt erfolgt hier nun die Online-Schaltung:

hvusb6

 

Anschließend steht die USB-Festplatte in der Gastbetriebssystem-Umgebung zur Verfügung:

hvusb7

Vor dem Trennen der USB-Platte sollte diese sauber (den bisherigen Weg rückwärts) ausgehangen werden, um Datenverlust o.ä. zu vermeiden.

2 Comments

SCCM: Deinstallation von Anwendungen – die einfache Variante

Seit Configuration Manager 2012 gibt es neben den “Paketen” auch die “Anwendungen”, die bei denen man zusätzlich zur Installation auch gleich die Möglichkeit der Deinstallation integrieren kann. Will man nun beide Wege sinnvoll “automatisieren”, ergibt sich häufig, dass es eine Installations- und eine Deinstallations-Sammlung gibt. Wenn man nun einen Computer in die Installations-Sammlung aufnimmt, wird die entsprechende Software auf dem Gerät installiert. Entfernt man den Client aus der Installations-Sammlung, so wird die Anwendung aber nicht automatisch deinstalliert, man müsste nun erst den CLient in die Deinstallations-Sammlung aufnehmen. Diesen Prozess kann man etwas vereinfachen:

Die Software “Adobe Reader” wurde 2x bereitgestellt – einmal für die Installation und einmal für die Deinstallation:

sccm_uninstall1

Der Trick ist nun, die Deinstallations-Sammlung über Mitgliedschaftsregeln automatisch befüllen zu lassen, und zwar so, dass das gewünschte Gerät, sobald man es aus der Installations-Sammlung entfernt hat, in die Deinstallations-Sammlung wandert – und das automatisch.

Dazu hinterlegt man an der Deinstallations-Sammlung Mitgliedschaftsregeln nach dieser Form:

sccm_uninstall2

Nun wird die Software also auf allen Geräten entfernt, die nicht in der Installations-Sammlung enthalten sind. Dadurch wird das Handling vereinfacht:

  • Gerät in Installations-Sammlung: Installation wird durchgeführt, wenn Software noch nicht vorhanden ist
  • Gerät NICHT in Installations-Sammlung: Deinstallation wird durchgeführt, falls Software vorhanden ist
Schreibe einen Kommentar...

Problem bei der Installation des DHCP-Servers unter Windows Server 2012, Fehler 0x800f0922

Ein Kollege bat mich, mir ein Problem bei einem DHCP-Server anzusehen. Dieser ließ sich nicht mehr starten und auch ein Entfernen der Rolle brachte insofern keine Abhilfe, da sich die Rolle nicht mehr neu installieren ließ. Es wurde immer der Fehler 0x800f0922 gemeldet:

dhcp-error1

Der Fehler ließ sich auch nicht durch eine Reparatur des Komponentenspeichers mittels “dism /Online /Cleanup-Image /RestoreHealth” beheben.

Eine genauere Analyse zeigte schließlich, dass der Ordner “C:\Windows\System32\DHCP” einen Teil seiner NTFS-ACLs verloren hatte (Vollzugriff bestand nur für eine unbekannte SID statt für “DHCPServer”).

dhcp-error2

Nachdem dies korrigiert war, konnte der Ordner gelöscht werden und schlussendlich ließ sich dann auch die DHCP-Rolle wieder sauber installieren!

So sollten dann die ACLs für den DHCP-Folder aussehen:

dchp-error3

Schreibe einen Kommentar...

Daten-Deduplizierung in Windows Server 2012

Eine unglaublich praktische und einfach zu nutzende Neuerung im Windows Server 2012 ist die Daten-Deduplizierung der Dateiserver-Rolle. Diese Funktion ermöglicht es, je nach Zusammensetzung der Dateien, sehr viel Speicherplatz auf einem Dateiserver zu sparen.

Die Deduplizierung arbeitet dabei nicht wie bei anderen Produkten auf Dateibasis, sondern blockbasiert. Alle Dateien eines Volumes, bei dem die Deduplizierung aktiviert ist, werden nach mehrfach vorkommenden “Chunks” durchsucht. Chunks sind variable Einheiten zwischen 32 und 128 Kilobyte (Dateien kleiner als 32kB werden nicht betrachtet). Die Chunks selber werden zusätzlich komprimiert. Kommt nun ein Chunk mehrfach vor, muss er nur einmal gespeichert werden.

Weitere Eigenschaften der Deduplizierung:

  • Transparent (Der Anwender sieht seine Files weiterhin wie bisher)
  • On-Schedule statt On-Access (Deduplizierung findet nicht beim Schreiben statt, sondern “später” laut Zeitplan)
  • Alters-basiert (Dateien werden erst ab einem gewissen Alter dedupliziert; Dateien, die sich jeden Tag ändern sind eher ungeeignet für die Deduplizierung)
  • Ressourcenschonend
  • Redundanz (Wenn ein Chunk von min. 100 Dateien referenziert wird, wird er mehrfach abgespeichert)

Was geht mit der Deduplizierung NICHT bzw. welche Einschränkungen gelten:

  • Lässt sich nicht auf dem Betriebssystem-Volume nutzen
  • Nur für NTFS-Volumes verfügbar (auch nicht für ReFS!)
  • Laufende VMs (bzw. deren VHDs) lassen sich nicht deduplizieren
  • Cluster Shared Volumes können nicht dedupliuziert werden

Wie lässt sich die Deuplizierung nun verwenden? Als erstes muss der Rollendienst installiert werden. Dies geht z.B. per Servermanager:

dedup1

Hinzufügen der Rollen & Features via Servermanager

dedup2

Rollenbasierte Installation

dedup3

Auswahl des gewünschten Zielservers

dedup4

Auswahl des Rollendienstes “Datendeduplizierung” in der Rolle “Datei- und Speicherdienste”

dedup5

Features werden keine benötigt

dedup6

Zusammenfassung der Auswahl, Start der Installation

dedup7

Abschluss der Installation

Nach Abschluss der Installation muss nun noch die Deduplizierung konfiguriert werden. Dies geschieht ebenfalls über den Servermanager, dort über die “Datei-/Speicherdienste”:

dedup8

Dann wird die Deduplizierung für das gewünschte Volume konfiguriert/aktiviert:

dedup9

Wichtig ist, dass hier einerseits die Deduplizierung aktiviert wird, das Mindestalter für zu deduplizierende Dateien festgelegt wird und der Zeitplan festgelegt wird.

dedup10

Zusätzlich könnte man hier noch Dateierweiterungen ausschließen oder sogar ganze Speicherorte (Ordner).

Beim Zeitplan ist grundsätzlich die Hintergrundoptimierung aktiv, die wirksam wird, wenn der Server gerade nichts zu tun hat. Dazu kann man dann bis zu 2 Zeitpläne für die Durchsatzoptimierung festlegen, bevorzugt zu Zeiten, in denen der Server regulär keine Last hat. (Hintergrundoptimierung kann bei VMs mitunter schwierig sein, weil sich der IO auf dem Storage nicht von einer einzelnen VM bewerten lässt).

dedup11

Nun noch eine kleine “Demo”: Ich habe auf einem Volume einige Beispieldaten vorbereitet:

dedup12

Hier liegen also 50 Dateien (Inhaltlich identisch, ist aber natürlich kein Muss). Diese belegen zusammen etwa 5GB.

Nach der Deduplizierung sieht es dann so aus:

dedup13

Hier ergibt sich also eine extrem hohe Einsparung: 200 Kilobyte statt 5 Gigabyte! Wäre die Blockgröße auf dem Volume noch kleiner, wäre noch weniger belegt, denn die 200kB ergeben sich aus 50 Files x 4kB Blocksize. Jedes der 50 Files belegt nur noch 4 Kilobyte, also insgesamt ist schon jedes File für sich kleiner als vorher!

(Dieses Beispiel ist etwas konstruiert. Die Dateien enthalten jede die Zeichenkette “0123456789” so oft, bis sich 100MB ergeben. Dadurch ist auch innerhalb der Dateien eine gute Deduplizierung möglich)

Im Servermanager wird dies nun auch noch entsprechend angezeigt:

dedup15

Interessant ist jetzt noch ein Blick in das Ereignisprotokoll:

dedup16

Hier sieht man u.a., dass der gesamte Vorgang in meinem Beispiel nur 54 Sekunden gedauert hat! (Und zwar auf einer einzelnen, klassischen (Nicht-SSD) Notebook-Festplatte, also weder schnelles RAID noch SAN oder so und in einer Hyper-V-VM)

Schreibe einen Kommentar...