From: Theodore Ts'o <tytso@mit.edu>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: linux-ext4@vger.kernel.org
Subject: Re: [PATCH 3/6] mke2fs: set block_validity as a default mount option
Date: Sun, 24 Aug 2014 18:47:21 -0400 [thread overview]
Message-ID: <20140824224721.GG6236@thunk.org> (raw)
In-Reply-To: <20140809042630.2441.34661.stgit@birch.djwong.org>
On Fri, Aug 08, 2014 at 09:26:30PM -0700, Darrick J. Wong wrote:
> The block_validity mount option spot-checks block allocations against
> a bitmap of known group metadata blocks. This helps us to prevent
> self-inflicted catastrophic failures such as trying to "share"
> critical metadata (think bitmaps) with file data, which usually
> results in filesystem destruction.
>
> In order to test the overhead of the mount option, I re-used the speed
> tests in the metadata checksum testing script. In short, the program
> creates what looks like 15 copies of a kernel source tree, except that
> it uses fallocate to strip out the overhead of writing the file data
> so that we can focus on metadata overhead. On a 64G RAM disk, the
> overhead was generally about 0.9% and at most 1.6%. On a 160G USB
> disk, the overhead was about 0.8% and peaked at 1.2%.
I was doing a spot check of the additional memory impact of
block_validity mount option, and it's for a 20T file system, assuming
the basic flex_bg size of 16 block groups, it's a bit over 400k of
kernel memory. That's not a *huge* amount of memory, but it could
potentially be noticeable on a bookshelf NAS server.
However, I could imagine that for a system with say, two dozen 10T
drives (which aren't that far off in the future) in a tray, that's
around 4 megabytes of memory, which starts being non-trivial.
That being said, I suspect for most users, it's not that big of a deal
--- so maybe this is something we should just simply enable by default
in the kernel, let those folks who want to disable specify a
noblock_validity mount option.
The other thing to consider is that for big raid arrays, maybe we
should use a larger flex_bg size. The main reason for keeping the
size small is to minimize the seek time between the inode table and a
block in the flex_bg. But for raid devices, we could probably afford
to increase flex_bg size, which would decrease the numer of system
zones that the block validity code would need to track.
- Ted
next prev parent reply other threads:[~2014-08-24 22:47 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-09 4:26 [PATCH 0/6] e2fsprogs Summer 2014 patchbomb, part 5 Darrick J. Wong
2014-08-09 4:26 ` [PATCH 1/6] libext2fs: create inlinedata symlinks Darrick J. Wong
2014-08-24 16:15 ` Theodore Ts'o
2014-08-09 4:26 ` [PATCH 2/6] misc: fix gcc warnings Darrick J. Wong
2014-08-24 16:24 ` Theodore Ts'o
2014-08-09 4:26 ` [PATCH 3/6] mke2fs: set block_validity as a default mount option Darrick J. Wong
2014-08-24 22:47 ` Theodore Ts'o [this message]
2014-08-25 15:52 ` Darrick J. Wong
2014-08-25 16:36 ` [PATCH] ext4: enable block_validity by default Darrick J. Wong
2014-09-02 2:02 ` Theodore Ts'o
2014-08-09 4:26 ` [PATCH 4/6] ext2fs: add readahead method to improve scanning Darrick J. Wong
2014-08-09 4:26 ` [PATCH 5/6] libext2fs/e2fsck: provide routines to read-ahead metadata Darrick J. Wong
2014-08-11 5:21 ` Darrick J. Wong
2014-08-11 6:24 ` Theodore Ts'o
2014-08-11 6:31 ` Darrick J. Wong
2014-08-11 14:34 ` Theodore Ts'o
2014-08-11 18:05 ` Darrick J. Wong
2014-08-11 18:32 ` Theodore Ts'o
2014-08-11 18:55 ` Darrick J. Wong
2014-08-11 20:10 ` Theodore Ts'o
2014-08-11 20:50 ` Darrick J. Wong
2014-08-09 4:26 ` [PATCH 6/6] e2fsck: read-ahead metadata during passes 1, 2, and 4 Darrick J. Wong
2014-08-09 5:53 ` [PATCH 0/6] e2fsprogs Summer 2014 patchbomb, part 5 Theodore Ts'o
2014-08-09 5:59 ` Darrick J. Wong
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=20140824224721.GG6236@thunk.org \
--to=tytso@mit.edu \
--cc=darrick.wong@oracle.com \
--cc=linux-ext4@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.