Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Sep 1996 00:40:56 +0200
From:      Stefan Grefen <grefen@carpe.net>
To:        Peter Childs <pjchilds@imforei.apana.org.au>
Cc:        bsdscsi@shadows.aeon.net (mika ruohotie), freebsd-scsi@freebsd.org
Subject:   Mirroring woth different speeds Was: Re: striping/mirroring? 
Message-ID:  <20248.843950456@hex.grefen.carpe.net>

next in thread | raw e-mail | index | archive | help
In message <199609281959.FAA23341@al.imforei.apana.org.au>  Peter Childs wrote:
[...]

This is a seperate issue, and becomes unrelated to the current thread:

> 
>  I'm really quite interested in how you propose to have a mirrored
>  system where drives can run at different steeds.   Mirror works like
>  this
> 
>  DATA ----> (going to disk) -------+--(and another copy)----+
>                                    |                        |
>                                 disk 1                   disk 2
> 
>  So if i send some data to the (mirrored) disk, and disk1
>  is significantly faster than disk2, then disk1 will finish the write
>  first.... so then do i just let it write more?   Can you see a 
>  problem with this?   What happens when disk1 is miles ahead.. who
>  is supposed to keep track of all this data thats queued up for
>  disk2?  The OS?  And if the disk 1 suddenly fails then you're
>  screwed, and you fault tolerant system wan't very.

This is possible, but not with a standard filesystem. If you use a kind of 
transaction-based filesystem you can do it safely and in case of a crash you 
roleback the transactions that didn't make it to the mirror (you commit
it on disk only after the mirror has been updated, but pretend otherwise it 
happend). Of cause the you have to make sure the commits on the mirror
are done in the same order on bith disks.

The difference between the 2 drives would limited only be available disk-size
(for the old copies on drive 1).

> 
> : original question was, can i do it with freebsd?
> 
> : seems to me answer is no.
> 
>  The reason FreeBSD can't do it is because the only people 
>  capable of writting it know that its not really the best idea.

To make it short, it can (and has) been done, but not in *BSD (yet). 
This would be a nice and interesting spare-time project, if there was
enough spare-time (or somebody would pay for it) ...

For the given application it's not really needed, as it can be fixed with
money (disk-drives or a RAID-box), but there are other applications where this 
isn't  possible ('life' off-site mirrors for example, you can't buy or lease a 
40MByte/s, SCSI-link with 500 Miles length ... the latency factor alone
will kill you on every SCSI-transaction).
And of cause it only works in read-mostly situations, but this is the case for
most filesystems (most partitions on a unix system have this access pattern,
obvious exceptions /tmp /var/spool/mqueue /var/spool/news ...)

Stefan

> 
>  Peter
> 
> --
>  Peter Childs  ---  http://www.imforei.apana.org.au/~pjchilds
>   Finger pjchilds@al.imforei.apana.org.au for public PGP key
>          Drag me, drop me, treat me like an object!

--
Stefan Grefen                            Am Grossberg 16, 55130 Mainz, Germany
grefen@carpe.net                         +49 6131 998566   Fax:+49 6131 998568
Living on Earth may be expensive, but it includes an annual free trip 
around the Sun.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20248.843950456>