DOI QR코드

DOI QR Code

Consideration of fsync() of the Ext4 File System According to Kernel Version

커널 버전 별 Ext4 파일 시스템의 fsync()에 대한 고찰

  • 손성배 (한양대학교 컴퓨터.소프트웨어학과) ;
  • 노연진 (한양대학교 컴퓨터.소프트웨어학과) ;
  • 이도근 (한양대학교 컴퓨터.소프트웨어학과) ;
  • 박성순 (안양대학교 컴퓨터공학과) ;
  • 원유집 (한양대학교 컴퓨터.소프트웨어학과)
  • Received : 2016.11.11
  • Accepted : 2016.12.27
  • Published : 2017.04.15

Abstract

Ext4 file system is widely used in various computing environments such as those of the PC, the server, and the Linux-based embedded system. Ext4, which uses a buffer for block I/O, provides fsync() system call to applications to guarantee the consistency of a specific file. A log of the analytical studies regarding the operation of Ext4 and the improvement of its performance has been compiled, but it has not been studied in detail in terms of kernel versions. We figure out that the behavior of fsync() system call is different depending on the kernel version. Between the kernel versions of 3.4.0 and 4.7.2, 3.4.0, 3.8.0, and 4.6.2 showed behavioral differences regarding the fsync() system call. The latency of fsync() in kernel 3.4.0 is longer than that of the more-advanced 3.7.10; meanwhile, the characteristics of 3.8.0 enabled the disruption of the Ext4 journaling order, but the ordered defect was solved with 4.6.2.

Ext4 파일시스템은 리눅스를 기반으로 하는 PC, 서버, 임베디드 시스템 등에 널리 사용되고 있고, 동작 분석 및 성능 향상에 대한 많은 연구들이 진행되어왔다. 하지만, 버퍼를 활용한 입출력을 사용하는 Ext4에서 특정 파일에 대한 즉시 내구성을 요구하는 fsync() 시스템 콜을 커널 버전 별로 자세히 분석한 연구는 찾아보기 힘들다. fsync() 시스템 콜의 분석을 통해 커널 3.4.0 ~ 4.6.4 버전 중 3.4.0, 3.8.0, 그리고 4.6.2 세 개의 버전에서 fsync() 동작에 차이가 있음을 발견하였다. 커널 3.4.0 버전은 3.7.10 이후 버전에 비해 긴 지연시간을 가지는 특징이 있다. 3.8.0 버전은 Ext4 저널링의 순차 모드가 깨질 수 있는 단점을 가지고 있으며, 해당 문제는 4.6.2 버전에서 해결되었다.

Keywords

Acknowledgement

Grant : 차세대 메모리 기반의 스마트 디바이스용 임베디드 시스템 소프트웨어, 32Gbps 데이터 서비스를 위한 익스트림 스토리지 입출력 기술 개발

Supported by : 한국산업기술평가관리원, 정보통신기술진흥센터

References

  1. H. Kim, J. Kim, "Tuning the Ext4 Filesystem Performance for Android-based Smartphones," Proc. of Frontiers in Computer Education. Springer Berlin Heidelberg, pp. 745-752, 2012.
  2. A. Mathur, M. Cao, S. Bhattacharya, A. Dilger, "The New Ext4 Filesystem: Current Status and Future Plans," Proc. of the Linux symposium, Vol. 2, 2007.
  3. S. Jeong, K. Lee, S. Lee, S. Son, Y. Won, "I/O stack Optimization for Smartphones," Proc. of the USENIX Annual Technical Conference (USENIX ATC 13), 2013.
  4. W.H. Kim, B. Nam, D. Park, Y. Won, "Resolving Journaling of Journal Anomaly in Android I/O: Multi-version B-tree with Lazy Split," Proc. of the 12th USENIX Conference on File and Storage Technologies (FAST 14), 2014.
  5. D. Jeong, Y. Lee, J. Kim, "Boosting Quasi-asynchronous I/O for Better Responsiveness in Mobile Devices," Proc. of 13th USENIX Conference on File and Storage Technologies (FAST), 2015.
  6. D. Kang, Y. Eom, "FS-LRU: A Page Cache Algorithm for Eliminating Fsync Write on Mobile Devices," Proc. of IEEE International Conference on Consumer Electronics (ICCE), IEEE, 2016.
  7. Y. Kang, D. Shin, Y Kang, D Shin, "Per-block- group Journaling for improving Fsync Response Time," Proc. of The 18th IEEE International Symposium on Consumer Electronics (ISCE 2014), IEEE, 2014.
  8. D. Park, M. Kim, D. Shin, "Optimizing Fsync Performance with Dynamic Queue Depth Adaptation," Journal of Semiconductor Technology and science, Vol. 15, No. 5, pp. 571-577, Oct. 2008.
  9. D. Park, D. Shin, "Fine-Grained Journaling for Reducing Fsync System Call Latency," Proc. of the KIISE Winter Conference, pp. 1219-1221, 2015. (in Korean)
  10. D. Bovet, M. Cesati, Understanding the Linux Kernel Edition, O'Reilly, Sebastopol, CA. 2006.
  11. M. Bjorling, J. Axboe, D. Nellans, P. Bonnet, "Linux Block IO: Introducing Multi-Queue SSD Access on Multi-core Systems," Proc. of the 6th International Systems and Storage Conference, ACM, 2013.
  12. J. Watkins, D. Labuda, W. Loo, "Input/Output Cache with Mapped Pages Allocated for Caching Direct (Virtual) Memory Access Input/Output Data based on Type of I/O Devices." U.S. Patent No. 5,263,142. 16 Nov. 1993.
  13. J. Coke, A. Bhatt, S. Graham, D. Lent, "Implementing scatter/gather operations in a direct memory access device on a personal computer," U.S. Patent No. 5,708,849, 1998.
  14. K. Fairbanks, C. Lee, Y. Xia, "Timekeeper: A Metadata Archiving Method for Honeypot Forensics," Information Assurance and Security Workshop, 2007, IAW'07, IEEE SMC, 2007.
  15. S. Tweedie, "Journaling the Linux Ext2fs Filesystem," The Fourth Annual Linux Expo. 1998.
  16. T. Ts'o, (2012, Nov. 16). Ext4: Remove Calls to ext4_jbd2_file_inode() from Delalloc Write Path [Online]. Available: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f3b59291a69 d0b734be1fc8be489fef2dd846d3d
  17. J. Kara, (2016, Jan. 11). Ext4: Fix Data Exposure after a Crash [Online]. Available: https://patchwork. ozlabs.org/patch/565741