하드 디스크가 5초마다 쩔그럭 소리를 낸다

마잇의 이미지

저는 우분투 것시에서 Dell Inpiron 1501 노트북을 사용중입니다. 하드디스크의 정보는 다음과 같습니다.

$ sudo hdparm -I /dev/sda
 
/dev/sda:
 
ATA device, with non-removable media
        Model Number:       ST9120822AS                             
        Serial Number:      5LZ45J0L
        Firmware Revision:  3.CDD
 
... 생략

제가 겪고 있던 문제는 약 5초 간격 정도로 하드 디스크에서 쩔그럭 소리가 나는 것이었습니다. 이 소리는 디스크가 꺼질 때 나는 소리와 비슷했습니다. 꽤 오랫동안 원인을 짐작하지 못한채 이 신경쓰이는 소리를 그냥 감수하며 살았습니다. 디스크 자체의 문제가 아닌가 생각도 해보았지만 윈도우 비스타로 부팅해서 사용할때는 전혀 그런 증상을 찾을 수 없었기 때문에 더욱 애가 타더군요.

오늘 드디어 우분투 포럼과 런치패드를 뒤지던 중 정확히 관련된 내용을 찾아서 그 원인을 임시적으로나마 해결했습니다.

관련된 여러개의 글타래와 버그 보고가 있지만 가장 핵심적인 두가지만 링크 합니다.

default value in power.sh potentially kills laptop disks
https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695

Hard Drive Clicking
http://ubuntuforums.org/showthread.php?t=331418

요약해서 설명드리면 충격에 대비하기 위해서나 절전을 위해서 하드 디스크의 헤드 - 회전하는 디스크위에서 움직이면서 정보를 읽는 머리 부분을 안정된 위치로 옮기는 기능이 있습니다. 예전 도스 시절에 park 명령을 기억하시는 분이라면 쉽게 이해하실 듯 합니다. 링크한 글타래를 보시면 이것을 park 혹은 unloading이라고 표현하더군요. 제가 컴퓨터를 끌 때와 비슷한 소리라고 느꼈던 이유가 꺼질때에도 물론 이런 동작을 하기 때문이었나 봅니다.

문제는 이런 동작을 하도록 지정된 주기가 너무 짧기 때문에 일어 납니다. 즉 대략 5초 마다 이런 동작이 일어나고 있던 것이었죠. 정확히 어떤 패키지와 어떤 동작이 이런 설정을 적용하게 만드는지는 저도 명확하게 파악하지 못했습니다만, 다음과 같은 해결책으로 일단 해결이 가능 합니다.

/etc/hdparm.conf 파일에 다음 내용을 추가 합니다.

/dev/디스크이름 {
	apm = 254
}

이 설정이 부팅시에 읽혀 지도록 hdparm 서비스를 등록 합니다. 이것은 '시스템 -> 관리 -> 서비스' 메뉴에서도 가능합니다.

$ sudo update-rc.d hdparm defaults

저는 이렇게 하고 재부팅 한 후 일단 소리는 사라졌습니다. 링크된 글타래들을 보시면 하이버네이션이나 절전 모드 후에 다시 소리가 난다거나 하는 문제를 호소하기도 하는데 전 아직 이런 상황을 시험해보진 않았습니다.

위의 설정은

$ sudo hdparm -B254 /dev/디스크이름

명령과 같은 효과 입니다. 저 숫자를 1로 바꾸면 다시 그 소리가 나더군요.

참조
- https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695/comments/25

위에서 말씀드린 load/unload 동작의 경우 그 횟수에 따라 대략 정해진 수명이 있고 이것이 하드 디스크 자체에 기록이 된다고 합니다. 이런 부분을 설명하고 있는 링크도 첨부합니다.

http://paul.luon.net/journal/hacking/BrokenHDDs.html

M.W.Park의 이미지

좋은 정보 감사합니다.
P7010에서 Xubuntu 깔아서 쓸때 그 비슷한 증상이 있었는데...
하드에 무리를 주는 것이었군요.

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

jachin의 이미지

이런 동작은 사실 하드디스크에게 무의미할지도 모르겠습니다.

최신의 하드디스크들은 말 그대로 '비행'하고 있기 때문에,

안전한 위치로 헤드를 옮길 필요는 없습니다.

이 기술은 40 GB 용량 플레터 양산 이전 세대의 하드디스크들이 동작할 때,

헤드가 플레터 표면과 마찰했기 때문에 생겼던 현상입니다.

지금은 플레터와 헤드 간격이 무척 좁고 항상 같은 고도를 유지하고 있기 때문에,

플레터를 보호하기 위해 일부러 헤드를 옮길 필요는 없습니다.

(다시 말해서... 어~~~엄청난 긴 주기로 바꾸셔도 상관 없으실 겁니다.)
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

병맛의 이미지

Advanced Power Management 기능이 요즘 랩톱에서도 먹히는 것이 좀 신기하네요.
어쨌든 문제를 해결하셨다니 요긴한 방법이겠네요. 참고하겠습니다.

---------------------------------------------------------------------------------------------------------------------------------------------

마잇의 이미지

제가 버그 관리 하는 곳들을 많이 다녀본것은 아니지만 이 버그 보고 글타래는 상당히 후끈 달아오르고 있는 것 같습니다.

130여개 안팍의 댓글이 달려있고 4개의 중복된 버그를 포함하면서 6~70명 이상의 사용자들이 이 버그에 등록되어 있습니다.

그동안 올라오는 글들을 죽 읽어본 결과 다음과 같은 사실을 간추릴 수 있을 것 같습니다.

- 하드 디스크는, 특히 노트북용, 충격 방지나 절전을 위해서 디스크 헤드를 안전한 위치로 옮기는 기능이 있다. 보통 일정 시간 사용하지 않으면 자동으로 이런 동작을 하는 설정이 디스크 자체에 기록되어 있다. 이 때 하드마다 다르겠지만 특유의 딸그락 소리가 난다.
- 우분투를 사용하는 많은 노트북 사용자들이 이런 이상 소음 증상을 호소하고 있다.
- hdparm -B254(255) /dev/somedisk 명령으로 이런 증상을 해결할 수 있었다.
- 우분투에 설치 되어 있는 acpi 관련 스크립트 중에서 -B1 설정을 적용하는 내용이 발견되었다. 그래서 문제의 원인은 우분투의 잘못된 하드 디스크 설정일 것이다
- 아니다, 그 설정 내용은 일반적인 상황에서는 적용되지 않는 것이다. 다른 곳에 원인이 있다.
- 우분투 개발자들은 하드 디스크 초기값을 건드리지 않았다. 아니다, 건드리고 있다.
- 확인해보니 맞는 얘기다 그 설정을 실제 적용되지 않는다. 그럼 왜 윈도우즈나 맥 오에스를 쓸때는 이런 증상이 없는 것인가.
- 윈도우즈나 맥오에스는 하드 디스크에 기록되어 있는 초기값과 관계없이 적절한 값으로 다시 설정하는 것 같다.
- 그럼 우분투도 그리 하자.

- 근데 왜 이 버그는 아직 중요도가 겨우 'wishlist'에 머물러 있느냐 // 이 불만이 상당히 많았습니다 : )

주요 쟁점은 우분투에서 하드 디스크의 설정을 실제 건드리느냐 아니냐와 어쨌든 초기값을 무시하고 적절한 값으로 셋팅을 해줘야 되느냐 아니냐인 것 같습니다.

디스크 헤드가 안전한 곳으로 옮겨가는 행동을 Load/Unload라고 표시하는데 S.M.A.R.T 기능이 있는 하드들은 이 기록이 내부 펌웨어에 누적되서 기록되는 모양입니다.

중요한 것은 제조사에서 권장하는 최대 Load/Unload Cycle이 정해져 있고 이 횟수를 넘으면 하드 디스크의 정상적인 동작을 보장할 수 없다는 것입니다. 즉 대략 견딜수 있는 내구력을 지정해 놨다는 것이죠.

디스크의 초기값이 그러하든 아니면 우분투에서 잘못된 설정을 한 것이든 쩔그럭 소리와 더불어 일어나는 Load/Unload 횟수가 비정상으로 많기 때문에 하드 디스크의 수명을 매우 빠르게 갉아 먹고 있다는게 가장 중요한 문제로 떠오르고 있습니다.

저 글타래 중 한분이 smartmontools 패키지를 이용해서 보기 좋게 디스크의 상태를 출력해주는 펄 스크립트를 올려주셔서 저도 실행해 봤는데요, 출력은 다음과 같습니다.

~$ disk-stats -y
PM-related Hard disk health:
 
                      Load/Unload cycles : 52711 of 300000 (17.57% of life)
    Power-Off retract (Emergency unload? : 158 of 20000 (0.79% of life)
                         Power-On cycles : 264
          Start/Stop (PM Spindown) count : 244 of 300000 (0.08% of life)
                          Power-On hours : 617 of 20000 (3.08% of life)
            Temperatures during lifetime : 0 to 20, manufacturer limits: 5 to 55 (°C)
     Average Load/Unload cycles per hour : 85.431

저도 꽤 오랫동안 쩔그럭 소리에 시달려서 살아서 그런지 저 출력대로라면 구입한지 채 5달이 되지 않은 제 노트북 하드가 17%의 Load/Unload Cycle을 소모했습니다. 최대치가 300,000회로 지정되어 있네요.

물론 저 수치가 넘어가도 바로 동작을 멈추는 것은 아니지만 그때부터는 대략 생명이 위험하다고 봐야겠죠.

어떻게 결말이 날지 궁금해지는 군요.

저도 이런쪽은 기술적으로 잘 몰라서 올바르게 해석한 것인지 불안하네요. 관련해서 더 아시는 분 있으면 좋은 정보 부탁드립니다.

disk-stats 펄 스크립트 첨부 해보겠습니다.
--
마잇

댓글 첨부 파일: 
첨부파일 크기
Plain text icon disk-stats.pl_.txt3.32 KB


--
마잇

orangecrs의 이미지

300000 라는 것은 히다치 travelstar 7k60의 경우 최소의 load/unload의 수치를 말하는 것이구요. 해당 상황인 경우 minimum이 300000이니깐 그렇게 위험하다고는 볼수 없을 것 같구요(하드디스크가 뽑기수준이듯이...). 나머지 수치의 limit도 마찮가지구요. 보다 정확하게 알아보려면 자신의 하드 디스크의 정확한 스팩을 알아야 할듯하네요. 위의 펄스크립트의 경우 그 수치만 알고 수정해 주면 될듯 하구요.

저같은 경우 올1월에 구입한 맥북에서 위 수치로 측정해봤는데

PM-related Hard disk health:
 
                      Load/Unload cycles : 204184 of 300000 (68.06% of life)
    Power-Off retract (Emergency unload? : 217 of 20000 (1.08% of life)
                         Power-On cycles : 1308
          Start/Stop (PM Spindown) count : 1481 of 300000 (0.49% of life)
                          Power-On hours : 2530 of 20000 (12.65% of life)
            Temperatures during lifetime : 15 to 46, manufacturer limits: 5 to 55 (°C)
     Average Load/Unload cycles per hour : 80.705

이렇게 나오네요.
맥북의 하드는 마쯔시다인데 알아보고 싶군요.

---------------------------------------------------
야!...

병맛의 이미지

This script reports various values regarding
the health of your hard drive.

Use it at your own risk.

to run it, edit the settings in the file and start it with "-y":

./disk-stats.pl_.txt -y
Macbook:/home/trand]# ./disk-stats.pl_.txt -y
PM-related Hard disk health:

Load/Unload cycles : 524581 of 300000 (174.86% of life)
Power-Off retract (Emergency unload? : 767 of 20000 (3.84% of life)
Power-On cycles : 1959
Start/Stop (PM Spindown) count : 2657 of 300000 (0.89% of life)
Power-On hours : 6656 of 20000 (33.28% of life)
Temperatures during lifetime : 0 to 16, manufacturer limits: 5 to 55 (°C)
Average Load/Unload cycles per hour : 78.813

1년 3개월쯤 넘어가는데 174%를 넘겼네용.... -ㅅ- 그런데 제 경우엔 특별히 하드에서 나는 소리는 없습니다.

---------------------------------------------------------------------------------------------------------------------------------------------

rlawnsgh3의 이미지

마잇님은 언제나 봐도 친절하신 분입니다...
언제 한번 뵙고 인사나 해보고 싶은 마음까지 드네요...^_^

마잇의 이미지

이 문제가 digg.com과 slashdot.org에 기사로 올랐군요. digg.com 기사야 아무나 올릴 수 있긴한데 digg 점수가 천점이 넘었습니다. 적은편은 아니죠.

기본적으로 활성화 되지 않는 laptop-mode를 사용자가 일부러 켜지 않는 한 우분투는 하드 디스크 절전 설정에 손대지 않는다는 것은 확실한 것 같습니다.

윈도우즈나 맥에서 일어나지 않는 증상이 나타나는 것은 그런 오에스들은 절전 설정에 따로 손을 댄다던지 아니면 디스크에 접근하는 빈도수라던가 하는게 다르기 때문인데 ...

'어쨌든 씨바 고쳐줘!'가 사용자들의 목소리 같습니다.. -_- 저도 그래요 흙흙...
--
마잇


--
마잇

익명 사용자의 이미지

Beginning Ubuntu 라는 책에 보니 설명이 나와있네요.
스핀 타임을 240 이상으로 하면 타임유닛 1당 30분이랍니다.
254면 14 *30분 = 420분= 7시간 되겠네요.

마잇의 이미지

회전 모터를 꺼버리는, -S 옵션으로 지정하는 스핀 다운 시간 설정과 저 문제에서 언급되고 있는 헤드 load/unload 시간은 별도의 설정으로 동작하는 것 같습니다.

--
마잇


--
마잇

kalevala의 이미지

-B     Set Advanced Power Management feature, if the drive supports it. A low value means aggressive power management and 
       a high value means  better performance. A value of 255 will disable apm on the drive.

사실상 지금에 이르러서는 불 필요한 작업이라면 disable 시키는게 좋을 것 같군요. 좋은 정보 감사드립니다. :)

마잇의 이미지

--
마잇


--
마잇

esrevinu의 이미지

전 Power-Off retract 가 엄청나게 크네요. Thinkpad X61S 인데...

$ ./disk-stats.pl -y
PM-related Hard disk health:
 
                      Load/Unload cycles : 29302 of 300000 (9.77% of life)
    Power-Off retract (Emergency unload? : 983044 of 20000 (4915.22% of life)
                         Power-On cycles : 140
          Start/Stop (PM Spindown) count : 256 of 300000 (0.09% of life)
                          Power-On hours : 446 of 20000 (2.23% of life)
            Temperatures during lifetime : 18 to 48, manufacturer limits: 5 to 55 (°C)
     Average Load/Unload cycles per hour : 65.700

익명 사용자의 이미지

우분투에서 참고하여 잘 고쳤습니다.

비스타에서도 쩔그거려서 고민했는데
전원옵션에서 하드디스크 꺼기를 설정하면 동일현상이 일어나더군요.

덕분에 쾌적해졌습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.