henere
Goto Top

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)

# 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

Content-Key: 383865

Url: https://administrator.de/contentid/383865

Printed on: May 11, 2024 at 02:05 o'clock

Member: anteNope
anteNope Aug 20, 2018 updated at 01:38:30 (UTC)
Goto Top
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 =)
Member: Henere
Henere Aug 20, 2018 at 01:47:11 (UTC)
Goto Top
Also derzeit kopiere ich Daten mit über 3GByte/s von NVM zu StorageSpace hin und her.
Das feuert schon ganz gut für nen privaten Server.

Was mich noch wundert, der beschriebene Task ist beim 2016er per default deaktiviert.
Ich warte dann doch lieber mal auf Erfahrungswerte face-wink

5h Restore weil das Raid im NAS auch noch der Meinung war jetzt neu syncen zu müssen.... face-sad
Member: anteNope
anteNope Aug 20, 2018 at 02:17:10 (UTC)
Goto Top
Also derzeit kopiere ich Daten mit über 3GByte/s von NVM zu StorageSpace hin und her.

Guck mal nach ob der die Daten nicht nur einfach den den RAM pumpt ...
Member: Henere
Henere Aug 20, 2018 at 02:19:05 (UTC)
Goto Top
Nene, das passt schon. Resmon zeigt das als Schreiben auf dem Device an.
Lesen und Schreiben je 3GByte/s .. Allerdings kann ich den Cache mit 512GByte nicht mit einer Datei vollpumpen. Das gibt die Quelle nicht her face-smile
Member: Th0mKa
Th0mKa Aug 20, 2018 at 07:11:16 (UTC)
Goto Top
Zitat von @anteNope:
(Windows Software RAID5 war um Welten zügiger)
Was für einen Pool hast du denn eingerichtet?

/Thomas
Member: anteNope
anteNope Aug 20, 2018 updated at 07:57:10 (UTC)
Goto Top
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.

clipboard01
clipboard02

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

clipboard03
Member: Th0mKa
Th0mKa Aug 20, 2018 at 08:33:07 (UTC)
Goto Top
Ja, aber welche Art Pool hast du konfiguriert? Das macht deutliche Unterschiede in der Performance.
Member: anteNope
anteNope Aug 20, 2018 at 08:38:16 (UTC)
Goto Top
Ich meine das, was einem RAID5 gleichkommt, also mit Parität und Fehlertoleranz für 1 HDD.
Member: Th0mKa
Th0mKa Aug 20, 2018 at 09:11:44 (UTC)
Goto Top
Also die langsamste Variante wegen der Paritätsberechnung. Mirror spaces wäre vermutlich schneller und hätte den gleichen Schutz im Two-Way-Mirror.
Member: anteNope
anteNope Aug 20, 2018 at 10:00:21 (UTC)
Goto Top
Das ist korrekt, nur hatte mich es damals verwundert, dass es bei gleicher Funktion weniger Leistung als das Soft-RAID5 hatte ...
Member: Henere
Henere Aug 20, 2018 updated at 14:31:20 (UTC)
Goto Top
Also die Schwuppdizität ist deutlich gestiegen.

Ich habe derzeit 8VMs (6x 2016 und 2x Ubuntu) drauf laufen. Die WinServer per RDP sind genauso schnell, wie die auf einer reinen NVM.
Der Gesamtdurchsatz ist noch enttäuschend, ich denke die Sortierung zwischen Hot- und Cold- Data spielt da eine große Rolle. Aber man sollte auch nicht nur die Daten vom ResMon im Auge behalten.
Rein gedanklich hätte ich gedacht, dass ich zuerst die NVM (der Cache) vollgepumpt wird und dann ausgelagert auf die HDDs.
Kopieren konnte ich von NVM zum S2D mit NVM und 2x HDD mit 3Gigabyte/Sekunde.
Nun wo ich 5TB Daten zurückgespielt habe komme ich noch so auf 1-1,5 GByte/s.
Weit unter den Werten, was die 970pro kann.

Hier mal der Output vom Defrag: Allerdings habe ich die Parameter
-c -h -g -# -m 8 -i 13500

verwendet (Das sind die Originalen vom Server aus dem Task)

Defrag started at: Montag, 20 August 2018 15:57:59


Microsoft-Laufwerksoptimierung
Copyright (c) 2013 Microsoft Corp.

"Ebenenoptimierung" wird f?r "Daten (D:)" aufgerufen...  

Last Entrys in Eventlog (Microsoft-Windows-Storage-Tiering/Admin):

08/20/2018 07:20:40,  Bericht zur Speicherebenenoptimierung f?r Volume \??\Volume{e06ec461-320d-409c-a6dc-87e9655669f6}\

            % I/Os Serviced from SSD 	SSD Tier Size Required
            100%			434,58 GB
            95%			386,56 GB
            90%			338,54 GB
            85%			290,52 GB
            80%			242,50 GB
            75%			194,47 GB
            70%			146,45 GB
            65%			98,43 GB
            60%			55,73 GB
            55%			36,87 GB
            50%			25,89 GB
            45%			18,86 GB
            40%			13,88 GB
            35%			10,04 GB
            30%			7,10 GB
            25%			4,84 GB
            20%			3,12 GB
            15%			1,81 GB
            10%			886,44 MB
            5%			237,05 MB

Aktuelle Gr??e der schnelleren Ebene (SSD): 469,87 GB Prozentsatz der insgesamt aus der SSD-Ebene verarbeiteten E/As: 74% 

Gr??e der an die SSD-Ebene angef?gten Dateien: 0 Bytes Prozentsatz der gesamten E/As: 0% 

Gr??e der an die HDD-Ebene angef?gten Dateien: 0 Bytes Prozentsatz der gesamten E/As: 0%

08/20/2018 07:20:40,  Der Storage Tiers Management-Dienst hat die Optimierung des mehrstufigen Speicherplatzes abgeschlossen. Keine Aktion erforderlich. Volumename: \??\Volume{e06ec461-320d-409c-a6dc-87e9655669f6}\ Ergebnis: Der Vorgang wurde erfolgreich beendet..  Verarbeitungszeit (in Minuten): 0 Optimierungszeit (in Minuten): 35  Anzahl an Clustern, f?r die ein Verschiebevorgang auf SSD angefordert wurde: 37054148; auf HDD: 15444816  Tats?chliche Anzahl an verschobenen Clustern auf SSD: 21883844; auf HDD: 15444816

Defrag finished at: Montag, 20 August 2018 15:58:00

StorageSpaces leben von der Anzahl der Platten. Je mehr NVM, SSD und HDD beteiligt sind, desto potenter wird das alles.
Ich denke, das kann dem SAN bald heftige Konkurrenz machen. Wenn nur noch billige Gehäuse gebraucht werden.

Henere