On Wed, May 29, 2013 at 05:05:31PM +0800, Wenchao Xia wrote: > 于 2013-5-28 17:00, Wenchao Xia 写道: > >于 2013-5-28 16:33, Asias He 写道: > >>On Tue, May 28, 2013 at 10:01:14AM +0200, Paolo Bonzini wrote: > >>>Il 28/05/2013 09:13, Wenchao Xia ha scritto: > >>>>>>From: Nicholas Bellinger <n...@linux-iscsi.org> > >>>>>> > >>>>>>The WWPN specified in configfs is passed to "-device vhost-scsi-pci". > >>>>>>The tgpt field of the SET_ENDPOINT ioctl is obsolete now, so it is > >>>>>>not > >>>>>>available from the QEMU command-line. Instead, I hardcode it to > >>>>>>zero. > >>>>>> > >>>>Hi, Paolo > >>>> Any document about how to config it correctly in configfs, before > >>>>invoking qemu with the WWPN number? > >>> > >>>Unfortunately no, but vhost-scsi doesn't have many knobs (unlike > >>>iSCSI for example) so it's quite simple. Here is an example: > >>> > >>>cd /sys/kernel/config/target > >>>mkdir -p core/fileio_0/fileio > >>>echo 'fd_dev_name=/home/pbonzini/test.img,fd_dev_size=5905580032' > > >>>core/fileio_0/fileio/control > >>>echo 1 > core/fileio_0/fileio/enable > >>>mkdir -p vhost/naa.600140554cf3a18e/tpgt_0/lun/lun_0 > >>>cd vhost/naa.600140554cf3a18e/tpgt_0 > >>>ln -sf ../../../../../core/fileio_0/fileio/ lun/lun_0/virtual_scsi_port > >>>echo naa.60014053226f0388 > nexus > >>> > >>>The "nexus" value is the initiator WWN. naa.600140554cf3a18e is the > >>>target WWN that you have to pass to "-device vhost-scsi-pci". > >>> > >>>Paolo > >> > >>For me, I always use targetcli utils instead of the sysfs interface. > >>targetcli in F18 has vhost support now. > >> > > Thanks very much for above information, I'll try it for test. > > > I have done a basic test of vhost-scsi, following is the result I'd > like to post, generally it seems fine: > > Result: > fdisk/mkfs: fdisk can find it, mke2fs works fine. > mount: can mount it. > file I/O: dd 90M zero to a file in that disk succeed. > > Issues: > 1) in fdisk -l, sometime timeout with dmesg "end_request: I/O error, > dev fd0, sector 0", I guess it is caused by nested KVM that failed > to kick host kernel?
Did you run without nested KVM? > 2) in fdisk -l, it shows 512 bytes larger than the parameter I > specified in fd_dev_size parameter in configfs on host.(shows > 104858112 bytes, see the invocation script below) Does targetcli give you the correct size? Also, to narrow the issue down, you can try other backstores, e.g block or ramdisk. > ENV: > nested KVM: > > RH6.4 > (Qemu Virtual CPU 1.5.50, Linux 3.10.0.rc3) > | (100M vhost-scsi hooked with file backend) > RH6.4 > (Common KVM processer, Linux 3.10.0.rc3, > qemu-system-x86_64 1.5.50+, 6a4e17711442849bf2cc731ccddef5a2a2d92d29, > seabios 1.7.2.2, e9725dd76d5d7212cb4a97fd18ff2599538955cf) > | > Fefora 18 > (Intel Xeon X5650, Linux version 3.8.11-200.fc18.x86_64, > QEMU emulator version 1.2.2) > > Invocation details: > On RH6.4 host: > 1 with root, execute following script to prepare configfs system: > > FILEIO=fileio_1 > IMAGE=/home/xiawenc/Work/qemu/test/test1.raw > SIZE=104857600 > QEMU_WWPN=naa.600140554cf3a1fe > NEXUS=naa.60014053226f03f8 > > mkdir -p /sys/kernel/config/target/core/$FILEIO/fileio > echo "fd_dev_name=$IMAGE,fd_dev_size=$SIZE" > > /sys/kernel/config/target/core/$FILEIO/fileio/control > echo 1 > /sys/kernel/config/target/core/$FILEIO/fileio/enable > > mkdir -p /sys/kernel/config/target/vhost/$QEMU_WWPN/tpgt_0/lun/lun_0 > ln -sf /sys/kernel/config/target/core/$FILEIO/fileio/ > /sys/kernel/config/target/vhost/$QEMU_WWPN/tpgt_0/lun/lun_0/virtual_scsi_port > echo $NEXUS > /sys/kernel/config/target/vhost/$QEMU_WWPN/tpgt_0/nexus > > 2 invoke qemu, test_guest_RH64.qcow2 is a pre-made disk containing > RH6.4 system: > > x86_64-softmmu/qemu-system-x86_64 --enablem 1024 -drive > file=/mnt/nfs/test_guest_RH64.qcow2,if=ide,cache=writethrough -vnc > 0.0.0.0:10 -L mybios/ -device > vhost-scsi-pci,wwpn=naa.600140554cf3a1fe,event_idx=off > > > -- > Best Regards > > Wenchao Xia > -- Asias