-device lsi,id=scsi0,bus=pci.0,addr=0x4
It is emulated LSI SCSI controller. You should figure out how to use virtio-scsi. AFAIK it is the default controller for SCSI on Debian/Ubuntu but it must be possible to define other in OpenNebula.
-drive file=/var/lib/one//datastores/0/13/disk.0,format=qcow2,if=none,id=drive-scsi0-0-0,cache=none
You should have discard=unmap
for TRIM to actually work. Set DISCARD=unmap
in the VM template or IMAGE template.
Probably you are using the default threaded IO model, to use aio=native
you must set the IO=native
in the VM template(or image template).
Enabling virsio-scsi queues should help too, but keep in mind that for optimal performance the number of queues should match the number of VCPUs though.
Changing these should have performance close to virtio-blk if not better.
There are further optimizations possible but they need to alter the VM’s XML outside of OpenNebula though.
Hope this helps.
Best Regards,
Anton Todorov