이것은 나의 첫 번째 질문이었습니다. 광범위한 연구 끝에 도움을 요청해야 했습니다.
Arch Linux를 기반으로 홈서버를 구축했습니다. 기본적으로 Plex 미디어 서버를 실행하고 Time Machine 백업 및 원격 미디어 구성을 위한 일부 AFP 공유를 제공하는 두 가지 주요 목적이 있습니다. 모든 것이 잘 진행되었고 공연에 매우 만족합니다. Avahi, Netatalk 및 PMS를 제외하고는 실행중인 프로세스가 많지 않습니다. 그대로 놔둘 수도 있지만 한 가지 문제가 있습니다. 바로 전원 관리입니다.
제가 달성하려는 것은 전력을 절약하고 사용하지 않을 때 하드 드라이브를 잠시 쉬게 하는 것입니다. Raid5 구성에는 BTRFS를 파일 시스템으로 사용하는 8개의 WD Red 4TB 디스크가 있습니다(데이터와 메타데이터는 모두 Raid5입니다). 디스크 어레이에 저장된 시스템이나 로그 파일은 없으며 별도의 SSD에 있습니다. 가닥이 2개뿐이고,미디어그리고타임 머신. 따라서 시스템 관련 프로세스가 디스크의 절전 상태를 방해해서는 안 됩니다.
지금까지 내가 한 일:
HD 매개변수
- –y 옵션을 사용하여 디스크를 스핀다운할 수 있는지 확인하세요✓
- APM 지원 여부 확인 -> 디스크가 자체적으로 처리✓
체계
- 시스템 시작 후 하드 디스크 회전을 설정하는 작은 서비스 작성✓
- 상태 명령을 사용하여 올바른 실행을 확인하세요✓
디스크가 회전하고 모든 것이 정상이지만 대기 모드로 전환되지는 않습니다. 모든 디스크를 대기 모드로 강제 전환한 다음 공유에서 파일을 읽으려고 하면 디스크가 예상대로 회전하기 시작하지만 시스템이 멈추고 응답하지 않게 됩니다.
이 동작의 원인이 무엇인지 잘 모르겠습니다. BTRFS가 HDD 스페어링에 적합하지 않습니까? 각 디스크가 차례로 회전하기 때문에 wake-up 시간이 너무 깁니까?
내 목표는 2시간 후에 드라이브를 대기 모드로 설정하고 BTRFS Raid에서 파일에 액세스할 때 즉시 모두 시작하는 것입니다. 누구든지 나를 도와줄 수 있나요? !
미리 감사드립니다
고쳐 쓰다
누군가가 관심을 가질 것이라고 생각되는 이 문제에 대해 보고할 몇 가지 발전 사항이 있습니다.
시스템이 자주 충돌하는 주된 이유를 찾을 수 있었습니다. 다행히 이는 BTRFS와는 아무런 관련이 없습니다. 8개의 드라이브는 함께 회전하지 않으므로 에 지정된 기본 시간 초과인 30초를 초과해야 합니다 /sys/block/sda/device/timeout
. 이로 인해 커널 오류가 발생할 수 있으며 전체 시스템이 중단될 수도 있습니다. 드라이브가 느리게 회전하는 데 드라이버 또는 커널 문제가 있습니다. 그런데 내 Adaptec HBA 1000 8i 컨트롤러는 aacraid 드라이버를 사용합니다.
시간 초과 값을 설정하면 문제가 /sys/block/sd[x]/device/timeout
해결됩니다 . 120
이제 드라이브도 잠자기 상태가 됩니다. 여기에서 더 많은 내용을 읽을 수 있습니다:http://ask.adaptec.com/app/answers/detail/a_id/15357/~/error%3A-aacraid%3A-host-adapter-abort-request
그러나 새로운 문제가 발생합니다. 이제 드라이브는 절전 모드로 전환되고 일부 프로세스는 파일 시스템에 충분히 빠르게 액세스할 수 없습니다. 내가 얻은 것은 이것이다: INFO: task xyz blocked for more than 120 seconds.
이것이 나쁜 것인가?
이제 알아내야 할 것은 8개의 드라이브를 모두 동시에 회전시키는 방법입니다. 시스템이 재부팅되면 모든 드라이브가 즉시 회전하고 PSU가 이를 잘 처리하므로 전력 소비는 문제가 되지 않습니다. 또한 새로운 오류 메시지의 원인이 무엇인지 알고 싶습니다.
의견을 보내주셔서 다시 한번 감사드립니다!
업데이트 2
추가 관찰 및 테스트 후에도 메시지 문제가 aacraid: Host adapter abort request
여전히 존재하는 것으로 보입니다. timeout
값이 설정되었기 때문에 시스템이 더 이상 정지되지 않지만 120
커널 로그는 여전히 이러한 요청으로 채워져 있습니다. 가끔 다음과 같은 항목이 표시됩니다. INFO: task btrfs-transacti:1351 blocked for more than 120 seconds.
제가 아는 한 이 두 가지 문제는 드라이브가 대기 모드에 있을 때만 발생합니다. 이는 위의 모든 문제의 주요 원인이 대기 상태에서 드라이브가 응답하지 않는 것과 관련이 있음을 의미할 수 있습니다.
또한 드라이브 용량 0
이 4000787030016
. 항목은 sd(x): detected capacity change from 0 to 4000787030016’
및 입니다 sd(x): detected capacity change from 4000787030016 to 0’
. 이것이 드라이브 전원 상태와도 관련이 있는지는 잘 모르겠습니다. 그런데 이게 이상해요.
인터넷에서 찾은 많은 제안을 시도했지만 여전히 작동하지 않기 때문에 스토리지 컨트롤러를 변경하는 것을 고려하고 있습니다. 내가 아는 바로는 LSI 컨트롤러는 Linux에서 잘 지원됩니다. 정말? 예를 들어 LSI SAS 9217-8i를 사용해 본 경험이 있는 사람이 있습니까? 이 컨트롤러가 BTRFS 및 HDD 대기 모드에서 어떻게 작동하는지에 대한 피드백을 얻으면 좋을 것입니다. 새로운 컨트롤러가 도움이 되기를 진심으로 바랍니다.
이에 대해 귀하의 의견을 보내주셔서 진심으로 감사드립니다.