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

전주곡:

저는 소규모 회사의 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 카드가이 문제를 해결해야한다고 생각하십니까?
  • 하나의 오작동 디스크가 전체 어레이에 영향을 미치지 않도록하려면 어떻게해야합니까?
  • 뭔가 빠졌습니까?


답변

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

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


답변

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

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

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

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


답변

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

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

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

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

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


답변

엔터프라이즈 급 저장 장치의 기능이 필요합니다. 특히 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


답변

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


답변

어둠 속에서 내 샷 :

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

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

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

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

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

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

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


답변

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

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

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

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

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

댓글 매우 환영합니다 🙂