하드 드라이브를 회전시키는 항목 찾기


10

저는 Linux 배포판을 운영하는 NAS의 소유자입니다. 웹 관리 프론트 엔드가 제공되어 여러 서비스, 사용자 권한 및 잠자기 시간을 관리 할 수 ​​있습니다. 내 문제는 어떤 이유로 NAS가 절전 모드로 전환되면 몇 분 후에 하드 드라이브가 다시 켜집니다. 그런 다음 얼마 동안 회전 한 다음 다시 잠이 듭니다. 이것은 무한정 계속됩니다.

이에 대한 원인을 어떻게 확인할 수 있습니까? 나는 리눅스를 처음 접했지만 루트 액세스 권한을 얻었으며 이제 SSH 연결이 있습니다.


이것은 매우 오래되었지만 여전히 관련 팁이있을 수 있습니다.
Gilles 'SO- 악마 그만해'

NAS 상자에 대한 웹 / 프런트 엔드 인터페이스를 갖춘 분석 / 유사한 플러그인이 있습니까? NAS 상자 세부 사항은 무엇입니까? 디스크 활동을 확인하기 위해 일부 시스템 탭 도구를 사용할 수 있는지 궁금합니다. systemtap은 이후 버전의 Linux 커널에서만 사용할 수 있습니다.
Nikhil Mulley

NAS는 Lacie d2 Network 2입니다. 플러그인 옵션은 없지만 아무것도로드 할 수 없습니다. Green Unicorn 웹 서버를 실행합니다. 커널은 2.6.31.14-svn6790입니다.
Andreas

답변:


6

inotify-tools 는이를 수행하는 간단한 방법입니다. 사이트에는 원하는 것을 수행 할 수있는 몇 가지 예가 있습니다 (실제로 기본적인 예는 inotifywatch 예 참조).


나는 현재 이것을 조사하고 있습니다. 먼저 ARMv5TE CPU의 소스를 컴파일해야합니다. 그것은 충분히 어려울 수도 있습니다 :)
Andreas


2

다른 팁 : Systemtap을 사용하십시오. systemtap 사이트에는 범인을 찾을 수있을 정도로 유용한 프로브 스크립트가 많이 있습니다.

또 다른 경우에는

디스크를 가동시키는 프로세스를 찾으려면 플래그를 설정하여 정보를 수집 할 수 있습니다 /proc/sys/vm/block_dump. 이 플래그가 설정되면 Linux는 발생하는 모든 디스크 읽기 및 쓰기 작업과 파일에 대한 모든 더티 차단을보고합니다. 이를 통해 디스크가 회전해야하는 이유를 디버그하고 배터리 수명을 더 늘릴 수 있습니다. block_dump의 출력은 커널 출력에 기록되며 "dmesg"를 사용하여 검색하거나 디버그 메시지 대상에 대한 syslog kern 기능을 확인할 수 있습니다. 일반적으로이어야합니다 /var/log/debug. block_dump를 사용하고 커널 로깅 수준에 커널 디버깅 메시지도 포함되어 있으면 klogd를 끄고 싶을 수 있습니다. 그렇지 않으면 block_dump의 출력이 기록되어 디스크 활동이 정상적으로 이루어지지 않습니다.


2

디스크에 대한 모든 읽기 / 쓰기를 알리기 위해 커널에 알려야합니다. 그런 다음 해당 정보를 봐야합니다.

그래서:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

sync보류중인 모든 쓰기를 디스크에 플러시하므로 새로운 읽기 또는 쓰기 만 표시됩니다.
dmesg -c커널 메시지를 표시하고 지 웁니다 (그렇지 않으면 dmesg를 실행할 때마다 이전 메시지도 표시됨). grep원하는 디스크의 활동을 위해 dmesg의 출력을 필터링합니다. / dev / sda를 실제 장치로 바꾸십시오.

일반적으로 디스크를 회전시키기 위해 다음과 같은 것을 사용하고 다시 회전 할 때 확인합니다 :

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

while루프 검사 디스크 활성 / 유휴 상태를 10 분마다. 전원이 켜지면 dmesg위 의 라인을 실행하여 whodunnit을 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.