Soll ich die Festplatte einer virtuellen Maschine defragmentieren?


18

Ich weiß, dass es keinen Sinn macht (eigentlich ist es eine schlechte Idee), Defrag auf einer SSD auszuführen. Was ist mit einer virtuellen Maschine, die auf einer SSD ausgeführt wird? Soll ich die Festplatte defragmentieren, da der Zugriff auf die Festplatte im Prinzip auf dieselbe Weise erfolgt?


Keine Ahnung, warum dies SO ist, aber möglicherweise relevant: stackoverflow.com/questions/281527/…
Der Hochstapler

VSS kann zu einer Speichererweiterung führen, wenn Sie keinen VSS-fähigen Defragmentierer verwenden.

Nur wenn die Defragmentierungsoption Teil Ihrer Virtualisierungssoftware ist.
Qasdfdsaq

Antworten:


14

Ich defragmentiere meine VHDs, aber aus Platzgründen, nicht aus Zeitgründen:

Ich verwende die dynamisch zugewiesene Option für VHDs, damit sie klein anfangen und bei Bedarf erweitert werden. Wenn die VHD (nicht unbedingt die Dateien) fragmentiert wird, werden alle zugewiesenen Blöcke einbezogen. Das Defragmentieren der VHD ist der erste Schritt zum erneuten Komprimieren.


Der Speicherplatzfaktor kann relevant sein, da sich die VM auf einer SSD befindet. Im Allgemeinen ist das Defragmentieren von Elementen auf einer SSD aus Gründen der Leistung jedoch nicht erforderlich und wird davon abgeraten.
Bigbio2002

3

Eine SSD muss nicht defragmentiert werden. Eine normale Festplatte muss sich drehen, um (die Teile von) Dateien zu finden. Eine SSD ist vergleichbar mit RAM, alle Dateien können mit der gleichen Verzögerung erreicht werden.

Wikipedia gibt an, dass sich die Leseleistung nicht ändert, je nachdem, wo Daten auf einer SSD gespeichert sind.


Bitte geben Sie einen Link zum Wikipedia- Artikel an.
Wizlog

1
@wizlog Voila;)
Simon Verbeke

2

Dies ist nur meine Meinung, ich habe keine Testergebnisse, um es zu sichern. Hier ist eine grobe Annäherung, wie die Dinge wahrscheinlich passieren:

Echtes Betriebssystem:

  1. Anwendung fragt nach Daten X (schnell)
  2. Betriebssystem fragt nach Datentreiber für Daten X (schnell)
  3. Physische Festplatte ruft Daten X ab und gibt sie an das Betriebssystem zurück ( langsam, wenn fragmentiert )

Hier ist die entsprechende Befehlskette in einer VM:

  1. VM-Anwendung fragt nach Daten X (schnell)
  2. VM OS fragt Daten X (schnell)
  3. Der VM-Host fordert das reale Betriebssystem auf, Daten X in einer virtuellen Festplattendatei zu speichern (schnell).
  4. Real OS fordert den Festplatten-Treiber auf, Daten X (schnell) abzurufen.
  5. Die physische Festplatte ruft Daten X ab und gibt sie an das Betriebssystem zurück ( langsam, wenn fragmentiert ).

Wie Sie sehen, wird die Fragmentierung in beiden Fällen erst dann wirklich zu einem Problem, wenn die physische Festplatte versucht, die Daten zu lesen. Dies geschieht im realen Betriebssystem außerhalb des VM-Kontexts. Vorher passiert wahrscheinlich alles im Gedächtnis.

Da wir wissen, dass SSDs im realen Betriebssystem nicht fragmentiert sind und das Problem der Fragmentierung in einer VM wahrscheinlich erst im letzten physischen Schritt des Vorgangs auftritt, würde ich davon ausgehen, dass entweder Ihr virtuelles Betriebssystem oder das defragmentiert wird Eine virtuelle Festplattendatei in Ihrem Hauptbetriebssystem würde die Leistung auf einer SSD nicht verbessern, obwohl sie genauso schädlich / nutzlos ist wie die Defragmentierung Ihres realen Betriebssystems.

Edit: Und wenn das stimmt, ist es ein verdammt guter Grund, eine VM auf eine SSD zu setzen! Auf einer Festplatte führt die Fragmentierung in jedem Stadium (Gastbetriebssystem, virtuelle Festplattendatei, reales Betriebssystem) zu einer Aufhebung der Linearität und zu einer Fragmentierung beim Schritt der physischen Festplatte.


2

Unabhängig davon, ob Ihre virtuelle Maschine auf Daten zugreift, die auf einer herkömmlichen magnetischen Festplatte oder einer elektronischen SSD gespeichert sind, verlangsamt die Fragmentierung von Windows NTFS-Dateien und freiem Speicherplatz die Zugriffsgeschwindigkeit von Anwendungen, die Daten anfordern. Die Fragmentierung von NTFS-Dateien und freiem Speicherplatz kommt weitaus häufiger vor, als Sie vielleicht glauben. Dies kann passieren, sobald Sie das Betriebssystem installieren. Dies kann passieren, wenn Sie Anwendungen oder Systemaktualisierungen installieren, auf das Internet zugreifen, Fotos herunterladen und speichern, E-Mails, Bürodokumente usw. erstellen. Dies ist ein normales Ereignis und Verhalten des Computersystems, wirkt sich jedoch negativ auf over aus alle Anwendungs- und Systemleistung. Wenn eine Fragmentierung auftritt, verrichtet das Computersystem und der zugrunde liegende Speicher mehr Arbeit als erforderlich. Jede E / A-Anforderung benötigt eine messbare Zeit. Selbst in SSD-Umgebungen gibt es keine Sofort-E / A-Anforderung. Jedes Mal, wenn eine Anwendung das Lesen oder Schreiben von Daten anfordert und diese Anforderung in zusätzliche E / A-Anforderungen aufgeteilt wird, muss mehr Arbeit geleistet werden. Diese Mehrarbeit verursacht genau zu diesem Zeitpunkt eine Verzögerung.

Festplatten sind im Laufe der Jahre schneller geworden, aber auch CPUs. Tatsächlich hat sich der Abstand zwischen dem Geschwindigkeitsunterschied zwischen Festplatten und CPU vergrößert. Dies bedeutet, dass Anwendungen viele CPU-Zyklen erhalten können, aber immer noch hungern, um die Daten aus dem Speicher zu erhalten. Darüber hinaus hat die Datenmenge, die gespeichert wird, dramatisch zugenommen. Denken Sie nur an all die digitalen Fotos, die über die Feiertage aufgenommen und geteilt wurden. Jedes Foto hat eine Größe von ungefähr 1 MB, jetzt sind es mehr als 15 MB pro Foto, und einige davon gehen weit darüber hinaus. Das Bearbeiten und Rendern und Speichern von Videos sowie das Speichern von digitalen Filmen sind ebenfalls sehr beliebt. Infolgedessen manipulieren Anwendungen Hunderte von Gigabyte an Daten. Bei typischen Festplattenclustergrößen von 4 KB kann eine Datei mit einer Größe von 15 MB möglicherweise in fast 4.000 Bereiche fragmentiert werden. Dies bedeutet eine zusätzliche 4, 000 Platten-E / A-Anforderungen sind erforderlich, um die Datei zu lesen oder zu schreiben. Unabhängig von der Art des Speichers dauert der Vorgang einfach länger.

Die physische Platzierung von Daten auf einer SSD spielt keine Rolle, wie dies bei normalen magnetischen Festplatten der Fall ist. Bei einer SSD gibt es keine Rotationslatenz oder Suchzeit. Viele Experten gehen davon aus, dass Fragmentierung kein Problem mehr ist, aber die Zugriffsgeschwindigkeit auf Anwendungsdaten wird nicht nur in diesen Begriffen definiert. Jede ausgeführte E / A-Anforderung benötigt eine messbare Zeit. SSDs sind schnell, aber nicht augenblicklich. Das Windows NTFS-Dateisystem verhält sich nicht anders, da der zugrunde liegende Speicher eine SSD im Vergleich zur Festplatte ist und daher immer noch eine Fragmentierung auftritt. Durch die Reduzierung der unnötigen E / A-Vorgänge durch Verhinderung und Beseitigung der Fragmentierung wird die Anzahl der E / A-Anforderungen verringert. Dadurch wird die Antwortzeit für Anwendungsdaten verkürzt und die Gesamtlebensdauer der SSD verkürzt. Im Wesentlichen,

Darüber hinaus erfordern SSDs, dass alte Daten gelöscht werden, bevor neue Daten darüber geschrieben werden, anstatt nur die alten Informationen wie bei HDDs zu überschreiben. Dies verdoppelt den Verschleiß und kann schwerwiegende Probleme mit der Geschwindigkeitsleistung und Lebensdauer der SSD verursachen. Die meisten SSD-Hersteller verfügen über ausgefeilte Wear-Leveling-Technologien, um dies zu unterstützen. Das Hauptproblem ist die Verringerung der Schreibgeschwindigkeit aufgrund der Fragmentierung des freien Speicherplatzes. Auf der SSD verteilte kleine freie Speicherplätze bewirken, dass das NTFS-Dateisystem eine Datei in fragmentierten Teilen auf diese kleinen verfügbaren freien Speicherplätze schreibt. Dies hat zur Folge, dass mehr zufälliger E / A-Verkehr verursacht wird, der langsamer ist als sequenzielle Vorgänge.

Ich habe Benchmark-Ergebnisse, um dies zu belegen. Wenn Sie möchten, schreiben Sie einen Kommentar und fordern Sie diese Ergebnisse an. Gerne teile ich sie Ihnen mit.


Howard Butler, Sie sind neu auf dieser Website, willkommen. Generell ist es nicht ratsam, persönliche Informationen im Internet zu veröffentlichen.
wizlog

@wizlog Es ist nichts Falsches daran, persönliche Informationen im Internet zu veröffentlichen, wenn die Informationen Ihre eigenen sind. Für StackExchange-Zwecke ist es jedoch überflüssig, Ihre Kontaktinformationen oder "Signatur" in einer Antwort zu veröffentlichen. Benutzer können sich auf Wunsch zu Ihrem Profil durchklicken, um weitere Informationen zu erhalten.
Iglvzx

@iglvzx Ich habe gerade einen Kommentar verfasst, der im Wesentlichen dasselbe nahelegt ... Wie in dieser Antwort empfohlen .
wizlog

2

In Bezug auf die ursprüngliche Frage einer herkömmlichen Defragmentierung einer SSD stimme ich zu, dass dies eine schlechte Idee ist, aber es gibt spezifische Lösungen, die die Belange der Dateibewegung und der Lebensdauer der SSD berücksichtigen.

Bei einer virtuellen Maschine, auf der Windows als Betriebssystem ausgeführt wird, tritt weiterhin eine Fragmentierung auf, und der kombinierte Effekt des zusätzlichen E / A-Verkehrs verringert nicht nur die Geschwindigkeit und Effizienz der Gastsysteme, sondern auch die des Hosts. Sowohl Microsoft als auch VMware empfehlen, die Fragmentierung auf Gastebene zu beheben.

Hier ist der Grund…

  1. Anwendung fragt nach Daten X

  2. Anforderung wird von NTFS.sys verarbeitet

  3. Die Dateiattribute werden geprüft ($ MFT). Wenn die Daten nicht in einer einzelnen Erweiterung (Fragment) enthalten sind, werden für jede Erweiterung / jedes Fragment zusätzliche E / A-Anforderungen erstellt, um die ursprüngliche Datenanforderung zu erfüllen.

  4. Jede dieser Anforderungen wird dann an den Plattenspeichertreiber gesendet.

  5. Sobald die Daten abgerufen wurden, werden sie wieder im Stapel an den Benutzer / die Anwendung übergeben.

Jede virtuelle Windows-Maschine sendet diese Art von E / A-Verkehr an das Hostsystem. Wenn die Dateisystemstruktur auf der Ebene der Gast- / virtuellen Maschine fragmentiert ist, führt dies zu zusätzlichem und unnötigem E / A-Verkehr, der vom Host verarbeitet und aus dem Back-End-Speicher herausgefarmt werden muss. Dies wird durch das Hinzufügen von immer mehr virtuellen Maschinen noch verstärkt. Tatsächlich kann es auf der Ebene des Host-Dateisystems zu Fragmentierungen innerhalb von Fragmentierungen kommen.

Unabhängig davon, ob die Daten auf einer SSD oder einer herkömmlichen Festplatte gespeichert sind, wird das NTFS-Dateisystem unter Windows fragmentiert, sodass Sie aufgrund der Fragmentierung von NTFS-Dateien und freiem Speicherplatz niemals die vom Hersteller angegebene Geschwindigkeit und den angegebenen Durchsatz erreichen. Die Effekte können über PerfMon gemessen werden, indem die durchschnittliche Länge der Festplattenlesewarteschlange, die durchschnittliche Länge der Schreibwarteschlange und vor allem die E / A-Aufteilung / Sek. Betrachtet werden.


1

Gehen Sie beim Starten von Windows Server 2008 und Windows Vista vorsichtig mit der geplanten Windows-Standarddefragmentierung um.

Es kann deaktiviert werden mit: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable

oder mit PowerShell:

Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask

Auszug aus: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html


0

Ich habe gerade eine VMLite XPMode-VM mit Windows defragmentiert, die auf 240-GB-INTEL-SSDSC2CW240A3 gehostet ist.

VM-Größe vor der Defragmentierung auf dem Host: 7,83 GB (belegter Speicherplatz auf C: auf der VM: 5,81 GB von 121 GB)

Nach der Defragmentierung - 9,86 GB (belegter Speicherplatz auf C: auf VM, 5,80 GB von 121 GB)

Nicht das erwartete Ergebnis und ich habe die Vor-Defragmentierungsversion wiederhergestellt.


-1

Nein nicht wirklich. Es gibt Sachen wie "Hyperfast" von Diskeeper, aber ich habe keine Ahnung, wie effizient diese Technologien sind. (Es ist vielleicht nur eine Abzocke, damit sie nicht vom Markt fallen, nachdem SSD zum Mainstream wird.)


Hyperfast, klingt nach magischer Sauce.
Jafin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.