30~60분 후에 자동으로 대기 모드로 전환되는 하드 드라이브가 있습니다.
내가 시도한 것(3분 테스트):
# hdparm -S 36 /dev/sda
/dev/sda:
setting standby to 36 (3 minutes)
5분 이상 접근이 불가능해도 작동하지 않습니다. 이제 데이터에 액세스하는 일부 프로세스를 생각하여 테스트했습니다.
# hdparm -y /dev/sda
/dev/sda:
issuing standby command
드라이브가 대기 모드로 전환되어 잠자기 상태를 유지합니다. 다음 명령을 사용하여 확인할 수 있습니다.
# hdparm -C /dev/sda;date
/dev/sda:
drive state is: standby
예상한 대로 마운트 지점의 특정 파일을 터치하면 해당 파일이 깨어납니다.
자동 일시 중지가 작동하지 않는 이유는 무엇입니까? 내가 이해한 바로는 액세스 권한이 없는 한 운영 체제와 별도로 하드 드라이브를 종료해야 합니다.
답변1
나는 우분투 18.04를 실행 중이며 동일한 문제가 발생했습니다. @allo 님의 답변 덕분에 이것이 smartd
실제로 원인이라는 것을 알았습니다.
기본적으로 /etc/smartd.conf
다음과 같이 구성됩니다.
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
그러면 자동으로 모든 드라이브를 스캔하고 정기적으로 폴링합니다(디스크가 회전합니다)(기본값은 30분, 변경 가능). smartd는 회전 디스크를 건너뛰지 만 -n standby
문제는 다음과 같습니다. smartd 폴링 간격이 디스크의 "회전 후" 시간보다 짧은 경우 smartd는 회전할 기회가 생기기 전에 항상 디스크를 폴링하므로 디스크는 절대로 디스크를 폴링하지 않습니다. 대기 모드로 들어옵니다.
디스크의 "회전 시간 초과"가 smartd의 폴링 간격보다 짧은 경우 smartd가 폴링하기 전에 디스크가 회전하고, 그 후에는 smartd가 디스크를 건너뛰고 다시 회전하지 않습니다. 예를 들어, 디스크가 다른 도구에 의해 (수동으로) 회전되는 경우 hd-idle
smartd도 이를 건너뜁니다.
smartd 폴링 간격을 연장하는 한 가지 방법은 다음 줄을 편집하는 것입니다 /etc/default/smartmontools
.
smartd_opts="--interval=1800"
예를 들어 1800은 30분을 의미하고, 10800(3시간)이면 충분합니다. 그리고 다시 시작하는 것을 잊지 마세요:
systemctl restart smartd smartmontools
답변2
실제 문제는 smartd
대기모드임에도 주기적으로 기기의 값을 확인한다는 점이다.
나는 smartd
때때로 테스트를 비활성화하고 실행하여 이 문제를 해결했습니다.smartctl
답변3
일부 드라이브는 명령이 통과되더라도 이 기능을 구현하지 않습니다. 줄여야 할 수도 있습니다.고급 전원 관리레벨 127 이하를 달성하세요 hdparm -B 127 /dev/sda
. 매뉴얼 페이지에서:
-B 고급 전원 관리 기능 가져오기/설정... 1~127(지속 허용) 값 및 128~254(지속 허용 안 함) 값.
다른 모든 방법이 실패할 경우 장치의 읽기/쓰기 횟수를 폴링 /proc/diskstats
하거나 /sys/block/sda/stat
가져오고 몇 분 동안 변경 사항이 없으면 드라이브를 대기 모드로 명시적으로 전환하는 작은 스크립트를 작성할 수 있습니다. 보다HD 유휴유용.