DOI QR코드

DOI QR Code

A Fast Parity Resynchronization Scheme for Small and Mid-sized RAIDs

중소형 레이드를 위한 빠른 패리티 재동기화 기법

  • 백승훈 (중원대학교 컴퓨터시스템공학과) ;
  • 박기웅 (대전대학교 해킹보안학과)
  • Received : 2013.06.20
  • Accepted : 2013.08.28
  • Published : 2013.10.31

Abstract

Redundant arrays of independent disks (RAID) without a power-fail-safe component in small and mid-sized business suffers from intolerably long resynchronization time after a unclean power-failure. Data blocks and a parity block in a stripe must be updated in a consistent manner, however a data block may be updated but the corresponding parity block may not be updated when a power goes off. Such a partially modified stripe must be updated with a correct parity block. However, it is difficult to find which stripe is partially updated (inconsistent). The widely-used traditional parity resynchronization manner is a intolerably long process that scans the entire volume to find and fix inconsistent stripes. This paper presents a fast resynchronization scheme with a negligible overhead for small and mid-sized RAIDs. The proposed scheme is integrated into a software RAID driver in a Linux system. According to the performance evaluation, the proposed scheme shortens the resynchronization process from 200 minutes to 5 seconds with 2% overhead for normal I/Os.

정전 방지 장치가 없는 중소형 레이드 (RAID: redundant arrays of independent disks)는 갑작스런 정전 또는 오류로 인한 종료 이후에 수시간의 긴 재동기화 시간을 요구한다. 레이드에서는 데이터 블록과 패리티 블록이 일관성 있게 갱신되어야 하는데, 데이터를 기록하다가 정전이 되면 데이터 블록은 갱신되었는데 패리티 블록은 갱신되지 않거나 반대인 경우가 발생할 수 있다. 이렇게 부분적으로 갱신된 스트라이프를 반드시 올바른 패리티로 갱신해야 하나 어떤 스트라이프에 이런 문제가 발생하였는지 찾기가 매우 어려웠다. 기존에는 전 저장공간을 검색하고 오류 있는 스트라이프를 수정하는, 수 시간을 요구하는, 패리티 재동기화 방법이 사용되어 왔다. 본 논문은 중소형 레이드에서 낮은 오버헤드를 갖는 고속의 재동기화 기술을 제안한다. 제안하는 기술은 리눅스의 소프트웨어 레이드에서 구현되었다. 성능 실험 결과에 따르면, 제안하는 기법은 재동기화 과정을 200분에서 5초로 단축시키고, 일반 입출력에서 22%의 오버헤드를 2%로 낮추었다.

Keywords

References

  1. P.M. Che, E.K. Lee, G.A. Gibson, R.H. Katz, and D.A. Patterson, "RAID: High-Performance, Reliable Secondary Storage," ACM Computing Surveys, Vol.26, No.2, pp.145-185, June, 1994. https://doi.org/10.1145/176979.176981
  2. J.S. Plank, "The RAIOD-6 Liberation Codees", The 6th USENIX Conf. on File and Storage Technologies, pp.97-110, Feb., 2008.
  3. W. Zheng and G. Zhang, "FastScale: Accelerate RAID Scaling by Minimizing Data Migration", The 9th USENIX Conf. on File and Storage Technologies, Feb., 2011.
  4. J. Menon and J. Cortney, "The Architecture of a Fault-Tolerant Cached RAID Controller", Proc. of the 20th Annual International Symp. on Computer Architecture, Vol.21, issue.2, pp.76-87, May, 1993.
  5. D. Teigland and H. Mauelshagen, "Volume Managers in Linux", In Proc. of the USENIX Annual Technical Conference, June, 2002.
  6. P. Clements and J. Bottomley, "High Availability Data Replication", In Proc. of the 2003 Linux Symposium, June, 2003.
  7. T. E. Denehy, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau, "Journal-guided Resynchronization for Software RAID", In Proc. of the 4th USENIX Conf. on File and Storage Technologies", Dec., 2005.
  8. T. Heo. "I/O barriers", Linux Kernel 2.6 Documentation, July, 2005.
  9. S. Tweedie, "EXT3, journaling filesystem," in Proceedings of the 2000 Ottawa Linux Symposium, 2000.
  10. A. Mathur, M. Cao, S. Bhattacharya, A. Dilger, A. Tomas, and L. Vivier, "The new EXT4 filesystem: Current status and future plans," in Proceedings of the 2007 Ottawa Linux Symposium, 2007.
  11. M. Russinvovich, "Inside Win2k NTFS, Part 1", Microsoft Developer Network. 2002.
  12. D. Robbins, "Common threads: Advanced filesystem implementer's guide, Part 9, Introducing XFS", Developer Works, IBM. Jan., 2002.
  13. J. Bacik, K. Dudka, H. Goede, D. Ledford, D. Novotny, N. Straz, and et. al., "Write Barriers", in Red Hat Enterprise Linux 6 Storage Administration Guide, pp.149-151, 2011.
  14. T10, "Information technology - SCSI Primary Commands -3 (SPC-3)", T10 Committee on SCSI Storage Interfaces, ISO/IEC 14776-313, May, 2005.
  15. Seagate, "SCSI Commands Reference Manual, Rev. A", Seagate Technology LLC, Publication Number: 100293068, Feb., 2006.
  16. Neal Christiansen, "Windows 8 File System Performance and Reliability Enhancements in NTFS", Storage Developer Conference, Sept., 2011.
  17. S.H. Baek and K.H. Park, "Striping-aware sequential prefetching for independency and parallelism in disk array with concurrent accesses", IEEE Trans. on Computers, Vol.58, No.8, Aug., 2009, pp.1146-1152. https://doi.org/10.1109/TC.2009.14
  18. S.H. Baek and K.H. Park, "Matrix-Stripe-Cache-Based Contiguity Transform for Fragmented Writes in RAID-5", IEEE Trans. on Computers, Vol.56, No.8, August, 2007.
  19. S.H. Baek and K.H. Park, "Prefetching with Adaptive Cache Culling for Striped Disk Arrays", In Proc. of the 2008 USENIX Annual Technical Conference, pp.363-376, June, 2008.
  20. D. Vadala, "Managing RAID on Linux", O'Reilly & Associates, Inc., 2003.
  21. R. McDougall, J. Mauro, "Filebench: File system micro benchmarks", http://www.opensolaris.org/os/community/ performance/filebench. 2006.