하드 디스크를 잠자기 상태로 만들고 필요할 때만 깨우십시오.


10

다른 하드 디스크를 컴퓨터에 연결하고 싶습니다. 99 %의 시간을 자고 싶습니다. 몇 가지 용도로만 사용하지만 항상 마운트해야합니다.

이것을 달성하기 위해 알고 싶습니다 :

  1. 장치에 액세스하는 프로세스를 어떻게 기록합니까? 하드 디스크가 깨어 난 경우 어떤 일이 일어나고 있는지 알 수 있으려면 로깅이 필요하므로 조치를 취할 수 있습니다.
  2. 장치가 더 오래 잠들기 위해 필요한 특별한 커널 설정이 있습니까?
  3. 하드 디스크의 절전 간격을 어떻게 설정합니까?

답변:


13

슬립 간격을 "APM"(자동 전원 관리) 및 spindown_time이라고합니다. 이것은 다음과 hdparm같이 제어됩니다 .

hdparm -B 50 -S 36 /dev/disk/by-label/BACKUP-HDD

~ 3 분 동안 활동이 없으면 HDD가 다운됩니다.


4

Linux를 사용하는 동안 fatrace모든 파일 액세스를 기록하고 어떤 프로세스가 책임이 있는지 알려주 는 새로운 유틸리티를 사용할 수 있습니다 .

https://launchpad.net/fatrace

자세한 내용은 여기 :

http://www.piware.de/2012/02/fatrace-report-system-wide-file-access-events/

그것은 사용하게 리눅스 fanotify의 API ( 자세한 내용은 ) 리눅스 커널 2.6.37 이후 사용할 수 있습니다.

fatrace 2014 년 7 월 현재 모든 배포판에 포함되어 있지는 않습니다 (최근 데비안 테스트에 들어갔으므로 'jessie'로 발송해야 함). 소스에서 쉽게 설치할 수 있습니다.


1
"대부분의"배포판이 무슨 뜻인지 모르겠습니다. 평소와 같이 데비안은 무언가를 얻는 마지막 배포판입니다. 나는 꽤 오랫동안 페도라에서 사용할 수 있었다 ...
Michael Hampton

3

http://en.wikipedia.org/wiki/Fuser_%28Unix%29-fuser 는 지정된 파일, 파일 시스템 또는 소켓을 사용중인 프로세스를 표시하는 데 사용되는 UNIX 명령입니다.

http://sourceforge.net/projects/hdparm/-Linux에서 ATA / SATA 드라이브 매개 변수 가져 오기 / 설정 (-S 옵션 찾기)

http://sg.danny.cz/sg/sg3_utils.html-sg3_utils 패키지에는 장치에 SCSI 명령을 보내는 유틸리티가 포함되어 있습니다. SCSI와 전통적으로 연결된 전송 장치뿐만 아니라 (sg_start 찾기)


유익한 답변 감사합니다! 퓨저는 명령을 실행할 때 파일 시스템 파일 소켓을 사용하는 프로세스를 알려줍니다. 프로세스가 장치 루트 디렉토리의 내용을 나열하는 것과 같이 빠른 작업을 수행하는 경우 매우 유용하지만 퓨저가 루프에서 실행되고 있어도 놓칠 수 있습니다. 내가 멈추라 고 말할 때까지 모든 활동을 기다렸다가 기록하는 것이 있다면이 상황에서 더 도움이 될 것입니다. 당신은 아무것도 알고 있습니까?
삭제

나는 hdparam이 잠자기 전에 대기 시간을 설정하는 데 사용할 것이라고 생각합니까? 그리고 sg3_utils는 강력한 도구 일 뿐이지 만이 경우에는 사용하지 않습니까? (hdparam을 사용하여 HDD를 설정 한 후 HDD가 휴면 상태를 유지해야하는 시점을 수동으로 지정할 필요가없는 것 같습니까?)
삭제 :

3

btrace또는 blktrace(의 래퍼 btrace) 추적 커널 블록 I / O를 통해 도움을 줄 수 있습니다.


2

lsof +D /path/to/mount 표시된 경로에 열린 파일이있는 모든 프로세스를 표시해야합니다.


0

비슷한 문제가 있습니다. 나는 /dev/sdbOS (Ubuntu Xenial을 기반으로 한 Linux Mint 18.1) 가있는 SSD /dev/sda와 데이터가있는 HDD 를 가지고 있으며 때때로 데이터를 사용합니다. 두 디스크 모두 암호화됩니다. HDD의 파티션이 마운트되지 않았습니다. 어쨌든 몇 분 안에 HDD가 깨어나고 잠이 든 다음 다시 깨어납니다. 음식물.

다음은 도움이되는 답변 이있는 중복 질문으로 auditd, 잘못된 동작 프로세스를 찾는 것을 제안 합니다.

apt-get install auditd
auditctl -w /dev/sda -p rwa

그런 다음로 HDD를 강제로 잠급니다 hdparm -Y /dev/sda. 그런 다음 HDD가 다시 회전하는 소리가 들릴 때까지 기다리십시오. 그런 다음를 실행하십시오 ausearch -f /dev/sda. 내 경우에는 다음과 같은 항목이 표시됩니다.

time->Sat Feb 25 12:38:17 2017
type=PROCTITLE msg=audit(1488022697.651:1744): proctitle=2F7573722F6C69622F756469736B73322F756469736B7364002D2D6E6F2D6465627567
type=PATH msg=audit(1488022697.651:1744): item=0 name="/dev/sda" inode=376 dev=00:06 mode=060660 ouid=0 ogid=6 rdev=08:00 nametype=NORMAL
type=CWD msg=audit(1488022697.651:1744):  cwd="/"
type=SYSCALL msg=audit(1488022697.651:1744): arch=c000003e syscall=2 success=yes exit=12 a0=f3fb90 a1=800 a2=7f4745221f64 a3=30 items=1 ppid=1 pid=18520 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="pool" exe="/usr/lib/udisks2/udisksd" key=(null)

관련 부분은 exe = "/ usr / lib / udisks2 / udisksd" 입니다. 나는 또한 가지고 있지만 smartmontoolssmartd또한 범인이었다. 로 서비스를 제거 smartmontools하고 중지 udisk2했습니다 service udisks2 stop. 그 후 HDD가 예상대로 휴면 상태입니다.

참고 udisks2때 자동으로 내가, 예를 들어, 개방이 시작됩니다 디스크 응용 프로그램, 내가 다시 중지해야하므로. 또 다른 단점은 SMART 매개 변수가 두 디스크 모두에 대해 모니터링되지 않으며 이는 좋지 않지만 해결 방법으로 적합하다는 것입니다.

또한 명확하지 않다 한 가지,이 점이다 버그 보고서는 말했다 udisks2이제 커널에 의해 수행되는 폴링 디스크를하지 않습니다. 그러나 증거는 그 반대를 나타내는 것으로 보인다.

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