Best Practices für das Dateilayout auf einem Hyper-V-Server?

11

Wir haben einen Hyper-V-Server eingerichtet, und das Layout der Dateien ist inkonsistent, da es von mehreren Personen eingerichtet wurde. Hier sind die zwei verschiedenen "Vorlagen", die verwendet wurden:

Vorlage 1

D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1.xml

D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Hard Disks\MACHINE_NAME_2.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2.xml

....

und

Vorlage 2

D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_2.vhdx

D:\Hyper-V\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\GUID_1.xml
D:\Hyper-V\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\GUID_2.xml

Vorlage 1

Das Argument für Vorlage 1 war, dass beim Exportieren einer VM beim Exportieren ein Ordner mit dem Computernamen erstellt und separate Ordner für die Datenträger und die VM abgelegt werden. Sie können dann einfach auf das Maschinenverzeichnis verweisen, wenn Sie einen Import ausführen.

Das Argument GEGEN diesen Vorlagenstil ist, dass es keinen Sinn macht, ein Verzeichnis namens Virtual Machines zu haben, wenn es nur eine Datei gibt. Das andere Argument dagegen ist, dass der Hyper-V-Server selbst zu erwarten scheint, dass sich alle Festplatten in einem Ordner und alle virtuellen Maschinen in einem anderen Ordner befinden. Das heißt, es werden keine separaten Ordner für jede VM erstellt (mit Ausnahme der Ordner, die von GUID im Verzeichnis Virtual Machines benannt wurden).

Vorlage 2

Das Argument für Vorlage 2 ist, dass Hyper-V anscheinend das Layout so erwartet.

Das Argument GEGEN Vorlage 2 ist, dass Sie nicht erkennen können, welche Dateien der virtuellen Maschine einer bestimmten Maschine zugeordnet sind, es sei denn, Sie schauen in die XML-Dateien.

Ich würde gerne etwas über Fallstricke bei beiden Layouts erfahren.

Benjamin Peikes
quelle
2
Sieht aus wie ein Fahrradschuppen für mich.
Evan Anderson
2
Ich stimme dir nicht zu. Erfahrungsgemäß gibt es einige gute technische Gründe für eine Namenskonvention, mit der Sie feststellen können, welche Festplatten zu welchen VMs außerhalb der Hyper-V-Tools gehören. Eine seiner Optionen ermöglicht es Ihnen nicht, dies einfach zu tun - oder überhaupt, wenn die Hyper-V-XML-Dateien beschädigt sind, was passieren kann.
Grant
2
Du hast recht. Vorlage 2 trennt die VMs nicht nach Ordner, was für die anfängliche VHD (X) in Ordnung ist, für nachfolgende VHD (X) jedoch problematisch sein kann, es sei denn, Sie benennen sie gewissenhaft.
Joeqwerty
1
Wie wäre es mit einer Vorlage ohne Leerzeichen im Pfad?
user2813274
2
@BenjaminPeikes Fahrradschuppen bezieht sich auf das Parkinson-Gesetz der Trivialität - en.wikipedia.org/wiki/Parkinson's_law_of_triviality
Grant

Antworten:

12

Sie möchten wirklich, wirklich in der Lage sein, leicht zu identifizieren, welche Dateien zu welcher virtuellen Maschine gehören. Auch wenn Sie den Zugriff auf die Hyper-V-Konsole verlieren.

Dies tritt auf, wenn versucht wird, eine VM aus Sicherungen wiederherzustellen. Oder wenn Hyper-V alle Ihre VMs vergisst und Sie sie importieren müssen. Oder die VM-Konfigurationsdateien sind beschädigt, und Sie müssen die VM neu erstellen und auf die alten Festplattendateien verweisen (die Sie jetzt nicht identifizieren können, da Ihre Konfigurationsdatei beschädigt ist). Oder Sie möchten einfach schnell überprüfen, wie viel Speicherplatz jede VM belegt. Oder Sie müssen aus Sicherungen wiederherstellen, in denen Sie die Dateinamen sehen können, die XML-Dateien jedoch nicht einfach lesen können, ohne zuerst den gesamten Wiederherstellungsprozess durchlaufen zu haben.

Angesichts dessen würde ich mich für etwas Ähnliches wie Vorlage 1 entscheiden, in dem es für jede VM einen Ordner gibt - aber die Unterordner "Virtuelle Maschinen" und "Festplatten der virtuellen Maschine" weglassen -, sondern einfach alle Dateien, die sich auf eine VM beziehen, einfügen Ein Ordner mit dem Namen der VM.

Sie benötigen auch keine Hyper-V \ Virtual-Maschinen - wählen Sie eines dieser Labels aus, Sie benötigen nicht beide.

So:

D: \ Virtuelle Maschinen \ MACHINE_A \ GUID_1.xml
D: \ Virtuelle Maschinen \ MACHINE_A \ Machine_a_OS.vhdx
D: \ Virtuelle Maschinen \ MACHINE_A \ Machine_a_Data.vhdx

D: \ Virtuelle Maschinen \ MACHINE_B \ GUID_2.xml
D: \ Virtuelle Maschinen \ MACHINE_B \ Machine_b_OS.vhdx
D: \ Virtuelle Maschinen \ MACHINE_B \ Machine_b_Data.vhdx

etc.

Oder Sie entscheiden, dass Sie die Dateinamen nicht benötigen, um mit der virtuellen Maschine übereinzustimmen - der Ordnername ist ausreichend. Eine solche Benennung würde es einfacher machen, eine VM zu klonen, ohne sich um das Umbenennen ihrer Dateien kümmern zu müssen:

D: \ VMs \ Maschine A \ GUID_1.xml
D: \ VMs \ Maschine A \ OS.vhdx
D: \ VMs \ Maschine A \ Data.vhdx

D: \ VMs \ Maschine B \ GUID_2.xml
D: \ VMs \ Maschine B \ OS.vhdx
D: \ VMs \ Maschine B \ SQLData.vhdx
D: \ VMs \ Maschine B \ SQLLog.vhdx

Der wichtigste Aspekt hierbei ist, die Dateien so zu organisieren, dass Sie anhand der Dateistruktur erkennen können, zu welcher VM jede Datei gehört und wofür diese Datei bestimmt ist.

Gewähren
quelle
Ich habe mich dem von Ihnen vorgeschlagenen Layout zugewandt. Eine Sache an diesem speziellen Layout, die ich nicht mag, ist, dass es den Computernamen sowohl in der Ordnerstruktur als auch in der Dateinamenskonvention verwendet. Dies bedeutet, dass Sie nicht einfach einen Ordner eines Computers kopieren können, um einen neuen zu erstellen.
Benjamin Peikes
Ein Argument, das ich gehört habe, ist, dass Sie feststellen können, welche Dateien zu welcher virtuellen Maschine gehören, indem Sie die XML-Dateien für jede GUID untersuchen. Obwohl es auf jeden Fall nützlich ist, eine leicht verständliche Namenskonvention zu haben, fällt sie völlig auseinander, wenn jemand sie nicht einmal befolgt. Es ist, als hätten Sie Kommentare im Code, die nicht mehr mit dem Code übereinstimmen. Da sich alle Informationen über den Computer in der XML-Datei befinden, muss ich mich nicht auf die Benennung von Ordnern und Dateien verlassen, um etwas herauszufinden.
Benjamin Peikes
@BenjaminPeikes Es ist riskant, sich auf die XML-Dateien zu verlassen, um Dateien mit VMs abzugleichen. Ich hatte Fälle, in denen die XML-Dateien entweder durch versehentliches Löschen oder durch Datenbeschädigung verschwunden oder unlesbar waren. Außerdem ist es einfach schneller als das Abgleichen von GUIDs. Ich bin jedoch damit einverstanden, dass Sie nicht unbedingt den VM-Namen im Dateinamen verwenden müssen, sondern nur den Ordner, wenn Sie dies bevorzugen. Stellen Sie einfach sicher, dass Sie anhand der Dateistruktur erkennen können, welche Dateien zu welcher VM gehören und welchen Zweck sie erfüllen.
Grant
2

Ich mag keine.

Weil keine Ihrer Vorlagen stabil ist, falls Sie eine VM verschieben.

Ich würde - und das mache ich selbst - eine Ordnerstruktur verwenden, die mit der identisch ist, die Sie erhalten, wenn Sie eine VM zwischen Hosts wechseln. Auf diese Weise ändert sich nichts, wenn Sie eine VM zwischen Hosts verschieben.

TomTom
quelle
Erhalten Sie nicht Vorlage 1, wenn Sie eine VM zwischen Hosts verschieben?
Benjamin Peikes
Probieren Sie es aus - es ist nicht. Beispielsweise befinden sich die Datenträger in einem Ordner "Virtuelle Festplatten" unter dem Namen des Computernamens.
TomTom
Das macht meine Vorlage 1. Jeder Computer verfügt über einen eigenen Ordner. In jedem dieser Ordner befinden sich ein Ordner für virtuelle Maschinen und ein Ordner für virtuelle Festplatten.
Benjamin Peikes
1
Gibt es eine Möglichkeit, Hyper-V dazu zu bringen, die Struktur zu verwenden, die Sie beim Erstellen einer VM standardmäßig beschrieben haben, @TomTom? Ich mag es, meine VMs in einem eigenen Ordner abzulegen. Aber jedes Mal erstelle ich die VM und verschiebe sie direkt danach, um die gewünschte Ordnerstruktur zu erhalten.
Matty Brown
1

Sie müssen Vorlage 2 ausführen, um die Kopplung für Teile der virtuellen Maschine von Speicherproblemen zu trennen. Das heißt, eine VHDX für eine VM ist möglicherweise für ein Leistungsvolumen geeignet, eine andere VHDX für dieselbe VM befasst sich mehr mit der Kapazität - und alle weisen möglicherweise Unterschiede in der Ausfallsicherheit auf.

Sie können also Vorlage 1 nur ausführen, wenn Sie auch die Komplikation der Zuordnung verschiedener Speicherorte in die Kopplung für die Dateiteile der virtuellen Maschinen in das Dateistrukturlayout einführen.

Somit:

VORLAGE 2

Vorlage 2 - Hier hat die Speicherverwaltung Vorrang vor dem Namespace-Layout (währenddessen wird das Namespace-Layout in der Benutzeroberfläche für die Verwaltung der VM behandelt ... dh einige Teile der VM sind möglicherweise nicht einmal lokal, sondern befinden sich in der Cloud usw. und verwenden beispielsweise den Speicher Bus)

... verschiedene Probleme im Speichermanagement verwalten:

D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx-System-01-Prod.vhdx

D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx-Data-01-Prod.vhdx

D: \ Speicher \ Pool2 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx-Data-02-Prod.vhdx

D: \ Speicher \ Pool3 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx-Recovery-01-Prod.vhdx

D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_1

D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_1.xml

D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_2

D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_2.xml

VORLAGE 1

Um diese Zuordnung in Vorlage 1 durchzuführen, bei der Namespace-Probleme im Dateisystem (auch als pseudo-bereitgestellte Benutzeroberfläche bezeichnet) Vorrang haben, müssen Speicherprobleme beibehalten werden:

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-System-01-Prod.vhdx> (verknüpft mit) D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Festplatten \ xxx- xx-xx-System-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Daten-01-Prod.vhdx> D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx- Data-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Daten-02-Prod.vhdx> D: \ Speicher \ Pool2 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx- Data-02-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Produkt \ xxx-xx-xx-Wiederherstellung-01-Produkt.vhdx> D: \ Speicher \ Pool3 \ Hyper-V \ Virtuelle Festplatten \ xxx-xx-xx- Recovery-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1> D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_1 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1.xml > D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_1.xml D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2> D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_2 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2.xml> D: \ Speicher \ Pool1 \ Hyper-V \ Virtuelle Maschinen \ GUID_2.xml

Computermensch
quelle