scsi-target and the buffer cache

Eric Anderson anderson at centtech.com
Thu Mar 9 21:44:59 UTC 2006


Scott Long wrote:
> Eric Anderson wrote:
>> Nate Lawson wrote:
>>
>>> [mailing list changed to scsi@]
>>>
>>> Eric Anderson wrote:
>>>
>>>> Nate Lawson wrote:
>>>>
>>>>> Scott Long wrote:
>>>>>
>>>>>> Eric Anderson wrote:
>>>>>>
>>>>>>> Nate Lawson wrote:
>>>>>>>
>>>>>>>> Agree 100%.  While having it in usermode means there are 
>>>>>>>> boundary crossings that increase per-transaction latency, the 
>>>>>>>> actual bulk data transfer is via zero-copy IO and you should be 
>>>>>>>> able to exceed the data transfer rates of several 10K RPM 
>>>>>>>> drives on decent hardware.
>>>>>>>
>>>>>>>
>>>>>>> Ok, great.. Now, will scsi_target work ok with raw devices, or 
>>>>>>> only files?  (although I'm not sure theres all that much 
>>>>>>> difference really).
>>>>>>>
>>>>>>
>>>>>> You can write your userland code to use whatever files or devices 
>>>>>> you
>>>>>> want.  Are you talking about the scs_target.c code in
>>>>>> /usr/share/examples?  That's just a skeletal example that you can 
>>>>>> use
>>>>>> as a starting point for your own work.
>>>>>
>>>>>
>>>>> No, it's not just a skeletal example.  You can point it at a raw 
>>>>> device as the backing store file and it will work as a block 
>>>>> device (i.e. RBC command set).  It has been tested as working at 
>>>>> least moderately fast over SCSI, FC, and firewire.
>>>>>
>>>>
>>>> I'm finally getting around to playing with this, and I'm having 
>>>> some problems.  First, I can't seem to make one isp card in target 
>>>> mode and the other an initiator.  I've messed with adding the 
>>>> following to loader.conf:
>>>>
>>>> hint.isp.0.role="initiator"
>>>> hint.isp.1.role="target"
>>>>
>>>> that still doesn't show my currently connected fiber channel 
>>>> devices on the initiator side.
>>>>
>>>> I've tried a few different kernel options, currently I have:
>>>>
>>>> options         ISP_TARGET_MODE=1
>>>> device          targ
>>>>
>>>> I've also tried just:
>>>>
>>>> options         ISP_TARGET_MODE
>>>>
>>>> and that doesn't seem to allow me to select one either.
>>>
>>>
>>> hints aren't needed.  Here's an intro on how to use it:
>>> http://root.org/~nate/freebsd/scsi/README.targ
>>>
>>> The same card is in target or initiator mode based on the 
>>> scsi_target user program.  When it's running, target mode is enabled.
>>
>>
>> Hmm.  Then shouldn't a
>>
>> camcontrol rescan all
>> camcontrol devlist -v
>>
>> show me all the devices on the FC network?  If I remove the target 
>> mode stuff out, and do that, I see all my devices.  With it in, I see 
>> no devices.
>> When I run the scsi_target tool (scsi_target -d 0:3:0 /mnt/testfile), 
>> it shows a bunch of "sending ccb (0x332)" and (0x334) messages 
>> alternating for a couple hundred lines, then "main loop beginning" 
>> and a few other messages.  If you want the full details, I'd be glad 
>> to sent them.
>>
>> Once scsi_target is running, my other FC initiator (FreeBSD 6.1- 
>> also) can see it.
>>
>>
>>>
>>>> Anyhow, I've compiled scsi_target (from 
>>>> /usr/share/examples/scsi_target), and tried to run it using a 20gb 
>>>> file as the target, and still I can't seem to get it working.
>>>> Is there a doc somewhere I need to read?
>>>>
>>>> Also - as a side note, the Makefile for scsi_target seems like it's 
>>>> missing a path variable in order to do a make install, but that's 
>>>> not a real issue.
>>>
>>>
>>> There was some debate when I imported it whether to make it an 
>>> example or usr.sbin.  Given the lack of updates (i.e. ki_sig or 
>>> whatever), I probably should have put it somewhere else.
>>
>>
>> Is it a totally non-supported kind of tool?  Is there another option 
>> for scsi target mode?
>>
>>
>> Thanks!
>> Eric
>>
>>
>
> Can isp operate as both a target and initiator at the same time?  I 
> thought that that was a pretty rare feature.  If not, then when it's in
> target mode it won't be able to see any other targets on the bus.

That's what I assumed, but docs (man isp I think, and the link posted 
above by njl) seem to indicate they might. 

If not, how to I make one target mode, and one an initiator?

Thanks!

Eric


-- 
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------



More information about the freebsd-scsi mailing list