From: jim owens <jowens@hp.com>
To: linux-fsdevel@vger.kernel.org
Cc: Dave Chinner <david@fromorbit.com>, Theodore Tso <tytso@mit.edu>,
Arjan van de Ven <arjan@infradead.org>,
Miklos Szeredi <miklos@szeredi.hu>,
hch@infradead.org, pavel@suse.cz, t-sato@yk.jp.nec.com,
akpm@linux-foundation.org, viro@ZenIV.linux.org.uk,
linux-ext4@vger.kernel.org, xfs@oss.sgi.com, dm-devel@redhat.com,
linux-kernel@vger.kernel.org, axboe@kernel.dk,
mtk.manpages@googlemail.com
Subject: Re: [PATCH 3/3] Add timeout feature
Date: Wed, 09 Jul 2008 09:58:00 -0400 [thread overview]
Message-ID: <4874C3E8.20804@hp.com> (raw)
In-Reply-To: <20080709114958.GV11558@disturbed>
Jumping into the battle...
Advfs implemented freezefs and thawfs in 2001 so here is
the design rational from a commercial unix view.
Note - We already had built-in snapshots for local disk
consistent backups so some choices might be different on Linux.
NEED - provide way for SAN and hardware raid storage to do
its snapshot/copy function while the system was in-use and
get an image that could mount cleanly. Without freeze, at
a minimum we usually needed filesystem metadata recovery
to run, worst case is completely unusable snapshits :)
freezefs() is single-level:
ENOTSUPPOTED - by any other fs
EOK - done
EINPROGRESS
EALREADY
As implemented, freezefs only ensures the metadata is
consistent so the filesystem copy can mount anywhere.
This means ONLY SOME metadata (or no metadata) is flushed and
then all metadata updates are stopped. User/kernel writes
to already allocated file pages WILL go to a frozen disk.
It also means writers that need storage allocation (not
delaloc or existing) and things that semantically must
force on-disk updates will hang during the freeze.
These semantics meet the need and has the advantage of the
best perfomance. The design specification for freezefs
provided flags on the api to add more consistency options
later if they were desired:
- flush all dirty metadata
- flush all existing dirty file data
- prevent new dirty file data to disk
but they would all add to the "kill the system" problem.
freezefs has the timeout argument and the default timeout
is a system config parameter:
> 0 specifies the timeout value
= 0 uses the default timeout
< 0 disable timeout
A program could call the freezefs/thawfs api, but the
only current use is the separate commands
# freezefs
# [do your hardware raid stuff]
# thawfs
This is either operator driven or script/cron driven
because hardware raid providers (especially our own)
are really unfriendly and not helpful.
NUMBER ONE RULE - freeze must not hang/crash the system
because that defeats the customer reason for wanting it.
WHY A TIMEOUT - need a way for operator to abort the
freeze because with a frozen filesystem they may not
even be able to do a login to thaw it!
Users get pissed when the system is hung for a long
time and our experience with SAN devices is that their
response to commands is often unreasonably long.
In addition to the user controllable timeout mechanism,
we internally implement AUTO-THAW in the filesystem
whenever necessary to prevent a kernel hang/crash.
If an AUTO-THAW occurs, we post to the log and an
event manager so the user knows the snapshot is bad.
jim
next prev parent reply other threads:[~2008-07-09 13:58 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-30 12:24 [PATCH 3/3] Add timeout feature Takashi Sato
2008-07-01 8:10 ` Christoph Hellwig
2008-07-01 10:52 ` Alasdair G Kergon
2008-07-03 12:11 ` Takashi Sato
2008-07-03 12:47 ` Alasdair G Kergon
2008-07-03 22:11 ` [dm-devel] " Dave Chinner
2008-07-04 12:08 ` Takashi Sato
2008-07-03 14:45 ` Eric Sandeen
2008-07-07 11:07 ` Pavel Machek
2008-07-08 23:10 ` Dave Chinner
2008-07-08 23:20 ` Pavel Machek
2008-07-09 0:52 ` Dave Chinner
2008-07-09 1:09 ` Theodore Tso
2008-07-09 4:21 ` Brad Boyer
2008-07-09 6:13 ` Miklos Szeredi
2008-07-09 6:16 ` Christoph Hellwig
2008-07-09 6:22 ` Miklos Szeredi
2008-07-09 6:41 ` Arjan van de Ven
2008-07-09 6:48 ` Miklos Szeredi
2008-07-09 6:55 ` Arjan van de Ven
2008-07-09 7:08 ` Miklos Szeredi
2008-07-09 20:48 ` Pavel Machek
2008-07-09 7:13 ` Dave Chinner
2008-07-09 11:09 ` Theodore Tso
[not found] ` <20080709110900.GI9957@mit.edu>
2008-07-09 11:49 ` Dave Chinner
2008-07-09 12:24 ` Theodore Tso
2008-07-09 12:59 ` Olaf Frączyk
2008-07-09 13:57 ` Arjan van de Ven
2008-07-09 13:55 ` Arjan van de Ven
2008-07-09 13:58 ` jim owens [this message]
2008-07-09 14:13 ` jim owens
2008-07-13 12:06 ` Pavel Machek
2008-07-13 17:15 ` jim owens
2008-07-14 6:36 ` Pavel Machek
2008-07-14 13:17 ` jim owens
2008-07-14 13:12 ` Takashi Sato
2008-07-14 14:04 ` jim owens
2008-07-09 13:53 ` Arjan van de Ven
2008-07-09 6:59 ` Dave Chinner
2008-07-09 7:13 ` Miklos Szeredi
2008-07-09 7:33 ` Dave Chinner
2008-07-09 8:11 ` Miklos Szeredi
2008-07-09 11:15 ` Dave Chinner
2008-07-09 20:44 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2008-09-08 11:53 Takashi Sato
2008-09-08 17:11 ` Christoph Hellwig
2008-09-25 21:06 ` Ric Wheeler
2008-09-26 8:52 ` Takashi Sato
2008-09-26 10:58 ` Ric Wheeler
2008-09-29 11:11 ` Takashi Sato
2008-09-26 12:35 ` Valdis.Kletnieks
2008-09-29 14:13 ` Christoph Hellwig
2008-09-29 14:36 ` Eric Sandeen
2008-09-29 14:37 ` Christoph Hellwig
2008-09-29 14:45 ` Eric Sandeen
2008-09-29 22:08 ` jim owens
2008-10-05 10:00 ` Pavel Machek
2008-10-09 10:12 ` Takashi Sato
2008-10-09 10:18 ` Christoph Hellwig
2008-08-18 12:28 Takashi Sato
2008-08-21 20:20 ` Andrew Morton
2008-08-22 18:16 ` Christoph Hellwig
2008-08-24 17:03 ` Oleg Nesterov
2008-08-29 9:39 ` Takashi Sato
2008-07-22 9:36 Takashi Sato
2008-06-24 7:00 Takashi Sato
2008-06-24 22:09 ` Andrew Morton
2008-06-27 11:33 ` Takashi Sato
2008-06-27 18:57 ` Andrew Morton
2008-06-29 23:13 ` Takashi Sato
2008-06-30 0:01 ` Andrew Morton
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=4874C3E8.20804@hp.com \
--to=jowens@hp.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=axboe@kernel.dk \
--cc=david@fromorbit.com \
--cc=dm-devel@redhat.com \
--cc=hch@infradead.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mtk.manpages@googlemail.com \
--cc=pavel@suse.cz \
--cc=t-sato@yk.jp.nec.com \
--cc=tytso@mit.edu \
--cc=viro@ZenIV.linux.org.uk \
--cc=xfs@oss.sgi.com \
/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).