Virtio-scsi is a replacement for the virtio block device (virtio-blk) and it benefits from lessons learned using virtio-blk.
The main problem with virtio-blk is that a whole PCI device is required for each virtual hard disk. PCI devices are limited in practice to 32, with several being used for other purposes like network cards. There are ways to get around this, but they’re all pretty ugly, such as requiring multiple PCI buses or using the PCI multifunction feature. SCSI on the other hand has long provided support for multiple host adapters and LUNs.
With libguestfs support for virtio-scsi, we get a couple of highly desirable features for free: being able to add a much larger number of disks (instead of being limited to ~29), and being able to easily use “TRIM” support for discarding blocks.
In future it’ll make it easier to add support for hotplugging.