Large FOSS filesystems, was Re: [Beowulf] 512 nodes Myrinet cluster Challanges
Joe Landman
landman at scalableinformatics.com
Thu May 4 11:17:24 PDT 2006
Dan Stromberg wrote:
> On a somewhat related note, are there any FOSS filesystems that can
> surpass 16 terabytes in a single filesystem - reliably?
http://oss.sgi.com/projects/xfs/
Quoting:
"
Maximum File Size
For Linux 2.4, the maximum accessible file offset is 16TB on 4K page
size and 64TB on 16K page size. For Linux 2.6, when using 64 bit
addressing in the block devices layer (CONFIG_LBD), file size limit
increases to 9 million terabytes (or the device limits).
Maximum Filesystem Size
For Linux 2.4, 2 TB. For Linux 2.6 and beyond, when using 64 bit
addressing in the block devices layer (CONFIG_LBD) and a 64 bit
platform, filesystem size limit increases to 9 million terabytes (or the
device limits). For these later kernels on 32 bit platforms, 16TB is the
current limit even with 64 bit addressing enabled in the block layer.
"
You can put up to 48 drives in a single 5U chassis, so in theory each
chassis could give you 24 TB raw. If you want hundreds of TB to PB and
larger in a single file system, you are going to have to go to a cluster
FS of some sort.
> Even something like a 64 bit linux system aggregating gnbd exports or
> similar with md or lvm and xfs or reiserfs (or whatever filesystem)
> would count, if it works reliably.
Testing the reliability of something like this would be hard. I would
strongly suggest that you had reasonable failure modes (as compared to
spectacular ones) and graceful reduction in service (rather than
abrupt). This means that you would likely want to do lots of mirroring
rather than RAID5/6. You would also want private and redundant storage
networks behind your gndb. Not necessarily SAN level, though you could
do that. lvm/md requires a local block device (last I checked) so you
would need a gnbd below it if you wanted to cluster things. In this
case, I might suggest building large RAID10s (pairs of mirrors), and
having each unit do as much of the IO work on a dedicated and high
quality card. Each RAID10 subunit would have about 4 "devices" attached
as a stripe across mirrors. Without expensive hardware, the
stripe/mirror would need to be done in software (lvm level). This may
have serious issues unless you can make your servers redundant as well.
If you use iSCSI or similar bits, or even AoE, you can solve the block
problem. I can have each tray of Coraid (for example, could be done
with iSCSI as well) disks appear as a single block. I can then run lvm
and build a huge file system. With a little extra work, we can build a
second path to another tray of disks, and set up an lvm mirror (RAID1).
Thats 7.5TB mirrored. Now add in additional trays in mirrored pairs,
and use LVM to stripe or concatenate across them. In the iSCSI case and
in the AoE case, the issue will be having sufficient bandwidth to the
trays for the large file system. You will want as many high speed
connections as possible to avoid oversubscribing one. With IB
interconnects (or 10GBe) it shouldn't be too hard to have multiple trays
per network connection (disks will be slower than the net). With AoE,
you will need a multiport GBe card or two (disks close to same speed as
net).
We have built large xfs and ext3 file systems on such units. I wouldn't
recommend the latter (or reiserfs) for this. Jfs is reported to be
quite good for larger file systems as well.
Basically, with the right FS, and right set up, it is doable, though
management will be a challenge. Lustre may or may not help on this.
Some vendors are pushing it hard. Some are pushing GPFS hard. YMMV.
Joe
--
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics LLC,
email: landman at scalableinformatics.com
web : http://www.scalableinformatics.com
phone: +1 734 786 8423
fax : +1 734 786 8452 or +1 866 888 3112
cell : +1 734 612 4615
More information about the Beowulf
mailing list