here - The University of New Mexico
Download
Report
Transcript here - The University of New Mexico
Benchmarking Of Various
File Systems And
Evaluating Their
Performances
CS 587 : Advanced Operating Systems
Professor Dorian Arnold
Presented by:
Safeeul Bashir and Viknesh Tj
Department of Computer Science
Introduction
File systems have evolved so much over the years from
basic functions supporting smaller file sizes to large file
storage capabilities in petabytes.
Why File Systems?
To control how data is stored and retrieved
Organization of data in the form of directories,metadata
and filenames.
Linux file systems like EXT2,EXT3,EXT4,JFS,etc have
been significant file systems throughout history.
Understanding their performance without much tuning
was an important aspect of our research on file systems
and also for the future enhancement of the same.
The Linux FS structure:
Inodes : contains the description of the file – file type, access
rights, time stamps, etc
Directories: contains files and subdirectories
Links : links that point to inodes in a directory entry
Device special files
The virtual file system: Used during system calls acting on the
files
In Linux, the general file structure starts from the /root
directory to the subdirectories like /bin,/etc,/dev, /tmp, /user,
/mnt,etc
Benchmarking the File systems:
Why Benchmarking?
To test and evaluate the performance of the file
systems.
To understand where each file system performs, e.g.,
reads, writes, and where they fail.
Graphs help us to analyze the each operation of the file
systems.
What to Benchmark?
File systems like EXT2, EXT3, EXT4,FAT32, NTFS, JFS
and XFS
I/O operations to be used on the file systems are read,
write, random read/write, backward read,
Fread,Fwrite,etc
File Systems Overview:
The Second Extended File System (EXT2):
To provide a powerful file system which implements the Unix file
system semantics and offers advanced features.
Provide robustness and prevent the risk of data loss during intensive
use.
Include provisions for extensions to allow users to benefit from new
features without reformatting their file system.
VFS has raised the maximum file system size to 4 TB. (Originally it
was restricted to 2 GB)
Provides long file names with a maximal file name size of 255
characters and can be extended to 1012 if needed.
Keeps track of the file system state
Allows the administrator to choose the logical block size when
creating the file system (can typically be 1024, 2048 and 4096
bytes).
The Third Extended File System ( EXT3 )
An enhancement to the previous file system (EXT2)
Supports the Linux Kernels from version 2.4.15 onwards
Maximum individual file size can be from 16GB to 2TB
Overall EXT3 file system size can be from 2TB to 32TB
The main benefit of the third file system was to enable Journaling.
It improves reliability and eliminates the need to check the file
system after an unclean shutdown.
Conversion of EXT2 to EXT3 file system can be performed easily
without backup or restore.
Journaling:
Journaling has a dedicated area in the file system, where all the
changes are tracked. When the system crashes, the possibility of file
system corruption is less because of journaling.
The Fourth Extended File System ( EXT4 )
EXT4 is an enhanced version of EXT3 with not much of a difference.
It was introduced in 2008 and it was developed to only provide small
scale improvements in the scalability, reliability and ease of
management.
Supports Linux kernel 2.6.19 onwards
Maximum individual file size can be from 16GB to 16TB
Overall EXT4 file system size can be from 1EB(Exabyte) to
1PB(Petabyte)
Directory can contain a maximum of 64,000 subdirectories (as
opposed to 32,000 in ext3)
You can also mount an existing EXT3 file system as EXT4 file system
(without having to upgrade it)
Several other new features are introduced in EXT4: multiblock
allocation, delayed allocation, journal checksum. fast fsck, etc.
In EXT4, you also have the option of turning the journaling feature
“off”
Persistent pre-allocation. EXT4 can pre-allocate on-disk space for a
file
Improved timestamp
FAT32
FAT is a relatively simple and unsophisticated file system that is
understood by nearly all operating systems, including Linux
It was originally developed as a simple file system suitable for floppy
disk drives less than 500K in size. Over time it has been enhanced to
support larger and larger media.
FAT32 is a derivative of the File Allocation Table (FAT) file system
that supports drives with over 2GB of storage.
The largest possible file for a FAT32 drive is 4GB minus 2 bytes.
The file system can handle a maximum of 256M clusters per
partition. FAT32 drives can contain more than 65,526 clusters
This enables very large hard disks to still maintain reasonably small
cluster sizes and thus reduce slack space between files.
NTFS (New Technologies File System)
is a proprietary file system developed by Microsoft
NTFS has several technical improvements over FAT32
Improved support for metadata, and the use of advanced data
structures to improve performance, reliability, and disk space
utilization, plus additional extensions, such as security access
control lists (ACL) and file system journaling.
The maximum theoretical file size on NTFS is 16 EB
NTFS supports a maximum cluster size of 64 kB.
Journaling is enabled and records metadata changes to the volume
NTFS also includes security features required for file servers and
high-end personal computers in a corporate environment, and data
access control and ownership privileges important for data integrity
JFS (Journaling File Systems)
Journaling file system is more reliable when it comes to data
storage. Journaling file systems do not necessarily prevent
corruption, but they do prevent inconsistency and are much faster
at file system checks than non-journal file systems.
Fully 64-bit.
Dynamic space allocation for i-nodes, i.e. no running out of i-nodes
on file systems with large number of small files.
Extremely Scalable; Consistent performance from minimum file size
up to 4 petabytes. Algorithms designed for high performance on very
large systems.
Restarts after a system failure < 1 sec.
JFS utilizes extents for allocating blocks for large files.
XFS (Extended File System)
Extended File System( XFS ):
XFS is a high-performance journaling file system is a highperformance journaling file system
XFS has been merged into the mainline Linux 2.4 and 2.6 kernels,
making it almost universally available on Linux systems
XFS is a 64-bit journaling file system with guaranteed file system
consistency
It supports a maximum file system size of 9 exabytes
On 32-bit Linux systems, this limits the file and file system sizes to
16 terabytes.
Support many advanced features like snapshots, online
defragmentation, online resizing , backups/.restore utilities ,etc .
IOZone
Generates File Workloads
Useful for performing a broad file system analysis of a vendor’s computer platform.
Measures Performance of various types of file operations on the Disks
Types of Operations Supported:
Read,
write,
re-read,
re-write,
read backwards,
read strided,
fread, fwrite,
random read, etc.
Using IOZone
We have downloaded the source code from http://www.iozone.org/.
Supports builds for AIX, BSDI, HP-UX, IRIX, FreeBSD, Linux, OpenBSD, NetBSD,
OSFV3, OSFV4, OSFV5, SCO OpenServer, Solaris, MAC OS X, Windows
(95/98/Me/NT/2K/XP)
IOZone executable file is build by using the make command.
Put the executable file in specific partition where you want to measure the
performance.
Sample Run Command.
./iozone -a -g 16G -b PerformanceTest_EXT_4.xls | tee
OutputPerformance.txt.
Generated Report Files Using GNU Plot.
System Configuration
Computer
Processor
2x Intel(R) Xeon(R)
CPU W3503 @
2.40GHz
Memory
8084MB (754MB
used)
Operating System
Ubuntu 14.04.1 LTS
EXT2, EXT3, and EXT4
EXT2
EXT3
EXT4
• Better Sequential
Write performance
• Read, Write are
faster.
• Random Operations
are comparatively
slow.
• Poor read/write
• Performed well on
performance
rewrites, fwrite and
compared with EXT2
frewrite when
• Slow backward read,
compared to EXT2 or
random read and
EXT3
strided read
• Improved Sequential
operations
Performance.
• Supports bigger file
size then EXT2
• Journaling Enabled to
improve reliability.
Performance of Read Operations for
EXT2, EXT3. EXT 4
FAT32, NTFS, JFS and XFS
FAT32
NTFS
JFS
XFS
• Good for Read
Oparatons
• Peforms Faster then
EXT2 and EXT3 in
terms of Read.
(Journaling not
Enabled).
• Poor Random
Operations
performance
compared to
Extended File
Systems
• A little bit slower
then FAT32.
• Keeps journals and
meta data at a time.
• Declines Rates when
it exceeds the buffer
cache.
• Worst Write
• Comparatively faster
performance
operations for
• Top in Read, Re-read,
smaller sized files.
other random
• Performs steady
operations.
operations without
• Works good with
dropping rate too
large files.
much for large files.
FAT32, NTFS, JFS and XFS
Conclusion
The file systems performance were largely tied to the
buffer cache,
file sizes and
memory management of the underlying operating system.
The performances may vary with other operating systems.
Sequential file operations on Linux based operating systems performed better
than on Windows.
Journaling trade some write speed for improved reliability.