English 中文(简体)
How to evaluate a file system?
原标题:

I ve a question related to design of file systems. These days we are seeing the proliferation of many file systems mostly related to handling large datasets and providing high availability and speed.

I would like to know that from a file system designer and developer standpoint, how do we evaluate the performance and availability of our file-system? Are there any benchmarks that we can run? How do we test the code that is written to create a file system design?

If I want to just write a distributed file system for academic purposes, would it be mandatory for me to have multiple disks or can I fake that effect somehow?

最佳回答

There are many benchmarks on file systems that are available. For example: Ext3 vs ReiserFS

My advice to you: Take a look at the Linux kernel. It has many drivers on how file systems are designed and made. Also with Linux, you do have the ability to simulate a file system by using a loop back (a file system mounted in a file).

Another option that you have is that if you are going to create a partition on a raw disk, you may want to develop that within a virtual machine, so that you do no have to have to buy new equipment or cause damage to your development machine.

问题回答

As I said here, I really recommand the journal paper by Brook University and IBM Watson Labs in the "Transaction of Storage" about file system benchmarking, in which they present different benchmarks and their strong and weak points: A nine year study of file system and storage benchmarking: A nine year study of file system and storage benchmarking.

They give lots of advise how to benchmark a filesystem benchmark. It is not an easy task to do it right.

I would say: It is better with multiple disks and multiple machines otherwise I as reviewer would probably have doubt about your evaluation. I really know the problem: I myself have only a few nodes and a few dozen disks available for my research. There are disk simulators, e.g. DiskSim, that maybe can be used for fake disks, but in a distributed setting you probably have to fake the other components (networking, locking, too). It maybe isn t impossible -- simulations are often used on other distributed settings, e.g. sensor networks -- but it is hard to do it in a rigorous way.

Edited: Related to books: There isn t any really good book, but here is a short list:

A lot of storage courses at storage research labs recommend NFS Illustrated (2000).

P.S. And please! Stop moving everything to serverfault where the title contains "file systems"!

You can perform benchmark tests using a tool like IOZone. Performance benchmarks only tell part of the story, though. Do you need journaling, replication, etc? You might get worse performace in a benchmark but have additional features that are essential to your needs. Wikipedia has a decent comparison of some filesystem features.





相关问题
Java shell expansion similar to wordexp

Is there a way to do shell wildcard expansion in java similar to the way that the C function call wordexp works? It seems a bit platform specific, but there has to be a nice abstraction for this in ...

How to evaluate a file system?

I ve a question related to design of file systems. These days we are seeing the proliferation of many file systems mostly related to handling large datasets and providing high availability and speed. ...

Storing files on the Cloud or the FileSystem? [closed]

Simple question, doesn t seem to have been directly asked yet. What are the benefits to storing files (images/videos/documents/etc) on Amazon S3-and-related vs. on the File System your app is ...

Is this specific path concatenation in Perl code exploitable?

Assume that an attacker controls the variable $untrusted_user_supplied_path. Is the following Perl code exploitable? my $untrusted_user_supplied_path = ... if ($untrusted_user_supplied_path =~ /../)...

How to determine how much free space on a drive in Qt?

I m using Qt and want a platform-independent way of getting the available free disk space. I know in Linux I can use statfs and in Windows I can use GetDiskFreeSpaceEx(). I know boost has a way, ...

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签