From owner-freebsd-hackers Mon Aug 21 19:26:37 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id TAA25539 for hackers-outgoing; Mon, 21 Aug 1995 19:26:37 -0700 Received: from UUCP-GW.CC.UH.EDU (UUCP-GW.CC.UH.EDU [129.7.1.11]) by freefall.FreeBSD.org (8.6.11/8.6.6) with SMTP id TAA25526 for ; Mon, 21 Aug 1995 19:26:23 -0700 Received: from Taronga.COM by UUCP-GW.CC.UH.EDU with UUCP id AA16576 (5.67a/IDA-1.5); Mon, 21 Aug 1995 20:56:23 -0500 Received: by bonkers.taronga.com (smail2.5p) id AA25348; 21 Aug 95 20:09:09 CDT (Mon) Received: (from peter@localhost) by bonkers.taronga.com (8.6.11/8.6.6) id UAA25345; Mon, 21 Aug 1995 20:09:09 -0500 From: Peter da Silva Message-Id: <199508220109.UAA25345@bonkers.taronga.com> Subject: Re: Making a FreeBSD NFS server To: terry@cs.weber.edu (Terry Lambert) Date: Mon, 21 Aug 1995 20:09:09 -0500 (CDT) Cc: hackers@freebsd.org In-Reply-To: <9508211748.AA26061@cs.weber.edu> from "Terry Lambert" at Aug 21, 95 11:48:47 am X-Mailer: ELM [version 2.4 PL23] Content-Type: text Content-Length: 1560 Sender: hackers-owner@freebsd.org Precedence: bulk > > Oh, crap. You handle machine failures the same way you handle disk failures. > > If you can't handle disk failures you shouldn't have a stateful *local* file > > system. For conventional file I/O you can get pretty much the same recovery > > semantics both ways (client reloads state), and for non-file I/O you get the > > choice of no access at all or error returns. I'll take the error returns. > Write me an NFS fsck. 8-). You do the fsck on the server. I've fone fscks over opennet. > Yeah, this isn't really a result of the statefulness or statelessness of > the transport. It's that fact that NFS doesn't implement an ISO layer > 5 or 6. Devices are inherently stateful. You can't resend a missing block to a remote tape drive, because you can't seek it. > OpenNet didn't implement a layer 5, but since you were going > between homogeneous machine types for this type of I/O, that wasn't a > problem (the manifest constants for B9600 for sgtty() were guaranteed to > be the same). I opened devices and named pipes from DOS. Of course that didn't support ioctls. > Of course, this is what enables NFS to support diskless systems, so you > can't complain too loudly. That's what devfs is for. > To combat that, you maintain the open instance -- by asserting an NFS > lock, which causes the lockd to convert the handle into an open fd in > the lockd processes address space -- an open instance held for the > duration of the lock on the remote system. In which case you now have a stateful interface. And what do you do about named pipes?