Date: Tue, 9 Jul 2002 14:07:36 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: David Gilbert <dgilbert@velocet.ca> Cc: Keith Pitcher <kpitcher@locallink.net>, David Gilbert <dgilbert@velocet.ca>, freebsd-hackers@FreeBSD.ORG Subject: Re: [hackers] Multi CDR burn Message-ID: <200207092107.g69L7aOE054059@apollo.backplane.com> References: <20020708220105.GA32341@stone.locallink.net> <15658.50186.945164.162061@canoe.velocet.net> <20020709191404.GA97352@stone.locallink.net> <15659.17952.903580.570415@canoe.velocet.net>
next in thread | previous in thread | raw e-mail | index | archive | help
:Keith> This is a simplistic and inadequate solution. UNIX was intended :Keith> to be efficient, not to do eight Times the amount of work of :Keith> any other system. This uses 8 times the memory, 8 times the :Keith> processor, and 8 times the bus (only 4 times if two channels, :Keith> but you get the idea). A properly written CD burning tool would :Keith> use the SCSI commands to send the data only once to all of the :Keith> devices. This solution requires that you have a machine that :Keith> is 8 times more powerful than you should actually need. We do :Keith> not. We have an HP Netserver 5: a P100 with a built in narrow :Keith> SCSI2 controller. : :Keith> Given the hardware, is there a way to burn 8 CDs at one time, :Keith> or is there some mirroring code that is well written enough to :Keith> facilitate it? : :I wouldn't expect mirroring code to be of help here since FreeBSD's :vinum and ccd expect disk formats (not iso_9660) and also expect :regular read/write disks, not CDR (which require special treatment :anyways). : :I also didn't know that there was a write-to-many SCSI command? :Someone can confirm or deny this? : :A narrow SCSI2 bus is 20Mhz * 8 bit or 20 Megabytes per second. A 1x :CDROM is 20 kilobytes per second (roughly, I looked it up and several :sources said 150 kilobits per second) ... so your single scsi bus :should handle 1000 1x CDROMS or 8 125x CDROMS. Simply put, your SCSI :channel (even it it's only 10Mhz is way more then enough). : :Next, let the OS do the work. You'll likely find that you can set the :buffers to almost zero (I think the default is one meg). The code :will be shared, the data will only be read once and you just might :find that it works. UNIX is there to make these simple things work :for you. : :I'll go out on a limb and speculate that there isn't a write-to-many :command as you suggest. My understanding of SCSI is that each command :addresses one target... and that part of the format is hard-coded. : :Dave. : :-- :============================================================================ :|David Gilbert, Velocet Communications. | Two things can only be | :|Mail: dgilbert@velocet.net | equal if and only if they | :|http://daveg.ca | are precisely opposite. | :=========================================================GLO================ There is no multi-target command that I know of. You are absolutely correct in your bandwidth calculations... a SCSI bus should have no problem at all duping the data 8 times to each of 8 CDR's, and the operating system ought to do a fine job caching the input image file (so the data is only read off the hard disk once). CDRs are really slow compared to what a SCSI bus is designed to handle. I would stagger the start times for the burn initiation by a second or two in order to ensure that the OS is able to fill up the CDRs pipelines. Once the pipelines are full things should work ok assuming the CDs do SCSI disconnection properly to allow for parallelism. I'm somewhat interested in knowing that this concept actually works :-) -Matt Matthew Dillon <dillon@backplane.com> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207092107.g69L7aOE054059>