Jump to content

Festplatte für VMs einrichten


MarkusR

Recommended Posts

Hi Zusammen,

 

eine Frage zur Einrichtung einer Festplatte für VMs. Das diese Platte ja nicht ins Array gehört, ist klar. Wie habt ihr so eine Festplatte konfiguriert? Ich habe gerade einen neuen Pool erstellt und diesem meine Festplatte für die VMs zugewiesen. Ist das ein gangbarer Weg? Falls ja, gibt es Empfehlungen für die Pooleinstellungen?

Link to comment

Eine VM bekommt vom Host (unraid) normalerweise keine physische Festplatte, sondern eine vdisk Datei.

Diese wird innerhalb der VM wie eine Festplatte aussehen.

Auf dem Host liegt die vdisk-Datei dann normalerweise im Verzeichnis /mnt/user/domains/<vm>/

Den Pfad /mnt/user/domains kannst Du auf einen (Cache-)Pool legen.

Idealerweise auf einen SSD oder besser NVMe basierten Pool.

 

Link to comment

Hi Ford Prefect,

 

ok klar, die VM hat auch bei mir eine vdisk Datei. Den Pfad /mnt/user/domains lege ich dann auf den Cache Pool, in dem ich in Unraid über die Weboberfläche auf Shares wechsle und dort bei domains "select cache pool" aktiviere?

Link to comment

Ja.

...seit unraid v6.9 kannst Du den pool auswählen, weil es da mehr als einen geben kann.

Ausserdem solltest Du den Cache für das Share auch aktivieren, indem Du das ("use cache") auf "prefer" stellst.

Prefer heisst, wenn beim erstellen der Datei genug Platz ist, wird die auf dem pool erstellt, sonst auf dem Array.

Wenn Du sicher bist/willst dass es nur auf dem cache-pook landet, dann auf "only" stellen.

 

Hast Du die VM und die vdisk zuvor schon erstellt, dann den VM-Dienst (und Docler-Dienst) deaktivieren,  auf Cache Nutzung umstellen, dann den mover laufen lassen und dann die Dienste wieder starten.

Link to comment

Genau, die VMs existieren schon auf dem Array, aber da nur HDDs, nicht wirklich performant. Ich habe jetzt im Share domains die Option "Use cache pool (for new files/directories)" auf only gestellt und meinen Pool unter "Select cache pool:" ausgewählt.

 

Gerade ziehe ich auf der Shell mit mv * die VMs auf die SSD um.

 

Allerdings hab ich das Array laufen lassen, da ich ja sonst nicht auf die Platten komme, oder? 

 

Wenn die VMs umgezogen sind, kann ich den Pfad in den Einstellungen zu den vdisks dann auch auf /mnt/user/domains belassen?

Link to comment
27 minutes ago, MarkusR said:

Genau, die VMs existieren schon auf dem Array, aber da nur HDDs, nicht wirklich performant. Ich habe jetzt im Share domains die Option "Use cache pool (for new files/directories)" auf only gestellt und meinen Pool unter "Select cache pool:" ausgewählt.

OK

27 minutes ago, MarkusR said:

Gerade ziehe ich auf der Shell mit mv * die VMs auf die SSD um.

Ähhh....mit mv aus der Kommondozeile? Wie genau?  von /mnt/diskX nach /mnt/diskY ??

Das ist ehrlich gesagt, keine super Idee, wenn der VM-Dienst (in den Settings zu (de-)aktivieren) noch läuft.

 

Das overlay filesystem des shares /mnt/user/domains geht ja über alle disks, die dem share zugeordnet sind.

Auf diesem Pfad kannst Du kein move mit "mv" machen!

Nur mover-Prozess ist dafür da die Dateien zwischen Array und Cache/Pool zu verschieben.

 

Bei einer vdisk Datei kannst Du das über die physischen DIsks hinweg machen, aber nur, wenn die Dienste nicht laufen!

 

27 minutes ago, MarkusR said:

Allerdings hab ich das Array laufen lassen, da ich ja sonst nicht auf die Platten komme, oder? 

Es ging nicht um das Array, sondern um VM- und Docker-Dienste, die ja Dateien unter /mnt/user/domains usw offen haben, solange die laufen.

Diese Dateien würde der mover liegen lassen um sie den Prozessen nicht "unter dem Hintern wegzuziehen".

Daher solltest Du diese vor der verschieben der Dateien stoppen....nicht das Array.

 

27 minutes ago, MarkusR said:

Wenn die VMs umgezogen sind, kann ich den Pfad in den Einstellungen zu den vdisks dann auch auf /mnt/user/domains belassen?

Also, so wie Du das ausdrückst, vermute ich mal, Du hast noch nicht ganz verstanden, wie das user-Share Dateisystem in unraid funktioniert bzw. wie es sich über verschiedene, physikalische Disks hin erstreckt.

Oder Du hast es verstanden und versuchst eine Abkürzung zu nehmen ;-)

 

 

Link to comment

oh... das mit dem VM-Dienst war mir so nicht bewusst. Ich schaue mal, ob er nach dem mv dann was übrig gelassen hat.

 

Hmm... ich vermute mal eher, dass ich das mit dem user-Share noch nicht ganz verstanden habe. Also der domains Ordner liegt ja unter /mnt/user/domains. Mein Pool ist nach der Erstellung in /mnt/vmdrive gemountet. Wenn ich ja jetzt die VMs umziehe, also die vdisks in diesem Fall, muss ich doch in den Settings von jeder VM den Pfad entsprechend auf /mnt/vmdrive/<VM-Ordner> anpassen, oder stehe ich da gerade auf dem Schlauch? :D

Link to comment

Ja, Du stehst auf dem Schlauch.

 

in unraid ist jede physische Disk (auch ein pool aus mehreren Disks ist - vereinfacht gesprochen - wieder erstmal nur eine Disk).

Jede DIsks hat ein eigenes, vollständiges Dateisystem.

Jede Disk hat einen Mountpoint unter /mnt (cache, vmdrive, disk1, disk2, ..)

Aber "user" unter /mnt ist *keine* Disk, sondern ein overlay Dateisystem.

Der pfad unter /mnt/user enthält die Shares.

Bei den Shares stellt Du ein, über welche Disks sich das share erstreckt.

Macht Du zb ein share "backup", siehst Du es unter /mnt/user/backup.

Aber auch jede DIsk im Share bekommt diesen Ordner (zB unter /mnt/disk1/backup, /mnt/disk2/backup, mnt/diskX/backup *und* auch /mnt/cache/backup, wenn Du den Cache aktivierst)

In Deinem Fall gibt es das Share "domains" dann unter /mnt/user/domains und es verteilt sich auf /mnt/diskX *und* /mnt/vmdrive).

 

Aber bei Zugriff über den Pfad /mnt/user/domains, siehst Du die einzelnen DIsks nicht mehr, sondern nur die Kombination aller beteiligten Disks als *ein* Filesystem.

Schreibst Du eine Datei über das Share, entscheidet unRaid auf welcher DIsk im share diese physisch zu liegen kommt.

Bei cache=prefer zunächst auf dem Cache-Pool, der eingestellt ist.

 

Wenn Du in den Settings für den VM-Dienst also /mnt/user/domains - das User share - angegeben hast und dort der pool "vmdrive" eingestellt ist, landet die vdisk dort.

Du siehst die gleiche, vdisk-Datei aber über /mnt/user/domains/<vm>/vdisk1.raw und über /mnt/vmdrive/<vm>/vdisk1.raw

Link to comment
17 hours ago, MarkusR said:

Gerade ziehe ich auf der Shell mit mv * die VMs auf die SSD um.

Das ist Aufgabe des Movers, denn der nimmt Rücksicht auf gerade offene Dateien (im Gegensatz zu mv).

 

Korrekter Weg:

- Domain Share auf Prefer

- VM und Docker deaktivieren

- Mover starten

- prüfen ob auch alles auf dem Cache liegt

- VM und Docker aktivieren

 

 

 

 

Link to comment

@Ford Prefect @mgutt

 

Erstmal vielen lieben Dank für die Erläuterungen und die Zeit, die ihr euch für mich genommen habt. Finde ich toll :-* Ok, jetzt hat es Klick gemacht. Ich habe dann auch den domains Ordner auf der vmdrive-Disk dann gesehen. Dort habe ich dann die VMs wieder integriert. Für die Zukunft habe ich mir das mit den Dienst-Deaktivierungen und dem Mover hinter die Ohren geschrieben. Da war ich zu Linux classic like unterwegs. Aber die VMs leben noch 🙂

 

Noch eine letzte Frage zu den Pools. Ich habe zu der 2TB SSD noch eine 450GB MV2. Diese habe ich dem Pool hinzugefügt. Da Unraid so kein Raid direkt kennt, dachte ich, der Speicher wird dann erweitert. Im Pool steht auch Gesamtspeicher 2,5 TB. Was mich jedoch wundert ist der Speicher, der im Gesamten verbraucht wird. Die vmdisks im domains-Ordner sind 1,3 TB groß. Im Web-Frontend unter Main wird mir jetzt jedoch ein Verbrauch von 1,5 TB angezeigt und noch 7GB freier Festplattenplatz.

 

Bedeutet es, dass das Hinzufügen einer kleineren Platte somit keine gute Idee war? Im Internet habe ich Aussagen vorgefunden, dass der Speicherplatz normalerweise so groß, wie die kleinste Festplatte im Pool ist und man es nicht tun sollte. Allerdings verwundert es mich, dass er bei mir dann trotzdem 2,5 TB Gesamtgröße anzeigt.

Edited by MarkusR
Link to comment

Also unRaid macht schon Raid, auf dem Pool, nicht auf dem Array. ;-)

 

Auf dem Pool läuft ein BTRFS (also Software) Raid. Bei zwei gleichen Disks, wegen der Redundanz, dann ein Raid1 (mirror).

Das kannst Du bei BTRFS auch bei gemischten Grössen machen, da kommt dann was krummes raus.

Bei den Grössenunterschieden aber weiss ich auch nicht, was BTRFS daraus macht.

 

Ohne Redundanz wäre es dann ein raid0, dann sollten beide - abzüglich  Metadaten - fast die Summer beider ergeben, netto.

Was hast Du eingestellt für den pool?

Link to comment

Er hatte mir da tatsächlich ein Raid1 draus gemacht. Gut bei einem Raid1 sollte dann die kleinere Festplatte die maximale Kapazität darstellen. Allerdings hat er bei mir die genannte Konstellation hervorgebracht.

Ich habe die kleinere jetzt in einen separaten Pool genommen und die Kapazitäten sind jetzt auch wieder normal. 

 

Allerdings kann ich diese Platte jetzt nicht auch noch mit /mnt/domains verknüpfen, oder? 

Hier würde mir jetzt als einzige Lösung einfallen bei einer VM beim Pfad zur vmdisk direkt /mnt/<poolname> anzugeben, oder?

Link to comment
13 hours ago, MarkusR said:

Allerdings kann ich diese Platte jetzt nicht auch noch mit /mnt/domains verknüpfen, oder? 

Wenn du beim Share domains diesen Pool als Cache Pool auswählst, dann schon. Vom Prinzip kann jeder Share einen eigenen Cache Pool verwenden.

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...