본문 바로가기
IT 지식정리/스토리지

ZFS에 대해서 알아보자!! -특성2 2013. 5. 1.

by G. Hong 2017. 11. 4.
728x90
반응형
Silent data corruption(감지되지 않는 데이타장애)
장애 중에 최악의 장애는 장애가 있음에도 불구하고 장애감지를 하지 못하는 장애입니다. 이러한 장애들을 "Silent corruption"이라고 합니다. NetApp의 150만대의 HDD를 연구한 데이터베이스에는 평균 90개의 SATA드라이브 중에 1개에서 HW RAID검사에서 발견되지 않은 silent corruption이 발생한다고 합니다. RAID-5 시스템에서는 매 67TB의 데이타읽기에 한번씩 감지되지 않은 장애가 발생한다고 합니다.
하지만, 디스크내부보다는 외부의 원인에 의해서 이러한 문제가 더 많이 발생한다고 합니다. 예를 들면, 디스크 케이블이 느슨하거나, 전원이 불안정하거나, 외부의 진동(소음), FC스위치장애, 발열, soft error 등이 있습니다.
39000개의 시스템을 분석해본 결과, 펌웨어버그에 의한 스토리지 장애는 5~10%를 차지하였습니다. 대체로 10^16bit당 하나의 비율보다 높은 수치였습니다.(에러율은 CERN연구에의해 측정되었습니다)
지금까지 Silent data corruption은 심각한 문제는 아니었습니다. 스토리지 장비들은 비교적 작고 느렸기 때문입니다. 사용자들은 silent corruption을 매우 가끔 접했었고, 솔루션이 필요한 대상이라고 생각하지 않았었습니다. 
하지만, 대용량 드라이브들과 빠른 RAID로 인해서 사용자들은 10^16bit를 상당히 빠른 시간에 전송하게 되었습니다. 특히, ZFS의 개발자인 Jeff Bonwick는 Greenplum(회사)의 데이타베이스에서는 silent curruption이 15분에 한번씩 발생하였다고 하였습니다. 이러한 대용량의 빠른 RAID구성은 데이터 무결성을 중요시하는 새로운 파일시스템을 필요로 하게 되었습니다. 

 

ZFS data integrity(ZFS 데이타 무결성)
ZFS에서는 데이타무결성에 checksum 이나 hash가 사용되게 됩니다. 데이타의 모든 블록들은 checksum 값들을 가지고 있고, checksum값들은 포인터로 지정된 블록에 저장됩니다. 그 다음으로 블록포인터도 checksum이 사용되어 마찬가지로 그것의 포인터에 저장되게 됩니다. 이러한 방식으로 머클트리를 형성하여 사용하게 됩니다. 블록으로 접근이 있게되면 checksum 비교를 하게 되어 데이타의 이상여부를 확인하여 필요에 따라 ZFS mirror나 RAID에서 복구를 하게 됩니다. 
 
 
Hardware RAID on ZFS(ZFS에서의HW RAID)
하이엔드 스토리지 장비나 하드웨어 RAID컨터롤러에서 ZFS를 사용할때 ZFS는 자동 셀프힐링기능을 위해서 여러장비에 엑세스를 할 수 있어야 합니다. 
만약 하드웨어 RAID가 사용된다면 가장 효율적인 방법은 JBOD이나 RAID0을 사용하는 것입니다. ZFS에서는 데이타 무결성을 위해서 여러  스토리지개체들(디스크들)에 엑세스할 수 있게 하거나 같은 하나의 디스크에 복사본들(redundancy)을 만들어 두게합니다.

 

728x90
반응형