하드웨어 SATA RAID-10 어레이의 단일 디스크가 어떻게 전체 어레이를 멈출 수 있습니까?


103

전주곡:

저는 소규모 회사의 SysAdmin 업무를 점점 더 많이 수행하는 코드 원숭이입니다. 내 코드는 제품이며 점점 더 SaaS와 동일한 앱을 제공합니다.

약 18 개월 전에 서버를 프리미엄 호스팅 중심 공급 업체에서 Tier IV 데이터 센터의 베어 랙 랙 푸시 서버로 옮겼습니다. (말 그대로 길 건너편)이 소식은 네트워킹, 스토리지 및 모니터링과 같은 훨씬 더 많은 일을합니다.

큰 변화의 일환으로 호스팅 회사의 임대 직접 연결 스토리지를 교체하기 위해 SuperMicro 섀시, 3ware RAID 카드, Ubuntu 10.04, 24 개의 SATA 디스크, DRBD 및 기반의 9TB 2 노드 NAS를 구축했습니다. 모든 사랑스럽게 세 블로그 게시물에 문서화 : 최대 구축 및 새로운 9TB SATA RAID10 NFSv4의 NAS 테스트 : , 파트 IIIII 부 .

우리는 또한 Cacit 모니터링 시스템을 설정했습니다. 최근에는 SMART 값과 같이 점점 더 많은 데이터 요소를 추가했습니다.

나는없이이 모든 것을 할 수 없었던 멋진 발명가 에 Serverfault . 재미 있고 교육적인 경험이었습니다. 내 상사는 행복하다 (우리가 $$$의 버킷 부하를 저장) 고객이 행복하다, (스토리지 비용이 다운) , 나는 행복 해요 (재미, 재미, 재미) .

어제까지.

정전 및 복구 :

점심을 먹은 후 얼마 지나지 않아 온 디맨드 스트리밍 미디어 CMS 인 응용 프로그램에서 성능이 저하되었다는보고를 받기 시작했습니다. 거의 동시에 Cacti 모니터링 시스템은 블리자드 이메일을 보냈습니다. 더 많은 경고 중 하나는 iostat await의 그래프입니다.

여기에 이미지 설명을 입력하십시오

Pingdom은 "서버 다운"알림을 보내기 시작하여 성능이 저하되었습니다. 전체로드는 적당하고 트래픽 급증은 없었습니다.

NAS의 NFS 클라이언트 인 응용 프로그램 서버에 로그온 한 후, 거의 모든 것이 매우 간헐적이고 IO 대기 시간이 길다는 것을 확인했습니다. 일단 기본 NAS 노드 자체로 홉핑 한 후에도 문제 배열의 파일 시스템을 탐색 할 때도 동일한 지연이 나타났습니다.

페일 오버 할 때가되었습니다. 20 분 안에 모든 것이 백업되고 완벽하게 작동하는 것으로 확인되었습니다.

검시:

모든 시스템 오류가 발생한 후 사후 검사를 수행하여 오류의 원인을 확인합니다. 내가 한 첫 번째 일은 상자에 다시 넣고 로그 검토를 시작했습니다. 완전히 오프라인 상태였습니다. 데이터 센터를 여행 할 시간입니다. 하드웨어 재설정, 백업 및 실행

에서 /var/syslog나는이 무서운 찾고 항목을 발견 :

Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_00], 6 Currently unreadable (pending) sectors
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_07], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 171 to 170
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 16 Currently unreadable (pending) sectors
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 4 Offline uncorrectable sectors
Nov 15 06:49:45 umbilo smartd[2827]: Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
Nov 15 06:49:45 umbilo smartd[2827]: # 1  Short offline       Completed: read failure       90%      6576         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 2  Short offline       Completed: read failure       90%      6087         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 3  Short offline       Completed: read failure       10%      5901         656821791
Nov 15 06:49:45 umbilo smartd[2827]: # 4  Short offline       Completed: read failure       90%      5818         651637856
Nov 15 06:49:45 umbilo smartd[2827]:

그래서 배열의 디스크에 대한 Cacti 그래프를 확인했습니다. 여기서 우리는 디스크 7이 syslog가 말한 것처럼 미끄러 져 가고 있음을 알 수 있습니다. 그러나 디스크 8의 SMART Read Erros가 변동하고 있음을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

syslog에 디스크 8에 대한 메시지가 없습니다. 더 흥미로운 것은 디스크 8의 변동 값이 높은 IO 대기 시간과 직접적으로 관련되어 있다는 것입니다! 내 해석은 다음과 같습니다.

  • 디스크 8에 이상한 하드웨어 오류가 발생하여 간헐적으로 긴 작동 시간이 발생합니다.
  • 어떻게 든 디스크 의이 결함 상태가 전체 배열을 잠그고 있습니다

더 정확하거나 정확한 설명이있을 수 있지만 결과적으로 하나의 디스크가 전체 어레이의 성능에 영향을 미칩니다.

질문

  • 하드웨어 SATA RAID-10 어레이의 단일 디스크가 어떻게 전체 어레이를 멈출 수 있습니까?
  • RAID 카드가이 문제를 해결해야한다고 생각하십니까?
  • 하나의 오작동 디스크가 전체 어레이에 영향을 미치지 않도록하려면 어떻게해야합니까?
  • 뭔가 빠졌습니까?

11
잘 쓰여진 또 하나의 질문, +1 항상 읽는 것을 좋아합니다 (그러나 불행히도 내 생각보다 위의 생각보다).
tombull89

1
@daff :이 설정으로 예산을 구매하면 HP와 비교할 때 66 %를 절약 할 수 있습니다. 우리는이 상자에 년 수명을 두었습니다. 더 이상 지속될 필요는 없습니다. 이 상자는 보관 상자이며 매년 비용이 많이 듭니다.
Stu Thompson

2
3Ware 자체는 나쁘지 않습니다. Dell 시스템의 PERC 카드에서 이상한 동작을 보였으며 서버 하드웨어는 괜찮 았습니다. 3Ware 카드에는 온보드 배터리 등이 있어야하므로 결정에 대해 나쁘지 않을 것입니다. 좋아, 당신은 SAS vs. SATA 결정에 대해 엉망이 될 수 있지만, 당신은 데이터를 잃지 않고 백업에서 모니터링하고있는 것처럼 들리므로 귀하는 꽤 잘하고 있습니다 :-)
Bart Silverstrim

1
@StuThompson : 물론 예산을 책정하고 소비자 하드웨어를 사용하는 것이 더 저렴하며, 특히 귀하의 경우와 같이 좋은 HA 개념이있을 때 특히 잘 수행됩니다. 그러나 당신이 보여준 것처럼 소비자 하드웨어가 나쁜 일이 일어날 때 그것을 자르지 않는 경우가 있습니다. 양호한 PERC (Dell) 또는 SmartArray (HP) 컨트롤러의 단일 결함 SAS 디스크로 인해 교체 디스크를 얻기위한 지원 요청 이외의 문제가 발생하지 않았 음을 거의 보증 할 수 있습니다. 프로덕션 환경에서 수년간 죽은 SAS 디스크가 많이 있었지만 서버를 중단시키지 않았습니다.
daff

5
대부분의 SATA 디스크는 TLER (Time Limited Error Recovery)를 지원하지 않습니다. 일반적인 SATA 디스크에 물리적 문제가 발생하면 "보류 작업 중 보류"를 디스크 하위 시스템 (보통 말한대로 수행)에 보냅니다. 그런 다음 디스크는 "I 'm dead"임계 값에 도달 할 때까지 발견 된 각 오류에 대해 10-30 초 (보통)를 소비합니다. TLER을 지원하는 SAS 디스크 및 SATA 디스크는 디스크 하위 시스템에 "문제가 있습니다. 어떻게해야합니까?"를 알리기 위해 HBA에 의해 구성됩니다. HBA는 기본적으로 적절한 조치를 즉시 결정할 수 있습니다. (간결하게 단순화)
Chris S

답변:


48

중요한 프로덕션 환경에서 "SATA를 사용하지 마십시오"라고 말하는 것을 싫어하지만이 상황을 자주 봤습니다. SATA 드라이브는 일반적으로 설명하는 듀티 사이클에 적합하지 않지만 설정에서 24x7 작동 등급으로 지정된 특정 드라이브를 지정했습니다 . 필자의 경험에 따르면 SATA 드라이브는 예측할 수없는 방식으로 실패 할 수 있으며 RAID 1 + 0을 사용하는 경우에도 전체 스토리지 배열에 영향을주는 경우가 많습니다. 때로는 전체 버스를 정지시킬 수있는 방식으로 드라이브가 고장납니다. 한 가지주의 할 점은 설정에서 SAS 확장기를 사용하는지 여부입니다. 따라서 드라이브 고장으로 인해 나머지 디스크에 미치는 영향이 달라질 수 있습니다.

그러나 SATA보다 미드 라인 / 니어 라인 (7200RPM) SAS 드라이브를 사용하는 것이 더 합리적 일 수 있습니다 . SATA보다 가격이 약간 비싸지 만 드라이브가 더 예측 가능하게 작동 / 실패합니다. SAS 인터페이스 / 프로토콜의 오류 수정 및보고는 SATA 세트보다 강력합니다. 따라서 메커니즘이 동일한 드라이브 를 사용 하더라도 SAS 프로토콜 차이로 인해 드라이브 장애시 발생하는 고통을 막을 수 있습니다.


질문을 하면서 SAS의 선택이 올 것이라는 것을 알았 습니다. : / IOPS 및 처리량이 내 설정 기능 내에 있습니다. 그러나 나는 더 미묘한 차이점을 완전히 이해하지 못했습니다. 이 상자에는 3 년의 수명이 있습니다. 다음에 SAS를 사용하십시오.
Stu Thompson

1
예, 다음에 고려해야 할 사항입니다. 내가 언급 한 니어 라인 SAS 드라이브는 SATA보다 성능이 뛰어나지는 않지만 SAS를보다 관리하기 쉬운 오류 복구 및 드라이브 오류와 같은 것입니다. 6 개의 컨트롤러가 장착 된 Sun Fire x4540 48 드라이브 SATA 스토리지 시스템이 있으며 개별 드라이브 오류가 서버를 잠그는 경향이 있습니다. 어려운 교훈.
ewwhite

10
저의 좋은 친구는 엔터프라이즈 스토리지 세계에 있습니다. 그는이 모든 것을 읽고 "이 사람은 옳습니다. 무슨 일이 일어나는가는 SATA가 완전한 장애를 나타내도록 설계되었으며 간헐적 인 장애 조치는 장애 조치없이 버스를 다시 조회 할 것입니다. 일반적으로 대부분의 SATA 구성이 하나의 드라이브이기 때문에 이것은 결코 보이지 않습니다. "
Stu Thompson

@StuThompson 니어 라인 SAS로 새 상자를 만들었습니까? 나는 당신의 경험에 대해 읽고 싶습니다. 귀하의 질문은 이미 많은 도움을 받았고 가까운 장래에 비슷한 상자를 만들 것입니다.
chrishiestand

1
@ chrishiestand 아니, 난하지 않았습니다. 나는 1 월 13 일에 회사를 떠났다. 내가 머물렀다면 우리는 가까운 선으로 교체 상자를 만들었을 것입니다. 아아, NAS의 존재는 나의 것과 너무 밀접한 관련이 있으며 데이터는 서비스 제공 업체의 SAN으로 옮겨졌습니다.
Stu Thompson

17

단일 디스크가 어떻게 어레이를 다운시킬 수 있습니까? 정답은 그렇지 않아야한다는 것입니다. 그러나 중단의 원인에 따라 다릅니다. 디스크가 동작하는 방식으로 죽었다면 디스크를 중단해서는 안됩니다. 그러나 컨트롤러가 처리 할 수없는 "가장자리"방식으로 실패했을 수 있습니다.

이런 일이 일어나지 않아야한다고 생각하십니까? 아니요, 그렇게 생각하지 않습니다. 이와 같은 하드웨어 RAID 카드는 대부분의 문제를 처리해야합니다.

그것을 방지하는 방법? 이런 이상한 경우를 기대할 수 없습니다. 이것은 시스템 관리자의 일부이지만 복구 절차를 통해 비즈니스에 영향을 미치지 않도록 할 수 있습니다. 지금 바로이 문제를 해결하는 유일한 방법은 다른 하드웨어 카드 (아마도하고 싶지 않은 일)를 시도하거나 SAS가 더 강력한 지 확인하기 위해 드라이브를 SATA 대신 SAS 드라이브로 변경하는 것입니다. 또한 RAID 카드 공급 업체에 연락하여 발생한 일을 말하고 그들이하는 말을 볼 수 있습니다. 그들은 결국 원 키드 드라이브 전자 장치의 장단점을 아는 전문 회사입니다. 올바른 사람들이 대화를 나눌 수 있다면 드라이브의 작동 방식과 안정성에 대한 기술적 인 조언이 필요할 수 있습니다.

당신이 뭔가를 놓친 적이 있습니까? 드라이브에 엣지 케이스 장애가 있는지 확인하려면 어레이에서 드라이브를 당기십시오. 어레이 성능은 저하되지만 어레이 성능 저하를 제외하고 이상한 속도 저하 및 오류가 발생하지 않아야합니다. 지금 당장은 제대로 작동하는 것 같지만 디스크 읽기 오류가 발생하면 드라이브를 교체해야합니다. 용량이 큰 드라이브에는 때때로 다른 드라이브가 고장날 때까지 표시되지 않는 URE 오류 (RAID 5를 실행하지 않는 가장 좋은 이유)가있을 수 있습니다. 한 드라이브에서 엣지 케이스 동작이 발생하면 손상된 데이터가 어레이의 다른 드라이브로 마이그레이션되는 것을 원하지 않습니다.


1
우리는 이미 "읽기 오류가 변동하면 급격히 줄어 듭니다" 와 같은 새로운 대체 정책을 마련 했습니다 . 이제 생각해 보니,이 드라이브에서 상당히 높은 실패율을 보였습니다. 18 개월 만에 22 개 중 4 개. 흠 ..
Stu 톰슨

2
18 개월 만에 4 개의 드라이브? 드라이브는 사양에 맞지 않을 수 있지만 냉각 / 공기 흐름 문제도있을 수 있습니다. 또는 아마도 컨트롤러에 이상한 것이 있습니다. 몇 가지 생각 만하면 ... 통나무를 주시하십시오. 스크립트뿐만 아니라 카드에 대한 실제 작업을 통해 3Ware의 모든 사용자에게 연락 할 수있는 경우, 해당 카드를 실행하고 그들이하는 말을 볼 수 있습니다.
바트 실버 스트림

1
오류가 발생하는 세트에 따라 케이블에 이상이 있거나 주변이 없는지 확인할 수도 있습니다. 오류가 동일한 포트에 집중된 것 같으면 우발적 인 오류 집합보다 적을 수 있습니다.
바트 실버 스트림

4
방금이 bum drive의 SMART 값이 ~ 31 ° C 또는 다른 모든 드라이브보다 좋은 4 ° C에서 실행되는 것을 보았습니다. 흠 ..
스터 톰슨

2
@DanNeely : 14 개 드라이브 (11 개 데이터, 3 개 시스템) 중 온도가 더 높은 유일한 드라이브입니다. 나는 공기 흐름이 양호하다고 확신하지만 내일 명시 적으로 확인할 것입니다.
Stu Thompson

10

저는 전문가는 아니지만 RAID 컨트롤러 및 스토리지 배열에 대한 경험을 바탕으로 어둠 속에서 사격을 가할 것입니다.

디스크는 여러 가지 방식으로 실패합니다. 불행히도 디스크 성능에 심각한 영향을 주지만 RAID 컨트롤러는 고장이 아닌 것으로 디스크가 고장 나거나 고장날 수 있습니다.

디스크가 명백한 방식으로 고장 나면 RAID 컨트롤러 소프트웨어는 디스크에서 응답 부족을 감지하여 풀에서 디스크를 제거하고 알림을 실행하는 데 능숙해야합니다. 그러나 여기서 일어나는 일에 대한 나의 추측은 디스크가 비정상적인 장애를 겪고 있으며 어떤 이유로 컨트롤러 측에서 장애를 일으키지 않는다는 것입니다. 따라서 컨트롤러가 영향을받는 디스크에서 쓰기 플러시 또는 읽기를 수행하는 데 시간이 오래 걸리고 전체 IO 작동 및 어레이가 중단됩니다. 어떤 이유로 든 RAID 컨트롤러가 "ah, failed disk"로 전환하기에는 충분하지 않습니다. 아마도 데이터가 결국 다시 돌아 오기 때문일 것입니다.

내 조언은 고장난 디스크를 즉시 교체하는 것입니다. 그 후, 나는 당신의 RAID 카드 구성을 살펴보고 (3ware, 꽤 좋다고 생각했습니다) 고장난 디스크로 간주되는 것을 찾으십시오.

PS 좋은 아이디어를 선인장으로 가져옵니다.


점을 연결 한 후에는 처음으로 어레이에서 디스크를 제거해야한다고 생각했습니다. 핫 스페어가 가득 찼습니다. 어제 밤이었습니다. 오늘 저는 디스크를 꺼내 RMA했습니다. 문제가되는 드라이브 : geekomatic.ch/images/wd-re4-flux-read-error.jpg
Stu Thompson

모든 미션 크리티컬 시스템에 데이터 스크러빙을 수행하는 카드가 필요하다고 생각하는 이유 중 하나입니다. 나는 특히 SATA 어레이에서 이것을 계산하기에는 너무 많은 것을 보았지만, 더 높은 수준의 SAS 디스크조차도 컨트롤러를 트리거하지 않고 실패하는 것으로 알려져 있습니다.
Jens Ehrich

7

엔터프라이즈 급 저장 장치의 기능이 필요합니다. 특히 WD RE 4 엔터프라이즈 드라이브에는 RAID 어레이에서이 동작을 방지하는 데 필요한 두 가지 기능이 있습니다. 아래에 나열된 첫 번째 기술은 회전 고조파 진동으로 인해 하드 드라이브 기계 부품이 불필요하게 마모되는 것을 방지합니다. 두 번째 기술은 문제의 원인이며 SATA 프로토콜에는이 기능이 없습니다. 이러한 기능을 사용하려면 SAS가 필요하며 SATA 드라이브를 고집하는 경우 LSISS9252와 같은 SAS-SATA Interposer 카드를 구입할 수 있습니다.

향상된 RAFF 기술 정교한 전자 장치가 드라이브를 모니터링하고 선형 및 회전 진동을 실시간으로 수정합니다. 그 결과 이전 세대 드라이브보다 진동이 많은 환경에서 성능이 크게 향상되었습니다.

RAID 특정 시간 제한 오류 복구 (TLER) 데스크탑 드라이브에 공통적 인 확장 하드 드라이브 오류 복구 프로세스로 인한 드라이브 손실을 방지합니다.

http://en.wikipedia.org/wiki/Error_recovery_control#Overview

또한 아래 링크를 참조하십시오 :

http://en.wikipedia.org/wiki/Error_recovery_control#Raid_Controllers

오류 복구 프로세스를 자세히 설명하는 Western Digital TLER Document도 참조하십시오. WD Caviar RAID Edition 직렬 ATA 하드 드라이브의 오류 복구 낙진 방지 :

http://www.3dfxzone.it/public/files/2579-001098.pdf


6

하드 디스크는 오류를보고하지 않고 읽기 오류를 재 시도하도록 구성되어 있습니다. 이는 데스크탑 설정에서 바람직한 동작이지만 RAID에서는 비생산적입니다 (제어기는 다른 디스크에서 읽지 못하는 섹터를 다시 작성해야하므로 드라이브가 다시 맵핑 할 수 있습니다).


매우 가능합니다. 그렇다면 "RAID 판"단위로 지정되어 있기 때문에 이는 냉담하지 않습니다. : |
Stu Thompson

물론 쿨하지, 그 설정은 "RAID 에디션"의 매우 정의 : 때문에
사이먼 리히터는

6

어둠 속에서 내 샷 :

  • 드라이브 7이 고장났습니다. 사용할 수없는 오류 창이 있습니다.

  • 드라이브 8에도 '더 가벼운'오류가 있습니다. 다시 시도하여 수정했습니다.

  • RAID10은 일반적으로 "여러 RAID1 쌍의 RAID0"이며 동일한 쌍의 드라이브 7 및 8 구성원입니까?

그렇다면 같은 쌍에서 두 개의 디스크 오류가 발생한 경우 "발생하지 않아야합니다"라는 메시지가 나타납니다. RAID10을 죽일 수있는 유일한 것입니다. 불행히도, 모든 드라이브가 동일한 선적 로트에서 나온 경우 발생할 수 있으므로 동시에 죽을 가능성이 더 큽니다.

드라이브 7 오류 동안 컨트롤러가 모든 읽기를 드라이브 8로 리디렉션했기 때문에 오류를 다시 시도하면 지연이 발생하여 고정 된 작업이 발생하여 잠시 동안 성능이 저하됩니다.

8 번 드라이브가 아직 죽지 않은 것 같습니다. 데이터 손실없이 고칠 수 있습니다.

두 드라이브를 모두 바꾸는 것으로 시작하고 케이블을 확인하는 것을 잊지 마십시오. 연결이 느슨하면이 문제가 발생할 수 있으며 제대로 라우팅되지 않으면 인접한 드라이브에서 발생할 가능성이 높습니다. 또한 일부 멀티 포트 카드에는 여러 개의 2 포트 커넥터가 있습니다. 드라이브 7과 드라이브 8이 같은 포트에 있으면 문제의 원인 일 수 있습니다.


3
드라이브 8은 서비스 중단의 원인입니다. 이미 뽑았습니다. Drive 7은 잠시 동안이 상태에 있었던 것처럼 일부 sektor를 잃어 버렸지 만 여전히 일반적으로 잘 작동하고 있습니다. 아니요, 드라이브는 서로 다른 쌍으로되어 있습니다. (Cacti / SNMP 쿼리가 잘못 정렬 될 수있는 가능성과 함께 고려한 내용이었습니다.) 이 카드에는 후면 패널에 16 개의 포트, 4 개의 케이블, 4 개의 케이블 당 4 개의 포트가 있습니다. 문제가 카드, 케이블 또는 후면 패널 인 경우 드라이브 8의 교체품을 삽입 할 때 곧 알게 될 것입니다.
Stu Thompson

3

SATA 인터 포저 카드는 또 다른 솔루션입니다.

나는 최근에 정확히 같은 운명을 경험 했으며이 실을 발견했습니다. 전체 테너는 SATA에 기능이 없기 때문에 SAS 프로토콜 이 SATA보다 RAID에 더 적합하다는 것입니다. 그렇기 때문에 동일한 물리적 드라이브에 SAS 컨트롤러가 장착되어 Nearline SAS로 판매됩니다.

더 검색하면 다음을 발견했습니다.

http://www.lsi.com/products/storagecomponents/Pages/LSISS9252.aspx

스토리지 중 하나를 배치로 업그레이드하는 방법을 조사 중입니다. 현재 3TB SATA와 SAS의 가격 차이는 400 %입니다 (바닐라 가격, 동일한 브랜드, 사양 및 상점, 독일). 이 전략이 제대로 작동하는지 알 수는 없지만 시도해 볼 가치가 있습니다.

댓글 매우 환영합니다 :-)


1
좋은 이론. 일부 정보를 수집 한 후에는 스토리지 트레이 제조업체 만 이러한 보드를 통합 할 수 있으며 추가한다고해서 더 나은 오류 처리를 의미하지는 않습니다.
korkman

2

나는 깨진 전자 장치가있는 SATA 디스크가 Areca 12의 펌웨어 초기화를 단단히 잠그는 것을 보았습니다. 바이너리에서 디스크를 꺼내어 문제의 하드 드라이브를 찾을 때까지 매체에서 머신을 부팅하지 않고 BIOS에 액세스 할 수있는 방법이 없었습니다. 패션 검색.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.