scsi-target and the buffer cache
Eric Anderson
anderson at centtech.com
Thu Mar 9 21:15:27 UTC 2006
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
--
------------------------------------------------------------------------
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