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:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!