[stgt] tgt and DVD

ronnie sahlberg ronniesahlberg at gmail.com
Thu Sep 24 07:17:25 CEST 2009


On Thu, Sep 24, 2009 at 2:22 PM, FUJITA Tomonori
<fujita.tomonori at lab.ntt.co.jp> wrote:
> CC'ed stgt at vger.kernel.org and Ronnie Sahlberg,
>
> On Wed, 23 Sep 2009 21:39:24 -0400
> "Matthias Bannach" <matthias at bannach.net> wrote:
>
>> In an attempt to change from iscsitarget on debian to tgt I wanted to report
>> some success and frustration to you.
>>
>> Success: Compiled smooth on Debian Lenny.
>
> Nice, our iSCSI code is just an user-space program so you can compile
> and run it easily.
>
>
>> Frustration: The dvd/cd iso feature appears to work with 'simple' CD's only.
>> More advanced UDF or multi-session CDs (like recent Distributions of
>> Microsoft OS/Development tools) appear to not be supported.
>
> I'm not familiar with this area so I CC'ed Ronnie Sahlberg, who wrote
> that part.
>

That is true. The current implementation only emulates single-session disks.
It does support writeable single-session disks, i.e. that you can
"burn" one of these DVD's but
I never implemented multi-session.

> BTW, you can't do that even with IET, right?

That is true. IET only supported single-session disks as well. I.e.
plain ISO images.

>
>
>> Any hints or pointers?
>>
>> Would you see an integration (could be done by me) with
>> http://cdemu.sourceforge.net/ possible - can this be done without
>> development?
>
> I don't think that you can't without development but it should be easy
> incorporate cdemu-deamon code into our mmc.c
>

I had a look at cdemu and it seems a very nice project!
This code is in some ways much more capable than the mode in mmc.c but
less capable in other ways.

Looking at cdemu-device.c it appears while the CDBs for WRITE10 is
defined, this command is actually not implemented.
Nor are synchronize-cache, reserve-track or close-track,  commands
required for emulating a writeable dvd.


So there are differences in functionality.
mmc.c : is single-session only, and handles ISO image files only, but
it does support burning to a "emulated" blank dvd.
cdemu : supports multi-session and a whole set of additional
fileformats in addition to ISO  but it is read-only and you can not
"burn" to it.


I do think it would be worth it to eventually replace mmc.c with cdemu
but it would be nice to do so without losing functionality.
I think it would be quite a lot of work  but worthwhile
1, add emulation of writing to a dvd to cdemu. This is not that very
hard, at least if you only aim to support to burning to single-session
dvds.
2, should probably work with the cdemu people and break
cdemud-device.c out into a separate link library that tgtd could link
to.
(maybe keep mmc.c still around as a last resort and use it if
cdemud-device.a is not available?)
3, rework the public api in cdemud-device.c to remove exposing the
glib/dbus dependencies and make the exposed api only use posix types.
(I think one very attractive feature of the tgtd codebase is that it
has so few dependencies on headers from other packages)


1 is only important if we want to keep the "tgtd can burn to emulated
blank disks" feature.
2 would open up code sharing and reuse between cdemu and tgtd, and
other projects that want to access a scsi mmc emulation library.
3 is only my personal view. I really like that tgtd does not depend on
glib or other external packages.


Just my opinions.
Ronnie Sahlberg
--
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