(재질문) 기초적인 질문인데요 raid 1 에서 데이터 오류가 나면...?

민사장   
   조회 5779   추천 0    

제가 질문을 어렵게 썼나봅니다.

raid 1을 할 때, 쉽게 말해서 실시간 에러교정을 해주느냐 하는 것입니다.

파일 1번을 읽을 때, disk1 disk2 중 disk1 에서 깨져있는 상태일 때 컨트롤러가 이걸 발견하면

실시간으로 정상인 disk2 에서 읽어와서 disk1 에 에러 교정을 해 주느냐 ?

디스크 전체가 깨진게 아닌, 파일 1개가 한쪽 디스크에서만 깨진 경우에요.

이게 궁금합니다.
짧은글 일수록 신중하게.
RAID가 기본적으로 하드웨어 장애에 대한 대책중 하나이지, 파일단위의 데이터에 대한 대책은 아닌 것으로 알고있습니다.

파일단위 즉.. 데이터의 검증 또는 교정은 그 데이터가 오염된것을 검증할 별도의 장치가 필요할듯합니다.

물리적 섹터의 이상에 대한 검증(W/R 에러)만 가능한것으로 알고있습니다.(별도의 솔루션이 있는지는 저도 모르겠습니다.)

------- 제가 가지고 있는 RAID의 기본 개념입니다...(잘못 알고있는거라면 지적해 주세요. ^^)
     
+1

RAID 라는 것이 지금은 redundant array of independent disks 이지만 원래는 redundant array of inexpensive disks 였습니다. 말은 즉 싸구려 디스크들 (그당시에는 무지 비싼 싸구려)로 만들어 놓은 중복 스토리지 라는 이야기였는데... 그만큼 싸구려 디스크의 안정성이 떨어지니까 그것을 보완해주는 장치를 체계적으로 만든것이였죠.

RAID1 은 두개의 하드디스크에 동일한 정보를 저장하여 만약 둘중에 한개가 갑자기 작동을 안하여도 데이터가 계속해서 재공되는 방식입니다. 여기서 실시간 에러교정이라는 것이 무엇을 뜻하시느냐에 따라서 위의 질문에 답은 "네" "아니오" 가 나옵니다. 예를 들어 디스크0과 디스크1을 묶어서 R0 이라는 하나의 디스크볼륨을 만들었다고 가정을 하겠습니다. 컴퓨터가 작동하면서 디스크 R0 에 I/O 를 합니다. 그때 RAID Controller (HW 또는 SW)는 컴퓨터(OS)에 R0 이라는 디스크만 보이게 하고 R0의  I/O  를 디스크0과 디스크1에 RAID1 방식으로 쓰고 읽고 지우고 합니다. RAID1은 미러시스템이니까 쓰고 지울 때에는 동시에 디스크0 과 디스크1에다가 쓰고 지우고, 읽을때에는 동시에 양쪽에서 읽어 옵니다. (이것으로 인하여 옵티마이즈된 RAID1은 읽기에 강할 수 있습니다) 이때 둘중 하나의 디스크에서 I/O 에러가 있으면 레이드 콘트롤러는 그것을 인지하고 I/O 에러가 없는 디스크만 취급하기 시작합니다. (이것보다 더 복잡하지만 그냥 간략화 했습니다) 그러면 이때부터는 1개의 디스크를 쓰는것입니다. 그리고 무슨 불이켜지든 소리가 나든 신호를 보내겠죠. 하나의 디스크가 맛이 갔다는것을 인지한 시스템메니져가 맛이간 하드를 교체합니다. 그리고 resilvering* (다시 미러를 만드는 작업)을 통해서 깨졌던 레이드1은 정상으로 돌아옵니다. 이런 레이드1로 인해서 하나의 하드가 맛이 갔었음에도 불구하고 시스템은 정상적으로 작동하고 있었던것처럼 유저들에게 보입니다. 레이드1에서 만약 두개의 하드가 동시에 맛이 가버리면 시스템은 정상작동이 안되고 그렇게 되면 OFF TIME 이 생기게 됩니다. 백업에서 데이터를 가져오든 하드를 명정보에 맏겨 데이터를 살려내든 OFF TIME 은 비즈니스에 치명적인 타격을 주게됩니다. 그래서 RAID를 쓰고 선호하는것입니다.

그리하여 위의 질문으로 다시 돌아가 실시간으로 에러 교정을 해주느냐?
예 해줍니다 -> 디스크하나가 맛탱이가 가버려도 나머지 하나가 살아있는한 씨스템은 정상작동합니다. 그리고 맛간 디스크를 교체하고 리실버링* 해주어서 다시 정상 레이드1을 만들어 놓을 수 있습니다.
아니요 에러교정과 레이드는 전혀 상관 없습니다 -> 디스크가 맛간것이아니라 파일이 깨진경우에는 레이드가 깨진 파일을 교정해주지 않습니다. 파일이 정상파일인지 아닌지를 확인하는 방식은 CRC Checksum (md5sum같은것)을 써서 검사하는 방식밖에 없으며 만약 파일이 정상이 아니면 백업된 정상파일로 복원하는 방식밖에 없습니다.

*resilvering - 이게 재미있는 말이라서 적습니다. 오래전에는 거울(미러)이 은으로 되어있었다합니다. 은은 녹이 쉽게나고 그럼 거울은 잘 안보였겠죠. 그래서 resilvering 이라는 작업을 통해서 다시 반짝거리는 거울로 만들었었다고 하네요... 레이드1 (미러)에서 하나의 하드가 맛이가면 미러는 망가지고 (깨지고) 그럼 다시 미러를 만드는 작업을 컴퓨터세계에서도 리실버링이라고 부르게 되었습니다... 리실버링은 원래 레이드1에서만 쓰는 말이였는데 통상 다른 레이드종류에서도 망가진 레이드를 복원하는 작업을 리실버링이라고 부르기도 합니다.
          
Ryan 2015-03
c:\abc.txt 라는 파일이 있는데
C: 는 disk1 - raid1 - disk2 로 묶여 만든 논리적 불륨이라고 할 때
disk1 의 C:\abc.txt 를 저장하는 sector 가 어떤 자기적인 영향을 받아서 깨졌습니다. 파일을 읽어올 수 없는 상태.
그러나 disk2 의 C:\abc.txt 는 다행히도 영향을 받지 않아 파일을 읽어올 수 있는 상태입니다.
만약 사용자가 편집기로 C:\abc.txt 를 열 때, 컨트롤러가 disk1 disk2 에서 동시에 접근할 때 disk1 이 배드가 나서 파일을 읽어올 수 없는 상태임을 전달받았고 disk2 에서는 정상적으로 파일이 읽혀져 옵니다.

이 경우 강승훈 님 말씀은 disk2 의 c:\abc.txt 에서 읽어서 disk1 의 다른 섹터로 c:\abc.txt 를 윈도우 사용중에 (실시간) 자동 교정해 주지 않는 다는 말씀인 것이죠 ?

리빌드(리실버링 맞죠)는 전체적으로 다시 복사하는건데, 위에 처럼 raid1 이 부분적으로 땜빵해주진 않는 다는 것 맞나요? ^^ 한번만 다시 확인 부탁 드려요.

(ps ; 아래글에서 답변하신 분들 중에 sector 개념이 없는거로 왠지 느껴지는 분들이 많은 것 같아요. 섹터란 데이터가 기록되는 물리적인 위치...)
               
이 경우 강승훈 님 말씀은 disk2 의 c:\abc.txt 에서 읽어서 disk1 의 다른 섹터로 c:\abc.txt 를 윈도우 사용중에 (실시간) 자동 교정해 주지 않는 다는 말씀인 것이죠 ?
-------
이 질문에 답은 "교정해 주지 않습니다" 입니다. 만약 재 질문 하신것 처럼 베스섹터가 나면 하드가 (여러번  시도하여 성공하면 그것을 기록하고 넘어갑니다) 문제가 있다고 표시를 합니다. 그리고 그 후로는 디스크 한개만 씁니다. 시스템어드민이 문제가있던 하드를 물리적으로 교체합니다. 그다음에 리실버링을 합니다. 리실버링이 끝나면 레이드는 다시 정상으로 돌아옵니다.

여기서 콘셉은...

레이드는 파일에관하여 아무것도 모른다...
레이드는 디스크와 디스크간에 sector 이든 multi sector 이든 어떤 단위의 정보에 대해서만 압니다...
                    
Ryan 2015-03
도움이 되었습니다.

자세한 설명 정말 감사합니다.
레이드에 대하여 자세하게 설명을 하면 책이 한권 나올 수 도 있습니다. 그만큼 내용이 복잡하고...

하지만 빅데이터 시대인 요즘엔 레이드가 사실 크게 의미가 없는 시대가 되어버렸다고 합니다... 특히 레이드5나 레이드6 종류... 레이드가 깨지는데 필요한것은 하나의 베이쎅터이고 6테라 하드디스크에서 하나의 베드쎅터가 나오는것은 (high density platter 에서) 굉장히 Chance 가 높기 때문이라하고요... 그럼 레이드는 아주 자주 깨지게 되고... 그럼 자주깨지는 레이드를 자주 리씰버(리빌드)해주지 않으면 데이터가 날라가버리는 현상이 생기고 그럼 OFF TIME 이 생기고...

그래서 차세대 Redundent 스토리지 같은것은 레이드로 구성된 시스템보다 HA Clustering 을 통한 시스템으로 구성한다합니다.


QnA
제목Page 3296/5724
2014-05   5237569   정은준1
2015-12   1763271   백메가
2011-11   5778   경박한시민
2017-02   5778   무아
2013-04   5778   임종균
2007-10   5778   김승룡
2006-08   5778   백인학
2015-01   5778   Tori
2009-02   5778   달리는아이
2021-08   5778   안형곤
2016-04   5778   이하나
2013-04   5778   장동건2014
2016-07   5778   시냇물
2011-11   5778   서버공부
2005-11   5778   민봉기
2015-03   5778   KarisTuck
2016-05   5778   이미존재하…
2006-12   5778   김윤환
2019-10   5778   건약
2007-11   5778   곽순현
2016-09   5778   겨울나무
2005-08   5778   권형준