저하된 NAS 어레이는 재구성이 시작되기 전에 느려질 수 있는데, 이는 실패가 일반적인 읽기 및 쓰기 완료 방식을 이미 변경했기 때문입니다. 어레이는 병렬 미러 소스를 잃거나, 필요에 따라 누락된 패리티 데이터를 재구성하거나, 불안정한 드라이브를 재시도하거나, 더 많은 작업을 생존 멤버를 통해 라우팅할 수 있습니다.
재구성은 누락된 멤버를 복원하는 후속 작업입니다. 저하된 작동은 어레이가 한 멤버를 신뢰하지 않게 되는 즉시 시작되므로, 교체 베이가 비어 있고 재구성 진행 표시줄이 실행되지 않아도 애플리케이션 지연이 증가할 수 있습니다.
RAID 멤버가 누락되는 순간 무엇이 변하나요?
대부분의 중복 어레이는 저하 모드로 계속 작동하지만, 데이터 경로는 모든 멤버가 사용 가능할 때의 정상 경로가 아닙니다.
어레이 컨트롤러나 소프트웨어 계층은 멤버를 실패, 사용 불가 또는 더 이상 신뢰할 수 없는 상태로 기록합니다. 그 시점부터 각 요청은 누락된 소스를 피하고 더 적은 장치로 일관성을 유지해야 합니다.
정확한 페널티는 RAID 레벨과 요청된 블록에 따라 다릅니다. 생존 데이터를 대상으로 하는 읽기는 비교적 직접적일 수 있지만, 실패한 멤버가 필요한 읽기는 재구성이나 다른 복제본이 필요합니다.
패리티 읽기가 재구성 전에 더 많은 작업이 필요한 이유는 무엇인가요?
실패한 멤버에 속한 데이터 요청은 저하된 읽기가 됩니다. 이 경로 동안 저하된 읽기는 생존 데이터와 패리티 조각에서 데이터를 복구하는 데 CPU를 사용합니다.
요청된 하나의 블록을 읽는 대신, 어레이는 여러 생존 드라이브에서 블록을 가져와 XOR 또는 이레이저 코드 계산을 수행하고 재구성된 결과를 클라이언트에 반환해야 할 수 있습니다. 이는 장치 팬아웃과 요청당 처리량을 증가시킵니다.
이 재구성이 포그라운드에서 발생하기 때문에, 사용자는 교체 드라이브가 추가되기 전에도 파일 열기, 데이터베이스 읽기, 미디어 탐색 또는 애플리케이션 시작이 느려지는 것을 느낄 수 있습니다.
거울이 읽기 병렬성을 잃는 이유는 무엇인가요?
건강한 미러는 동등한 복사본 간에 읽기를 분산할 수 있습니다. 한 멤버가 고장 난 후에는 남은 미러 멤버가 단독으로 읽기를 처리합니다, 이는 고장 전 존재했던 읽기 병렬성과 큐 분산을 제거합니다.
순차 처리량은 미러 쌍의 결합된 성능 대신 한 디스크의 성능에 근접할 수 있습니다. 랜덤 요청도 덜 바쁜 복제본에서 처리되는 대신 한 장치 큐 뒤에 쌓입니다.
이 페널티는 패리티 계산이 필요하지 않습니다. 사용 가능한 복사본을 잃고 작업 부하가 남은 멤버에 집중되기 때문입니다.
왜 반쯤 고장 난 드라이브가 깔끔한 고장보다 느릴 수 있을까요?
보이지만 섹터 문제로 고생하는 드라이브는 명령을 재시도하는 데 오랜 시간을 보낼 수 있습니다. 리눅스 소프트웨어 RAID에서는 긴 드라이브 타임아웃이 배열을 멈출 수 있습니다 저장 계층이 포기하고 다른 곳에서 블록을 재구성하기 전까지 말입니다.
이러한 일시 중지는 깔끔하게 실패하여 활성 경로에서 제거된 드라이브보다 더 심할 수 있습니다. 요청은 불확실한 멤버를 기다리고, 큐가 그 뒤에 쌓이며, 평균 처리량이 여전히 괜찮아 보여도 애플리케이션은 긴 지연 시간을 경험합니다.
컨트롤러와 NAS 플랫폼은 타임아웃, 오류 복구, 멤버 제거 정책이 다릅니다. 그래서 같은 RAID 레벨의 두 배열이 동일한 불량 디스크에 대해 매우 다르게 반응할 수 있습니다.
일반 NAS 작업 부하는 감소된 I/O와 어떻게 경쟁할까요?
남아 있는 드라이브는 SMB, NFS, 컨테이너, 미디어 인덱싱, 백업, 앱 데이터베이스를 계속 제공하는 동시에 누락된 데이터를 위한 추가 읽기 작업도 수행해야 합니다. 감소 모드는 남은 드라이브에 부담을 줍니다.
한때 한두 개 장치만 관여했던 요청이 이제는 전체 패리티 그룹을 포함할 수 있습니다. 이는 대역폭을 소모하고, 큐 깊이를 증가시키며, 재구성된 데이터와 메타데이터가 포함된 유용한 캐시 항목을 내쫓을 수 있습니다.
느려짐 현상은 HDD 배열, 다중 사용자 시스템, 그리고 많은 작은 종속 I/O 작업이 있는 작업 부하에서 더 뚜렷하게 나타납니다. 단일 대용량 순차 복사는 애플리케이션 데이터베이스가 즉시 노출하는 지연 시간을 숨길 수 있습니다.
재구성이 마침내 시작되면 무엇이 변할까요?
교체 드라이브를 추가하면 두 번째 성능 단계가 시작됩니다. 시스템은 중복성을 복원해야 하며, 재구성 트래픽은 읽기 및 쓰기를 느리게 할 수 있습니다 동시에 전경 애플리케이션은 계속 활성 상태를 유지합니다.
재구성은 살아남은 데이터를 읽고 누락된 내용을 계산하여 교체 드라이브에 씁니다. 이 광범위한 백그라운드 스트림은 이미 발생 중인 저하된 전경 작업과 경쟁합니다.
따라서 재구성 우선순위는 균형점입니다. 더 공격적인 재구성은 취약한 시간을 단축할 수 있지만 즉각적인 대역폭을 더 많이 소비하고, 매우 부드러운 재구성은 응답성을 유지하지만 저하 상태가 더 오래 지속됩니다.
| 배열 상태 | 추가 작업 | 사용자 영향 가능성 |
|---|---|---|
| 정상 미러 | 읽기는 어느 복사본이든 사용할 수 있음 | 병렬 처리 및 낮은 대기열 압력 |
| 저하된 미러 | 한 멤버가 모든 읽기를 처리 | 낮은 처리량과 높은 지연 시간 |
| 저하된 패리티 배열 | 요구 시 누락된 블록 재구성 | 더 많은 장치 읽기 및 CPU 작업 |
| 패리티 배열 재구성 | 전경 재구성 및 복구 스트림 | 두 번째, 종종 더 큰 성능 저하 |
자주 묻는 질문
재구성이 실행 중이지 않아도 저하된 RAID 배열이 느릴 수 있나요?
네. 배열은 이미 누락된 읽기를 재구성 중이거나, 남은 미러 멤버 하나를 사용하거나, 불안정한 드라이브의 재시도를 기다리고 있을 수 있습니다.
저하된 패리티 배열에서 모든 읽기가 느려지나요?
반드시 그런 것은 아닙니다. 살아남은 멤버에서 직접 사용할 수 있는 데이터에 대한 읽기는 여전히 빠를 수 있지만, 실패한 멤버의 기여가 필요한 요청은 재구성이 필요합니다.
왜 때때로 고장 난 드라이브를 제거하면 응답성이 향상될 수 있나요?
불안정한 드라이브는 반복 복구 시도 중에 명령을 보류할 수 있습니다. 배열이 더 이상 기다리지 않으면 RAID 계층은 중복성을 이용해 실패한 읽기를 예측 가능하게 재구성할 수 있습니다.
재구성 우선순위를 항상 최대치로 설정해야 할까요?
모든 NAS에 맞는 보편적인 설정은 없습니다. 우선순위를 높이면 저하된 시간이 단축되지만 서비스 응답성이 떨어질 수 있습니다. 결정은 작업 부하의 중요성, 배열 상태, 백업 준비 상태를 반영해야 합니다.
최종 요약
NAS는 재구성이 완료될 때까지 기다리지 않습니다. 정상적인 읽기 경로가 이미 사라졌기 때문에 성능이 즉시 저하될 수 있습니다: 미러는 복제본을 잃고, 패리티 배열은 누락된 블록을 재구성하며, 불안정한 드라이브는 긴 재시도 대기열을 유지할 수 있습니다. 재구성은 저하된 경로 위에 두 번째 작업 부하를 추가하므로, 진행 표시줄이 시작되기 전에 속도 저하가 시작되고 시작 후에 더 심해지는 경우가 많습니다.
기술 및 AI 허브
더 읽어보기

Home Assistant는 LAN 연결과 원격 연결에서 왜 다르게 작동하나요?
LAN 및 원격 Home Assistant 세션은 서로 다른 네트워크 경로를 사용합니다. 원격 연결의 지연 시간에는 DNS, 암호화, WAN, 프록시 또는 VPN, 재연결 동작으로 인한...

Home Assistant는 CGNAT 또는 이중 NAT 환경에서도 안정적으로 작동하나요?
CGNAT와 이중 NAT는 일반적으로 로컬 Home Assistant 제어에 영향을 주지 않으며, 주로 원격 클라이언트가 홈 네트워크로 인바운드 경로를 생성하는 방식에 영향을 줍니다.

인터넷 장애가 발생했을 때 네트워크 지연 시간이 Home Assistant에 어떤 영향을 미치나요?
인터넷 연결 끊김과 네트워크 지연 시간은 서로 다른 장애입니다. 로컬 장치 경로는 빠른 상태를 유지할 수 있지만, DNS, 클라우드 통합, 게이트웨이 또는 원격 클라이언트는...

