[stgt] How to set device parameters?
FUJITA Tomonori
fujita.tomonori at lab.ntt.co.jp
Thu Feb 4 12:27:19 CET 2010
On Thu, 04 Feb 2010 10:39:09 +0100
juergen.kadidlo at exasol.com wrote:
> FUJITA Tomonori schrieb:
> > On Wed, 03 Feb 2010 18:06:55 +0100
> > juergen.kadidlo at exasol.com wrote:
> >
> >
> >> I'm trying to write a driver for a new type of iSCSI target and I'm
> >> using "bs_rdwr.c" as a reference. However, there are some things that
> >> are pretty unclear to me, and one of them is: how are parameters like
> >> sector-size and number of sectors of a device determined? I could not
> >> find code that queries these parameters from the target-device. And
> >> tgtadm doesn't seem to support such params. However, there is not much
> >> documentation, so I'm not sure about that...
> >>
> >> To be more precise: assuming that I want to use a file as a target, how
> >> can I specify the sector-size and number of sectors/bytes?
> >>
> >
> > I'm not sure what exactly you want to try. What is 'your anew type of
> > iSCSI target'?
> >
> > Probably 'bs_rdwr.c' is a wrong reference for you. It just does I/Os
> > via system calls. There is not much SCSI stuff there.
> >
> That's not easy to explain... you may call it a "Software SAN". It has
> it's own interface and needs another daemon to talk to it, so it's not
> possible to access it via a classic linux device file. I'd like to make
> it accessible via iSCSI by writing a new driver (or backing-store, not
> sure how you call it) that handles read/write/open/close requests by
> talking to to that daemon through its native interface... That's why
> I've chosen "bs_rdwr.c" as a reference.
ok.
> I thought it would be sufficient
> to replace the functions there and use it as a
> driver/backing-store/device-type. But maybe I didn't understand tgt's
> architecture right... any help or documentation would be greatly
> appreciated!
> > The device size (the number of sectors) is stored in struct
> > scsi_lu. The sector size depends on what device type you want to
> > use. If you are trying something with disk (sbc), then the following
> > patch might be useful for you:
> >
> > http://lists.wpkg.org/pipermail/stgt/2009-December/003469.html
> >
> So, in order to set the correct sector-size I have to apply that patch
> and start "tgtd" manually? I thought that "tgtd" is only started by
> "tgt-admin"!?
You don't intend to push your modification into mainline, right?
If so, then you can just modify BLK_SHIFT in sbc.c.
> And what about the number of sectors of a device? I mean,
> if a SCSI READ_CAPACITY command comes in, the device's sector-size and
> number of sectors have to be determined somehow! I've looked at the
> code, but couldn't find an explanation...
You still don't tell me what device type you are interested in so I
can't explain. If you want sbc, see sbc_read_capacity().
> After reading the patch description, I also wonder how to select the
> type of device or driver. The "tgt-admin" man-page doesn't describe how
> to choose between e.g. bs_rdwr, bs_ssc, bs_sg etc...
tgt-admin is a handy tool for common people. You are trying to do what
common people don't do. So see tgtadm.c about "bstype" option.
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the stgt
mailing list