Thread (7 messages) flat view 7 messages, 3 authors, 2009-07-19

Re: >16TB RAID0

From: NeilBrown <hidden>
Date: 2009-07-17 03:59:19

On Fri, July 17, 2009 1:36 pm, Justin Maggard wrote:
Has anybody here tried using a >16TB RAID0?  When I recently got my
hands on some 2TB drives, I decided to check out the current status of
large EXT4 filesystems on 32-bit systems.  I created a ~17TB RAID0,
and immediately had problems.  Andreas Dilger advised me to try out
his llverdev utility (kindly hosted by Val Aurora at
http://valhenson.livejournal.com/38933.html) to verify that the
underlying device is functioning properly.  Running "llverdev -p -v
/dev/md0" on a >16TB array resulted in a runaway process, with
llverdev and pdflush each eating up 100% of the CPU time on my two
cores, but not advancing the write offset.  The process did not appear
to be interruptable after more than 30 minutes, and I had to do a hard
shutdown.  A RAID0 just under 16TB ran through llverdev without a
hitch.

I'm in the process of running a RAID5 array through the same test now,
but it's already past the point where the RAID0 failed; so if it does
fail, it'll likely be due to a different cause.  Does anyone have any
ideas?  Has this never been done before?  I'm running debian on a
2.6.30.1 kernel.
I'm not 100% sure, but a quick look at the code suggests that
16TB is the upper limit for normal read/write operations on
a block device like /dev/md0 on a 32bit host.  This is because it uses
the page cache, and that uses 4K pages with a 32bit index, hence
16TB.

A filesystem using a 16TB device would not be limited in the same way
as it caches individual files, not the whole device (individual files
would still be limited to 16TB).
I think if you access the block device with O_DIRECT you might be
able to bypass the 16TB barrier.  Try hacking the program
to add O_DIRECT to the open mode.

However this doesn't explain why it seems to work for RAID5.  If I
am right, RAID5 should fail in the same way as RAID0.
But I would certainly expect RAID0 to work if anything does.

Confused.
NeilBrown
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help