Info zu VirtIO SCSI

sunghost

Active Member
May 27, 2011
168
1
38
Hallo,
ich nutze KVM mit QCOW2 und sehe immer mal wieder IOWaits und langsame Schreibwerte im Gast. Nach etwas suchen und lesen bin ich auf den Hinweis VirtIO SCSI zu nutzen gestoßen. So recht verstanden bzw. etwas zum nachlesen habe ich nicht gefunden. Bei der Erstellung einer VM kann ich auch nur VirtIO oder SCSI wählen.
Kann mich hier mal bitte jemand abholen und ein paar Infos streuen :) - Danke
Sunny
 
Hi,
oh danke, an dieser Stelle habe ich jetzt gar nicht gesucht. Da ich alle KVMs mit DISK VirtIO versehe und VirtIO SCSI seit 4.3 Default in Proxmox ist, ist die Einstellung bereits so bei mir gesetzt. Da lässt sich also nichts mehr an Performance erzielen. Auf VirtIO SCSI single umzustellen, wo jede Disk mit einem eigenen Controller angesprochen wird, soll wohl auch nichts bringen..
Dann hat sich das Thema für mich erledigt.
-> danke für den Hinweis auf die Option "SCSI Controller Type" heißt sie unter Optionen der VM :)
 
...aber ist es nicht vielleicht so, dass man die Disk als SCSI festlegt und in den Optionen einstellt, welcher SCSI-Controller benutzt werden soll?
Ich benutze auch gerne VirtIO; unter Linux auch kein Problem, nur unter Windows ist es eher "gemütlich". Aber da ich nur selten Windows nutze, ist es mir eher Wurscht ;)

Edit: Was ist damit sagen will: VirtIO != VirtIO-SCSI
 
Wenn ich das aus der Manpage von Proxmox zur VirtIO richtig verstandne habe, dann ist VirtIO SCSI der Default seit 4.3. Somit gibt es ein reines VirtIO nicht mehr. Man kann es ja auch nicht mehr konfigurieren. SCSI kannst noch einstellen, aber das ist nicht VirtIO SCSI - IMO
 
Oh, tatsächlich. Da habe ich wohl schon länger keine neue KVM angelegt ;) Ja, SCSI mit VirtIO-SCSI ist "jetzt" Standard.
Aber was hast Du denn jetzt in den "lahmenden" KVMs eingestellt? VirtIO oder SCSI? Denn in #3 schreibst Du ja, Du hättest sie als VirtIO erstellt. Insofern würde ich sie spaßeshalber mal auf SCSI umstellen und neu messen.

Edit: ...und die Disk ggf. in RAW wandeln soll auch noch etwas Boost bringen...
 
Hi,
ich muss zugegeben, dass ich bei der Erstellung einer VM immer für Disk und Net die VirtIO Treiber auswähle. Die Änderung unter den Optionen von nur VirtIO (PVE <4.3) habe ich gar nicht mitbekommen. Entsprechend waren alle neueren VMs mit VirtIO und dem Controller Typ VirtIO-SCSI bereits perse konfiguriert.

Zu deinem Vorschlag mal auf SCSI zu wechseln, macht denke ich nicht viel Sinn, wäre interessant die Werte zu vergleichen, aber Performance technisch macht es kaum Sinn.

Ich habe eben aber noch eine VM gefunden die sogar beim Controller Typ auf LSI 53C895A eingestellt ist. Woher das kommt kann ich grad nicht nachvollziehen, von mir jedenfalls nie eingestellt. Evtl. bei einem händischen Umzug auf den neuen Server ?!?. Bei dieser werde ich später mal die Disk Performance messen und dann auf VirtIO-SCSI umstellen. Bin schon gespannt .)

Das die Verwendung von RAW mehr Performance bringt habe ich auch gelesen, allerdings sind mir die Nachteile in meinem Fall zu gravierend, dass ich es höchstens in einem Test als Vergleich ausprobieren würde, dann aber mit frisch installierten Systemen.
 
Hi,
ich habe gestern einige Tests mit fio durchgeführt und dabei VirtIO mit dem, wie ich nun gesehen habe, Default Controller Typ LSI 53C895A, sowie dem VirtIO-SCSI und dem VirtIO-SCSI Single durchgeführt. Ich werte die Zahlen noch aus und lass das mal von nem Freund in seinem Blog posten, teile hier den Link dann noch. Eines vorweg. Die Unterschiede sind marginal, bis gar nicht vorhanden. Ich werde zztl. nochmal statt QCOW2 mit RAW als Disk Format testen.
CU
 
disk type virtio
Hi,
ich habe gestern einige Tests mit fio durchgeführt und dabei VirtIO mit dem, wie ich nun gesehen habe, Default Controller Typ LSI 53C895A, sowie dem VirtIO-SCSI und dem VirtIO-SCSI Single durchgeführt. Ich werte die Zahlen noch aus und lass das mal von nem Freund in seinem Blog posten, teile hier den Link dann noch. Eines vorweg. Die Unterschiede sind marginal, bis gar nicht vorhanden. Ich werde zztl. nochmal statt QCOW2 mit RAW als Disk Format testen.
CU

der SCSI controller type ist nur für SCSI-Disken relevant, nicht für VIRTIO-Disken. es gibt quas zwei Möglichkeiten VIRTIO zu verwenden: VIRTIO-Disk (egal welcher SCSI-Controller konfiguriert ist, da hier kein SCSI verwendet wird) oder SCSI-Disk mit VIRTIO-SCSI-Controller (single oder nicht)
 
Hallo fabian,
super jemand vom Stuff :). Danke für die Aufklärung. Dann deckt sich das auch mit meinen Beobachtungen was die Performance angeht. Irritierend ist halt nur, dass in einigen Foren VIRTIO-SCSI für mehr Performance empfohlen wird, aber das konnte ich mit meinen Benchmarks auch wiederlegen, zumindest bei meinen Tests. Demnach ist die per Default eingestellte VirtIO DISK mit dem Default Controller Typ LSI 53C895A am optimalsten. Korrekt? Mehr Performance lässt sich dann wohl nur über den Disktyp (qcow2 bzw. raw), oder dem Caching (kein, Direct sync etc.) erreichen, was aber von Fall zu Fall entschieden werden muss. Korrekt? Gibt es ansonsten Tuningmöglichkeiten für KVM mit qcow2 auf einem darunter liegenden SWRaid?
 
Also bei mir hats anders ausgesehen. Als ich die Windows 2012er Maschine (testvm) ne virtio-scsi Platte unterjubelte war das ein gewaltiger Performanceschub. Man muss bedenken das virtio-scsi viele Features mehr besitzt, unter anderem auch discard. Ich benutze hier aber RAW mit ZFS, was natürlich wesentlich performanter als ein qcow2 ist. Auch ThinLVM wäre im Betrieb performanter. Beim In und Export (ThinLVM) kommt es auf die Stärke der Maschine an.
 
Also bei mir hats anders ausgesehen. Als ich die Windows 2012er Maschine (testvm) ne virtio-scsi Platte unterjubelte war das ein gewaltiger Performanceschub. Man muss bedenken das virtio-scsi viele Features mehr besitzt, unter anderem auch discard. Ich benutze hier aber RAW mit ZFS, was natürlich wesentlich performanter als ein qcow2 ist. Auch ThinLVM wäre im Betrieb performanter. Beim In und Export (ThinLVM) kommt es auf die Stärke der Maschine an.

(1) Hier hat auch jemand gefragt was der Unterschied zwsichen:
- viostor/: Virtio Block driver
- vioscsi/: Virtio SCSI driver​
ist.
Die Antwort vom Staff-Member bestätigt die Aussage das "vioscsi" (aka virtio-scsi) mehr features hat und ggü. "viostor" vorzuziehen ist.



(2) Hier schreiben einige, dass VirtIO für bei Bus/Device als auch bei Network-Modul für Windows-basierte OS-Typen die Standardeinstellung ist. Dies kann ich nicht bestätigen. Wenn ich unter Proxmox 4.4 eine neue VM mit OS = Windows 7/8/2010/2012/.. wähle ist der Bus/Device=IDE und Network=E1000 als Standard markiert. Nur bei OS=Linux4.X ist Bus/Device=SCSI und Network=VirtIO
 
Last edited:
Ich habe keine Benchmarks gefahren, sondern nur auf die "gefühlte Wuppdizität" geachtet. Meine Proxmoxen sind aber auch "nur" Single-Hosts im Raid1, bzw. 5, mit überwiegend LXCs und wenigen, meist nicht produktiven Linux- und Windows-KVMs.
Bei den LXCs spielt es ja eh keine Rolle, aber bei den KVMs konnte ich nach dem Wechsel von Virtio-Block nach -SCSI einen gefühlten Schub feststellten, besonders bei den Windows-KVMs.
Für mich persönlich ist der Vorteil für SCSI definitiv, dass es bei den Linux-KVMs jetzt nur noch /dev/sda gibt und ich, z.B. beim Skripten, nicht mehr darauf achten muss, ob eine KVM nicht doch /dev/vda ist ;)
 
Hi,
und sorry das es etwas gedauert habt, aber ich möchte mit nachfolgenden Benchmarks nochmal in die Diskussion einsteigen und fragen was ihr davon haltet:
https://www.taste-of-it.de/proxmox-4-ext4-virtio-scsi-raw-qcow2-performance-vergleich/
Hi,
ich kann aus den Graphen irgendwie keine Schlüsse ziehen.

1. Legende der Farben fehlt.
2. Y-Achse bezieht sich anscheinend auf IOPS - aber auf der X-Achse sind auch CPU-%, Runtime und Bandwith zu sehen, die zum Teil etwas ineinander über gehen.

Udo
 
Hi,
zu deinen Punkten: Das Plugin für Wordpress gibt eine Legende nicht her, aber du kannst die erste Farbe im Chart gleich den ersten Host der Tabelle setzen, also rot=Host. Die Werte in der Y-Achse sind durch die unterschiedlichen Tests, selbstverständlich für alle Werte die Grundlage, sodass der höchste Wert das Maß für die Y-Achse hergibt. Ansonsten hätte je Resultat z.B. IOPS eine eigene Tabelle und Chart erstellt werden müssen.
Ich finde schon dass die Charts etwas aussagen, ansonsten einfach in die Tabelle schauen, denn dort stehen die Fakten. Evtl. kannst du dann eher Schlüsse ziehen...
 
Also bei mir hats anders ausgesehen. Als ich die Windows 2012er Maschine (testvm) ne virtio-scsi Platte unterjubelte war das ein gewaltiger Performanceschub. Man muss bedenken das virtio-scsi viele Features mehr besitzt, unter anderem auch discard. Ich benutze hier aber RAW mit ZFS, was natürlich wesentlich performanter als ein qcow2 ist. Auch ThinLVM wäre im Betrieb performanter. Beim In und Export (ThinLVM) kommt es auf die Stärke der Maschine an.

Hi,
also wenn ich fabian richtig verstehe, kann ich die "Options" - "SCSI Controller Type" => "VirtIO SCSI" nur dann nutzen, wenn ich zuvor die Disks als SCSI eingebunden habe - richtig?
Wenn ich -wie bisher unter Linux VMs von mir angewendet - zuvor die Disks per VirtIO einbinde, greifen obige "SCSI Controller Type" Einstellungen überhaupt nicht - auch richtig?
Ich bin dann beim Virtio controller, Zitat: " also called virtio-blk to distinguish from the VirtIO SCSI controller, is an older type of paravirtualized controller which has been superseded in features by the Virtio SCSI Controller." Zitat ENDE
Wie es in den eingebauten: pve-docs/chapter-qm.html#qm_hard_disk lautet.

Das bedeutet dann auch, dass die Info unter: https://pve.proxmox.com/wiki/Performance_Tweaks "Use virtIO for disk and network for best performance." so nicht mehr stimmen, sondern dass aktuell die performanteste Anbindung SCSI Disks mit "VirtIO SCSI" ist - auch richtig?

Kann ich unter linux von VirtIO-Disks durch "remove" und wieder einbinden mit SCSI nach SCSI-Disks wechseln?
Da sich dabei die Anbindung in der VM von
Code:
/dev/vda  zu /dev/sda
/dev/vdb  zu /dev/sdb
usw.
ändern, muss zumindest in der /etc/fstab alles mit UUIDs eingebunden sein.

Funktioniert das dann oder hat dieser Wechsel noch weitere negative Konsequenzen?

Grüße,
maxprox
 
Last edited:
Kann ich unter linux von VirtIO-Disks durch "remove" und wieder einbinden mit SCSI nach SCSI-Disks wechseln?
Haben hier auch überall gemacht, natürlich mit UUID. Gentoo und Ubuntu. Falls Kernel selber gebacken musst schauen das du die neuen Treiber ein kompilierst. Sonst gibt es nichts zu beachten.
 
Wir haben auch teilweise noch von IDE oder halt VirtIO auf SCSI umgestellt. Ist mit Linux ab Debian 7 bzw Ubuntu 14 absolut kein Problem. Versionen davor bzw CentOS benötigen dann doch einen manuellen Eingriff per Rescue CD (fstab und grub bearbeiten).
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!