Design and Implementation of Crash Recovery Technique with Bounded Execution Time for NAND Flash File System

낸드 플래시 파일 시스템을 위한 결함 복구 시간 제한 기법의 설계 및 구현

  • 강승엽 (고려대학교 컴퓨터학과) ;
  • 박현찬 (고려대학교 컴퓨터학과) ;
  • 김기만 (고려대학교 임베디드소프트웨어학과) ;
  • 유혁 (고려대학교 컴퓨터학과)
  • Received : 2010.05.07
  • Accepted : 2010.09.13
  • Published : 2010.12.15

Abstract

Flash storage devices are very popularly used in portable devices such as cell phones, PDAs and MP3 players. As technology is improved, users want much bigger and faster storage system. Paradoxically, people have to wait more and more time proportionally to the capacity of their storage devices when these are trying to be recovered after file system crash. It is serious problem because booting time of devices is dominated by crash recovery of flash file system. In this paper, we design a crash recovery mechanism, named 'Working Area(WA hereafter)' technique, which has bounded crash recovery execution time. With WA technique, write operations to flash memory are only performed in WA. Therefore, by simply scanning the latest WA. We can recover a file system crash because every change for flash memory is occured only in latest WA. We implement the WA technique based on YAFFS2 and evaluate by comparing with traditional techniques. As a result, WA technique shows that its crash recovery execution time is 25 times faster than Log-based Method when we use 1 gig a bytes NAND flash memory in worst case. This gap will be futher and futher as storage capacity grows.

현재 낸드 플래시 메모리는 다양한 이동형 기기에 활용되면서 급격하고 지속적인 성장을 하고 있다. 사용자들은 더욱 용량이 크고 빠른 기기들을 요구하지만, 현재의 낸드 플래시 파일 시스템은 결함 상황에서 복구 및 초기화 시간이 미디어의 용량에 비례하여 지연되는 문제가 있으며 이는 기기의 부팅 시간을 지연시켜 사람들의 불편을 초래한다. 우리는 이를 해결하기 위해 파일 시스템 초기화 시간이 미디어의 용량과 무관하도록 '작업 영역 기법'을 제안한다. 작업 영역 기법은 한 시점에서 낸드 플래시 메모리의 일부 영역만을 작업 공간으로 정의하고 유지하며 쓰기 명령을 작업 공간 안에서만 수행시킨다. 따라서 결합 상황에서 복구시 검색해야 할 크기를 최근 작업 영역으로 제한하므로써 결함 복구 수행 시간이 낸드 플래시 메모리 용량과 비례하지 않도록 한다. 우리는 이러한 작업 영역 기법을 YAFFS2를 기반으로 구현하였으며 기존 기법들과 초기화 성능을 비교해 보았다. 그 결과 1기가 낸드 플래시 메모리상에서 결함 복구 수행 시간이 기존의 로그 기반 기법에 비해 25배 가량 단축됨을 확인했다. 이러한 격차는 낸드 플래시 메모리 용량이 늘어날수록 커질 것이다.

Keywords

References

  1. S.H. Lim and K.H. Park, "An Efficient NAND Flash File System for Flash Memory Storage," IEEE TRANSACTIONS ON COMPUTERS, pp. 906-912, 2006.
  2. Wu, C.H., T.W. Kuo, and L.P. Chang, The Design of efficient initialization and crash recovery for log-based file systems over flash memory. ACM Transactions on Storage (TOS), vol.2, no.4, pp.449-467, 2006. https://doi.org/10.1145/1210596.1210600
  3. Dumitru, Douglas (2007-08-16). "'Understanding Flash SSD Performance," EasyCo LLC.
  4. Rosenblum, M. and J.K. Ousterhout, The design and implementation of a log-structured file system. ACM Transactions on Computer Systems (TOGS), vol.10, no.1, pp.26-52, 1992. https://doi.org/10.1145/146941.146943
  5. E. Gal and S. Toledo, "Algorithms and data structures for flash memories," ACM Computing Surveys (CSUR), vol.37, no.2, pp.138-163, 2005. https://doi.org/10.1145/1089733.1089735
  6. K.S. Yim, et al., "A fast start-up technique for flash memory based computing systems," Symposium on Applied Computing: Proceedings of the 2005 ACM Symposium on Applied computing, vol.13, no.17, pp.843-849, 2005.
  7. Hyunchan, Park, Chuck yoo, "A Design of Efficient Crash Recovery Technique for NAND Flash File System," Proc. of the 35th KIISE Fall Conference, vol.35, no.2(B), pp.470-475, 2008. (in Korean)
  8. http://www.falinux.com
  9. http://193.219.66.80/datasheets/NAND%20Flash/K9G8G08.pdf
  10. http://www.alephl.co.uk/gitweb?p=yaffs2/.git;a=summary
  11. The source code for the aging tool and benchmarks. Available : http://www.eecs.harvard.edu/keith/usenix96/
  12. Keith A. Smith and Margo I. Seltzer, "File System Aging Increasing the Relevance of File System Benchmarks," In Proceedings of the 1997 ACM SIGMETRICS Conference, pp.203-213, June, 1997.
  13. Bovet, D.P. and M. Cesati, "Understanding the Linux Kernel," 2003, O'Reilly & Associates.
  14. Love, R., "Linux Kernel Development," 2003: Sams Pub.