하드 디스크가 자동으로 대기 모드로 전환되지 않음

하드 디스크가 자동으로 대기 모드로 전환되지 않음

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

마운트 지점의 일부 파일을 터치하면 예상한 대로 깨어납니다.

자동 일시 중지가 작동하지 않는 이유는 무엇입니까? 내가 아는 한, 액세스가 없는 한 OS와 독립적으로 하드 드라이브를 꺼야 합니다.

답변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-idlesmartd도 디스크를 건너뜁니다.

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-유휴공익사업.

관련 정보