How to use vhost-scsi with Intel P3700 NVME SSD in KVM

erhansahin

New Member
Aug 3, 2015
3
0
1
Dear all,

I am using proxmox beta 4 in my HP DL 380 server with KVM.
I configured Intel P3700 NVME - nvme0n1 as Virtio and on windows server 2008 r2 with virtio-scsi driver
i am getting 100 K random IOPS when iothread is enabled.it works fine.
(the max capacity of the drive is 460 K , and in win2k8 bare metal it gets 350 K random iops !)
But i learned that "vhost-scsi" makes 200 K iops and lower latency.
I am making the disk "SCSI" and "scsi controller" = "Virtio Scsi" , it works in the win2k8 guest as Redhat Virtio SCSI Passthrough, but it only gets
78K iops :( and cpu is overloaded.
I enabled CONFIG_VHOST_SCSI=m in vpe kernel config , but i don't know it is enough to do this.

How can i use vhost-scsi in proxmox ?
Could you tell me step by step please ?

how to enable, how to setup the disks , which drivers to use etc ?
 
vhost-scsi is not yet implement. (this require to pass a virtual controller to qemu command line, and passthough a local lio target).
I have some basic patches, but they need a lof of cleanup


Do you have tried to add multiqueues (if you use virtio-scsi) ?
It's not yet available in gui, but you can add in your vmid.conf disk options : ,queues=X.

and choose virtio-scsi-single as scsi controller


Also, do you have tried to add multiple virtio disk with iothread ? (I don't known which application do you run, but with 1iothread by disk, it could scale too)
 
Last edited:
vhost-scsi is not yet implement. (this require to pass a virtual controller to qemu command line, and passthough a local lio target).
I have some basic patches, but they need a lof of cleanup


Do you have tried to add multiqueues (if you use virtio-scsi) ?
It's not yet available in gui, but you can add in your vmid.conf disk options : ,queues=X.

and choose virtio-scsi-single as scsi controller


Also, do you have tried to add multiple virtio disk with iothread ? (I don't known which application do you run, but with 1iothread by disk, it could scale too)


Dear Spirit,
Thank you very very much for your answers.
I understood that vhost-scsi is far away for now, maybe it will be good in the future.

so i will try to use virtio-scsi-single as you said. But on the disk creation side should i use virtio or SCSI ?
i will try multiqueues too. But i am using oracle 10g on 1 lun and it must be 1 lun . i have only one db .
if i use multiqueues, does this mean , for one query , it will use more bandwidth and iops will increase for ex 150.000 iops ?
i thought to add more virtio disk with iothread, but, i have only one db , and its has one disk.
i want to use the same db on all disks in sync.
in my thought (i don't know very well about multipathing ) adding multiple disk means you get for ex 400.000 iops may be in total ,
but they are for different databases. i want 1 oracle Db to run at for ex. 300.000 iops.

I will be so glad if you help me.
 
Using virtio-scsi means choosing scsi interface for disk in 'hardware' tab and choose scsi controller type 'VIRTIO' on 'Options' tab.
 
Using virtio-scsi means choosing scsi interface for disk in 'hardware' tab and choose scsi controller type 'VIRTIO' on 'Options' tab.

if i do like this, in windows it loads with vioscsi driver and it becomes Redhat Virtio Scsi Pass Through , not Virtio Scsi
and the performance is worse than the config with
choosing virtio interface for disk in 'hardware' tab and choosing scsi controller type 'VIRTIO' on 'Options' tab.
why ?

and it will be good if someone answers the other above questions of me.

thankx a lot.
 
so i will try to use virtio-scsi-single as you said. But on the disk creation side should i use virtio or SCSI ?

i will try multiqueues too.


virtio-scsi-single = scsi controller in options
you need to use scsi disks.

This is needed for multiqueues.



But i am using oracle 10g on 1 lun and it must be 1 lun . i have only one db .
if i use multiqueues, does this mean , for one query , it will use more bandwidth and iops will increase for ex 150.000 iops ?
i thought to add more virtio disk with iothread, but, i have only one db , and its has one disk.
i want to use the same db on all disks in sync.
in my thought (i don't know very well about multipathing ) adding multiple disk means you get for ex 400.000 iops may be in total ,
but they are for different databases. i want 1 oracle Db to run at for ex. 300.000 iops.

I don't known if you can put oracle journal on different disk ? , it should give you already big boost for write.
One another possibility could be to do some software raid0 in the guest, with multiple iothread disks.
I never try it, but it should work.

Also, note that virtio and virtio-scsi drivers are faster in linux, so if you can run oracle 10g on linux, do it !
 
Any sane Oracle DBA would never consider Windows and options for running an Oracle database!! Oracle is developing their software for Unix like OS, the Windows version has always been a product for the marketing department and never considered a viable option for professional use. I you insists on running your database on windows you should only consider MSSQL.
 
Last edited: