Mehrere VMs auf einer SSD


EricM

Recommended Posts

Hallo Leute,

 

Im Englischen Forum habe ich gelesen, dass es möglich ist mehrere VMs auf einer SSD zu installieren, jedoch finde ich dazu keine genau Anleitung, und so wie ich es probiert habe klappt es nicht.

 

Ich habe eine 1TB SSD, die nicht gemountet ist sondern nur unter meinen unassigned Devices aufscheint. Eine VM darauf zu installieren ist kein Problem, umgesetzt habe ich das mittels /dev/disk/by-id/ata-NAMEderSSD. Im Laufe des Installationsvorganges von Windows 10, habe ich eine 250GB große Partition erstellt, auf der ich Windows installiert habe. Den restlichen Speicherplatz habe ich nicht zugewiesen.

 

Wenn ich aber nun eine weitere VM auf den selben Pfad mittels /dev/disk... hinzufügen möchte, zum Beispiel eine Linux Ubuntu VM und diese dann starte, komme ich immer auf die Windows 10 VM.

 

Wie kann ich das beheben und umsetzen? ich möchte gerne meine 1TB SSD auf 4 gleich große Partitionen aufteilen, damit ich auf dieser SSD 4 verschiedene VMs installieren kann. Ich bitte um eine genaue Anleitung, kenne mich nicht sehr gut aus mit Computern usw.

 

Danke für eure Hilfe!! Bleibts Gsund!!

Eric

Link to comment
32 minutes ago, EricM said:

/dev/disk/by-id/ata-NAMEderSSD

Du schleifst damit die Hardware, also die komplette SSD durch. Schon alleine, dass du eine physische SSD verwendest, ist schon "ungewöhnlich", da du ja extra recherchiert hast wie das geht.

 

Normal erstellst du eine VM, gibst die Größe der Disk an und das war es. Die VM bekommt dann eine virtuelle Disk-Datei "vdisk1.img" auf deinem Cache Pool:

1652040520_2021-07-1523_03_42.thumb.png.b19889d0aee2953b3a208f3a1f0b3c80.png

 

Wenn du keinen Cache-Pool hast, ist das bereits dein erster Fehler. Der zweite wäre es, wenn es keine NVMe ist (mehrere VMs brauchen viele IOPS) und der Dritte, wenn es keine zwei NVMe im RAID1 sind (wegen der Ausfallsicherheit).

 

 

Link to comment
Just now, mgutt said:

Du schleifst damit die Hardware, also die komplette SSD durch. Schon alleine, dass du eine physische SSD verwendest, ist schon "ungewöhnlich", da du ja extra recherchiert hast wie das geht.

 

Normal erstellst du eine VM, gibst die Größe der Disk an und das war es. Die VM bekommt dann eine virtuelle Disk auf deinem Cache Pool:

1652040520_2021-07-1523_03_42.thumb.png.b19889d0aee2953b3a208f3a1f0b3c80.png

 

Wenn du keinen Cache-Pool hast, ist das bereits dein erster Fehler. Der zweite wäre es, wenn es keine NVMe ist (mehrere VMs brauchen viele IOPS) und der Dritte, wenn es keine zwei NVMe im RAID1 sind (wegen der Ausfallsicherheit).

 

 

 

 

Das mit dem /dev/disk.. hat mir ein Freund geschrieben und das hat für mich funktioniert daher habe ich das nicht hinterfragt.

 

Zum Thema Cache: Ja ich habe einen Cache, eine 500GB große NVMe SSD. Diese möchte ich aber nicht für meine VMs nutzen, sondern nur als Cache. Daher habe ich eine extra SSD, die nur für die VMs gedacht ist.

Link to comment
5 minutes ago, EricM said:

Zum Thema Cache: Ja ich habe einen Cache, eine 500GB große NVMe SSD. Diese möchte ich aber nicht für meine VMs nutzen, sondern nur als Cache. Daher habe ich eine extra SSD, die nur für die VMs gedacht ist.

Und warum? 500GB ist ja ziemlich viel für ein bisschen Upload Cache. Und wenn es zu wenig ist, dann hol dir eben 1TB. Besser wie gesagt 2x 1TB, damit du auch eine Ausfallsicherheit hast. Zusätzliche SSDs gehören zu den anspruchsvolleren VM Techniken, die nur die anwenden, die eben nicht mehrere VMs auf einer SSD haben wollen. Vor allem wäre es absolut kontraproduktiv mehrere VMs auf einer SATA SSD zu haben. SATA ist ein serielles Protokoll, eine NVMe hat dagegen 4 Lanes mit jeweils 2 Hin- und Rückkanälen, also 8 parallele Kanäle und damit viel besser um mehrere VM-Disks darauf abzulegen.

 

Also entweder nutzt du für jede VM eine eigene SATA SSD oder du sorgst für einen ausreichend großen Cache Pool für Uploads, Docker und VM-Disks. Andere Alternativen kann ich nicht empfehlen.

Link to comment
1 minute ago, mgutt said:

Und warum? 500GB ist ja ziemlich viel für ein bisschen Upload Cache. Und wenn es zu wenig ist, dann hol dir eben 1TB. Besser wie gesagt 2x 1TB, damit du auch eine Ausfallsicherheit hast. Zusätzliche SSDs gehören zu den anspruchsvolleren VM Techniken, die nur die anwenden, die eben nicht mehrere VMs auf einer SSD haben wollen. Vor allem wäre es absolut kontraproduktiv mehrere VMs auf einer SATA SSD zu haben. SATA ist ein serielles Protokoll, eine NVMe hat dagegen 4 Lanes mit jeweils 2 Hin- und Rückkanälen, also 8 parallele Kanäle und damit viel besser um mehrere VM-Disks darauf abzulegen.

 

Also entweder nutzt du für jede VM eine eigene SATA SSD oder du sorgst für einen ausreichend großen Cache Pool für Uploads, Docker und VM-Disks. Andere Alternativen kann ich nicht empfehlen.

 

 

Ok, danke dir :)

Link to comment
12 hours ago, mgutt said:

Wenn du keinen Cache-Pool hast, ist das bereits dein erster Fehler.

Nur für's Protokoll:

Keinen Cache-Pool zu haben ist per se kein Fehler. 

Ich habe auch keinen, sondern verwende meine SSDs als ZFS Pool für Docker und VMs. Das funktioniert allen Kassandrarufen zum Trotz seit vielen Monaten hervorragend. 

Link to comment

Will EricM denn alle VMs gleichzeitig laufen haben? Ich habe nämlich einen ähnlichen Plan gehabt...

neue 1TB SSD Cache - für Unraid (Docker,etc.)

alte 500GB SSD für Windows, Linux, MacOs (je nach Bedarf wird nur eine VM laufen)

 

Ist das wirlich so ein Problem? Falls ja, wie sollte ich dann am besten die zwei SSDs einsetzen?

 

Sollte die VM SSD dann ein UA Device sein oder ein eigener Cache Pool in Unraid sein?

Link to comment
4 hours ago, p5lukas said:

Will EricM denn alle VMs gleichzeitig laufen haben? Ich habe nämlich einen ähnlichen Plan gehabt...

neue 1TB SSD Cache - für Unraid (Docker,etc.)

alte 500GB SSD für Windows, Linux, MacOs (je nach Bedarf wird nur eine VM laufen)

 

Ist das wirlich so ein Problem? Falls ja, wie sollte ich dann am besten die zwei SSDs einsetzen?

 

Sollte die VM SSD dann ein UA Device sein oder ein eigener Cache Pool in Unraid sein?

 

Ich habs jetzt mit einem eigenen Pool geregelt. Also den Array gestoppt, einen neuen Pool Namens vms hinzugefügt, und dann dort die 1TB SSD ausgewählt. Danach einfach das Array wieder gestartet, dann scheint bei den UA Devices auf das eine Platte fehlt an die sich Unraid erinnern kann, diese einfach entfernen. Und dann beim installieren der VMs einfach den vms Pool als Speicherort auswählen. Und bei den Shares den domains share auf den vms Pool packen

 

Hab nicht gewusst das es so einfach sein kann, das mit den Pools ist ja neu.

 

Und der Cache, also bei mir die 500GB nvme SSD, ist ganz normal als cache aktiv.

  • Thanks 1
Link to comment
19 hours ago, p5lukas said:

Ist das wirlich so ein Problem? Falls ja, wie sollte ich dann am besten die zwei SSDs einsetzen?

 

Kommt auf deinen Anwendungsfall an. VMs und Docker auf seperaten SATA SSDs zu haben ist schon mal kein Fehler. Auch die VMs auf einer SATA SSD zu haben, ist erst mal kein Problem. Immer noch deutlich besser, als auf ner normalen HDD.

 

Wenn es nun mehre VMs sind, die auch starke I/O Last erzeugen, wirst du es jeddoch schnell merken, da die VMs dann einfach nicht so performant laufen, wie sie sollten.

 

Ich selbst habe drei VMs auf einer SATA SSD am laufen. Eine Windows VM für rein administrative Zwecke, eine PiHole VM und eine Starface VM (Telefonie). Die drei laufen alle ganz normal, da keine von denen eine besonders hohe I/O Last erzeugt. PiHole würde sogar im Docker gehen, habe mit der VM jedoch ein paar Freiheiten mehr, die im Docker nicht gehen. Ob es klug ist, einen DNS Server oder eine Firewall auf Unraid zu betreiben, ist jedoch ein anderes Thema. ;)

 

Auch deine drei VMs würden so erst mal keine Probleme machen. Sobald halt eine eine hohe I/O Last erzeugt, werden alle VMs bei dir langsamer reagieren. Gaming VMs oder Produktive VMs (Photoshop, Rendering, usw) sollten sich daher am besten nicht eine SATA SSD teilen. SATA SSD sind da einfach limitierend was die gleichzeitigen Zugriffe angeht.

Edited by Gorosch
Link to comment
On 7/22/2021 at 7:02 PM, EricM said:

Und dann beim installieren der VMs einfach den vms Pool als Speicherort auswählen. Und bei den Shares den domains share auf den vms Pool packen

 

Cool, versuche ich auch mal so. Was ist denn mit der libvirt.img? Kann die auf dem cache share "system/libvirt/" bleiben oder sollte ich einen anderen share erzeugen, welcher auf der vms SSD liegt? Quasi "vmssystem/libvirt/" z.B.?

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.