SCSI much slower than VirtiO

-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