linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Masover <ninja@slaphack.com>
To: Linux filesystem caching discussion list <linux-cachefs@redhat.com>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: Re: NFS Patch for FSCache
Date: Thu, 19 May 2005 01:48:48 -0500	[thread overview]
Message-ID: <428C36D0.4040202@slaphack.com> (raw)
In-Reply-To: <20050519021806.GG999@kalmia.hozed.org>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Troy Benjegerdes wrote:
>>Reading one really big file (bigger than the memory available) over AFS, with
>>a cold cache it took very roughly 107% of the time it took with no cache; but
>>using a warm cache, it took 14% of the time it took with no cache. However,
>>this is on my particular test box, and it varies a lot from box to box.
> 
> 
> What network did that box have?
> 
> I'm finding that with OpenAFS, and memcache, read performance is
> affected greatly by the -chunksize argument to afsd. Using -chunksize 20 
> (1MB chunks) gets me around 50MB/sec, while -chunksize 18 gets
> 5-7MB/sec. (I believe that's the size of the 'fetchrpc' calls)
> 
> Another question with the afs client.. I'd really like to use the kafs
> client to mount a root filesystem, then use OpenAFS to mount /afs so
> I can have read/write support. I went so far as to patch kafs to mount 
> as type 'kafs', but then found that both clients want to listent on port
> 7000. Can I either
> 
> 	a) change the port for kafs
> 	b) get working read-write and auth support for kafs?
> 
> I'm guessing a) is much more likely.. 

How about a more hack-ish solution?

An initrd environment of some sort.  This especially makes sense if you
use a hard disk partition -- assuming the local disk is only used for
local cache, it's a good idea.

How I'd do it:

If kernel and initrd are server-side (as in a PXE boot):
- - initrd copies itself to tmpfs and then deallocates itself, so that it
can be swapped out
- - new tmpfs-based initrd has an OpenAFS client, and mounts /afs
- - root is somewhere in /afs, and the initrd pivot_root's to it.

If kernel and initrd are client-side (hard drive):
- - as above, except:
- - initrd checks for a new version of itself
- - if there is a new version of kernel/initrd, it:
 - downloads both a new kernel and a new initrd
 - saves them to disk, so we don't re-download next boot
 - kexecs the new kernel/initrd
 - assuming the upgrade worked, the new kernel/initrd will:
  - check for an update again
  - won't find one and will continue booting.

Also, we don't actually need a ramdisk -- we can use a partition.  This
is a little easier to manage, because we don't have to worry about
freeing the ramdisk or how much swap we need or things like that.

So, this is a bit harder to maintain than what you're suggesting, but
it's workable.  The admin just needs a good set of tools to rebuild the
initrd every kernel upgrade, or when he decides to add stuff to it.
But, it provides a pretty decent working environment once it's done, and
it puts everything except the AFS client on the AFS root fs.  It also
avoids using the kafs client at all -- all network stuff is done in
userspace.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iQIVAwUBQow2z3gHNmZLgCUhAQJCtQ//VAFNzVo8kZFrkhtrYvq5qkmashiFOC4h
P2GA3GLNWPCjQ+UDwwhFUd89Zudu8iPDkaiiWtrOIt9I5jzjX0pjPLiamBZV1u8n
eNdNClpRUbWFNoItfczMvENftD9ZfaWtmn5CX/7IF2R1fEhEGdI5a67ibHeDTa8H
aqYGjb4KWyGYbrHbJUsHXbsCrxZdKbmp/esS6sotpFdBkWyZMFzQsGE4Insvyqrq
mfhX+o4YGql0p+UvcqJ8U823HQwpsVomnD1OE7NzAP01Y1Q0N5fUCTE92zMwqljR
6t9/FLBx0Vlp976WOQX1pSPlKy2nYL0VbuiGLfKbaWc3eHngBXdaW1qiNxC+QSK3
Nb6ojJ9QdQInwP0z0uQpWm+Od8Rv0qxuEx+kmpckOtN+0xuHH/f6DKzm1zrEMRkA
GhFTQfBda0DZ/4z6Qxrya8Je5+8NAno73DkKfFlboqd3JpJSiJ6sJRCGmtAVE5gG
1MaRUV3oXuALXd37gUNoPbCzlB5A6aZn9F4TV0jQSd388Ya97wwACDwRlAHyOLa/
yAx69UYPM+rEv0n3f5QtK8PBEIEh+W+e3VD7k1U2SiyV76WYL00BfqucdadHjqv8
dAawVzIsfv0Fl9xqUbk3BJYRokG0WzgA7B+6qS3C398/c9KTkTf1ZIdnQzVKmPL3
95k5sD1lNG4=
=X8zT
-----END PGP SIGNATURE-----

  reply	other threads:[~2005-05-19  6:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-12 22:43 [Linux-cachefs] Re: NFS Patch for FSCache Lever, Charles
2005-05-13 11:17 ` David Howells
2005-05-14  2:08   ` Troy Benjegerdes
2005-05-16 12:47   ` [Linux-cachefs] " David Howells
2005-05-17 21:42     ` David Masover
2005-05-18 10:28     ` [Linux-cachefs] " David Howells
2005-05-19  2:18       ` Troy Benjegerdes
2005-05-19  6:48         ` David Masover [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-05-18 16:32 Lever, Charles
2005-05-18 17:49 ` David Howells
2005-05-10 18:43 Steve Dickson
2005-05-09 10:31 ` Steve Dickson
2005-05-09 21:19   ` Andrew Morton
2005-05-10 19:12     ` [Linux-cachefs] " David Howells
2005-05-14  2:18       ` Troy Benjegerdes
2005-05-16 13:30       ` David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=428C36D0.4040202@slaphack.com \
    --to=ninja@slaphack.com \
    --cc=linux-cachefs@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).