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.