Virtual Machines - Add `virtio-scsi`

Problem/Justification
We can only currently use virtio-blk and AHCI for our storage devices in VM but virtio-scsi is a more modern driver and also alows different configurations.

we should keep virtio-blk

Some Research

  • Proxmox recommends using SCSI with VirtIO SCSI single as SCSI Controller Type for VM disks, to have the most features and best performance.
  • VirtIO block may get deprecated in the future.
  • Looking at the advantages of virtio-scsi, I believe it’s the correct choice as a default VM disk interface in oVirt. For optimized VMs, there is always the choice of manually switching to virtio-blk (or IDE, if you’re optimizing for slowness… or compatibility).

Impact
TrueNAS emulation platform is well behind current norms.

User Story
n/a

yeah virtio-scsi would be nice on scale. ui only gives virtio-blk / ahci right now.

for windows guests virtio-scsi single is usually the better path (multi queue, discard, etc). linux guests are fine on virtio-blk for plain disks, scsi helps more when you want multiple disks / cdrom on one controller.

+1 on exposing it in the vm disk device picker. till then people hack libvirt xml / midclt device create and it gets messy on upgrades.

Discard/unmap has been added to virtio-blk a while back, but I do get the impression it is now the legacy driver, a bit like AHCI which is just a modified IDE driver and all the limitations that comes with.