Subject: Re: VS3100 SCSI
To: Brian Chase <bdc@world.std.com>
From: Robert F Schaefer <rschaefe@gcfn.org>
List: port-vax
Date: 05/29/2001 18:51:23
On Tue, 29 May 2001, Brian Chase wrote:
> On Tue, 29 May 2001, J. Buck Caldwell wrote:
>
> > VS3100 SCSI controllers can only be ID 6 or 7? How damned shortsighted
> > of them. Well, poop. Either way, there's still the question of
> > whether or not they can act in 'target' mode - which determines
> > whether or not one SCSI controller can send a messages to another.
Surely all the SCSI controllers can hear a disconnect/reconnect? Wouldn't
it be possible to just listen for disks reconnecting? IANASE!
>
> Yeah, that I don't know about. Even if they can't operate in target mode
> it might be possible to work around this using a chunk of raw disk. With
> normal applications you run into problems having multiple systems
> accessing a single disk in read-write mode. But if you were to allocate a
> reasonable sized chunk of disk (maybe 64KB or 128KB) and then split it in
> half, you might be able to do something like the following:
>
> .-----------------------.
> | VAX1 SCSI-B ID #7 |
> `-----------------------'
> Read-only Write-only
> ^ |
> 0KB | v 64KB
> +---------+---------+
> | 32 KB | 32 KB | (Disk chunk -- let the shared disk be ID #2)
> +---------+---------+
> ^ |
> | v
> Write-only Read-Only
> .-----------------------.
> | VAX2 SCSI-A ID #6 |
> `-----------------------'
>
>
> This keeps VAX1 and VAX2 from stomping on eachothers data by giving them
> distinct areas on the shared disk to which they can write. The parts I
> haven't thought about enough are how you synchronize the communications
> between VAX1 and VAX2. Say VAX1 writes a block into its 32KB write area,
> how does VAX2 know that the blcok is ready to be reade without polling?
> Then the other question would be, once VAX2 has read this block, how does
> it notify VAX1 that the block is read so that VAX1 can write the next
> block?
>
> I think the second can be solved by adding some sort of flag block on the
> disk which can be updated by the reading host once the block has been
> read. The interrupt notification thing though... the only thing I can
> think of without knowing more about SCSI is to send it through the
> ethernet network to the other host, but that's messy. I suppose you could
> use something like a SCSI bus reset command to indicate "something needs
> to be checked" and then the two VAXen on the shared bus each look to see
> if they have any work to do. I imagine this would hurt performance.
>
> In order to get better throughput, a large portion of disk could be split
> up into disk based queues of the above data chunks.
>
> -brian.