Server 2016 Autotiering Storage Space
Servus,
ich habe jetzt ein StorageSpace auf einem Server 2016 in Betrieb zum Testen. 1x M2 mit 512GB (970pro) und 2x x300 4TB HDDs. Das M2 als Cachelaufwerk konfiguriert.
Nun bin ich beim stöbern im Netz auf das hier gestoßen:
https://www.hyper-v-server.de/management/wie-erhlt-man-die-microsoft-sto ...
Das Script dazu (Quelle Link vorher)
Gibt es dazu Meinungen und / oder Erfahrungen ?
Kann ich das Script denn auch auf einem 2016er starten ?
Grüße, Henere
ich habe jetzt ein StorageSpace auf einem Server 2016 in Betrieb zum Testen. 1x M2 mit 512GB (970pro) und 2x x300 4TB HDDs. Das M2 als Cachelaufwerk konfiguriert.
Nun bin ich beim stöbern im Netz auf das hier gestoßen:
https://www.hyper-v-server.de/management/wie-erhlt-man-die-microsoft-sto ...
Das Script dazu (Quelle Link vorher)
# Defrag Script to catch Output of Autotiering Job
# Version 1.1 by c.rachfahl@rachfahl.de http://www.hyper-v-server.de
# if you want to get the results mailed, configure $SMTPServer
#[string]$SMTPServer = "yourmail.server.com"
#[string]$ToEmail = "Support <support@yourdomain.com>"
#[string]$FromEmail = "Autotiering Script $env:computername <Autotiering@" + ($env:computername).ToLower() + "." + ($env:USERDNSDOMAIN).ToLower() + ">"
# where should the logfile be saved?
[String]$LogFile = "C:\Windows\Logs\AutotieringReport.log"
# create tempfiles
[string]$TmpFile = [System.IO.Path]::GetTempFileName()
[string]$TmpFile2 = [System.IO.Path]::GetTempFileName()
# defrag options for autotiering optimisation
[String]$DefragOptions = "-c -h -g -#"
# set Get-Date output format (infos: http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(VS.85).aspx)
[String]$DateOutputFormat = "dddd, dd MMMM yyyy HH:mm:ss"
# write the start timestamp into $Tmpfile
$startDateStr = Get-Date -Format $DateOutputFormat
Write-Output "`n" | Out-File $TmpFile
Write-Output "Defrag started at: $startDateStr" | Out-File $TmpFile -Append
Write-Output "`n" | Out-File $TmpFile -Append
# start the Autotiering optimisation and log it into $Tmpfile2
Start-Process -FilePath "C:\windows\System32\Defrag.exe" -ArgumentList "$DefragOptions" -NoNewWindow:$true -Wait -RedirectStandardOutput $TmpFile2
# append $TmpFile2 to $TmpFile
Get-Content $TmpFile2 | Out-File $TmpFile -Append
# get the last Eventlog in the Storage-Tiering Eventlog
#$eventLog = (Get-WinEvent -LogName "Microsoft-Windows-Storage-Tiering/Admin" | Select-Object -First 1).Message
$eventLog = Get-WinEvent -LogName "Microsoft-Windows-Storage-Tiering/Admin" | Select-Object -First 2
Write-Output "`n" | Out-File $TmpFile -Append
Write-Output "Last Entrys in Eventlog (Microsoft-Windows-Storage-Tiering/Admin):" | Out-File $TmpFile -Append
for ($i = 0; $i -lt $eventLog.count; $i++)
{
$eventTime = $eventLog[$i].TimeCreated
$eventMessage = $eventLog[$i].Message
Write-Output "`n" | Out-File $TmpFile -Append
Write-Output "$eventTime, $eventMessage" | Out-File $TmpFile -Append
}
# write the stop timestamp into the $TmpFile
$stopDateStr = Get-Date -Format $DateOutputFormat
Write-Output "`n`n" | Out-File $TmpFile -Append
Write-Output "Defrag finished at: $stopDateStr" | Out-File $TmpFile -Append
# apend TmpFile to LogFile
Get-Content $TmpFile | Out-File $LogFile -Append
# mail the result if $SMTPServer is not empty
if(($SMTPServer -ne "") -and ($ToEMail -ne "") -and ($FromEMail -ne "")){
$Message = Get-Content $TmpFile
$MailBody = $Message | Out-String
Send-MailMessage -SmtpServer $SMTPServer -From $FromEMail -To $ToEmail -Subject "Results of storage spaces autotiering optimizer on $env:computername" -Body $MailBody
}
Gibt es dazu Meinungen und / oder Erfahrungen ?
Kann ich das Script denn auch auf einem 2016er starten ?
Grüße, Henere
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 383865
Url: https://administrator.de/forum/server-2016-autotiering-storage-space-383865.html
Ausgedruckt am: 22.03.2025 um 12:03 Uhr
11 Kommentare
Neuester Kommentar
Storage Spaces ... du meinst Storage Pools die im Server Manager zu finden sind?
Meine Erfahrung mit denen ist gruselig. Ich hatte damals damit unterirdische Leistungswerte (Windows Software RAID5 war um Welten zügiger), nunja mit einer NVMe SSD als Cache vielleicht besser ...?
An den Powershell-Befehlen dürfte sich nicht all zu viel getan haben. Füg mal ein paar Pausen ein und starte das manuell in der Powershell. Dann siehst du ja ob der irgendwo ein Problem hat =)
Meine Erfahrung mit denen ist gruselig. Ich hatte damals damit unterirdische Leistungswerte (Windows Software RAID5 war um Welten zügiger), nunja mit einer NVMe SSD als Cache vielleicht besser ...?
An den Powershell-Befehlen dürfte sich nicht all zu viel getan haben. Füg mal ein paar Pausen ein und starte das manuell in der Powershell. Dann siehst du ja ob der irgendwo ein Problem hat =)
Was für einen Pool hast du denn eingerichtet?
/Thomas
/Thomas
Das waren 3x 4 TB Platte ohne extra Cache-Laufwerk.
Ohne USV liefen die auf 35 MB/sec. Mit USV (und somit aktivierten Caches) wurde die Datei "zügig" in den Arbeitsspeicher gepumpt, soll heißen die ersten 4-5 GB gingen deutlich zügiger und man hat halt den Anstieg des verwendeten Arbeitsspeichers gesehen. Blöd war nur, dass der Datentransfer erst zu Ende war, als der Arbeitsspeicher wieder mit ~40MB/sec komplett zurückgeschrieben war. Sprich das Fortschrittsfenster läuft zügig durch und blieb dann bei 100% stehen bis das vollendet war ...
Beim Software-RAID5, wird zwar auch ein Teil in den Arbeitsspeicher geschrieben, aber die dauerhafte tatsächliche Schreibrate auf die Platten lag dann bei 330 MB/sec sequenziell, was schon ganz brauchbar ist.

Hier sieht man wie stark die internen HDD-Caches Einfluss haben. Und die dauerhafte Leistung bei großen sequenziellen Daten liegt sogar noch höher und ist durchaus brauchbar. Als Datengrab also durchaus performant zu gebrauchen, als Speicher zum Booten von VMs eher weniger ;)
Ohne USV liefen die auf 35 MB/sec. Mit USV (und somit aktivierten Caches) wurde die Datei "zügig" in den Arbeitsspeicher gepumpt, soll heißen die ersten 4-5 GB gingen deutlich zügiger und man hat halt den Anstieg des verwendeten Arbeitsspeichers gesehen. Blöd war nur, dass der Datentransfer erst zu Ende war, als der Arbeitsspeicher wieder mit ~40MB/sec komplett zurückgeschrieben war. Sprich das Fortschrittsfenster läuft zügig durch und blieb dann bei 100% stehen bis das vollendet war ...
Beim Software-RAID5, wird zwar auch ein Teil in den Arbeitsspeicher geschrieben, aber die dauerhafte tatsächliche Schreibrate auf die Platten lag dann bei 330 MB/sec sequenziell, was schon ganz brauchbar ist.


Hier sieht man wie stark die internen HDD-Caches Einfluss haben. Und die dauerhafte Leistung bei großen sequenziellen Daten liegt sogar noch höher und ist durchaus brauchbar. Als Datengrab also durchaus performant zu gebrauchen, als Speicher zum Booten von VMs eher weniger ;)