smartctl을 이용한 하드디스크 진단

컴퓨터에서 디스크의 의미는 매우 중요합니다. 사람의 데이터를 영구적으로 보관해야 할 의무를 가지 때문이지요. 이러한 디스크에 문제가 발생한다면 데이터를 영구적으로 잃을 수도 있고 오늘과 같이 IT 를 기반으로 사회가 움직이는 마당에 그러한 일이 발생한다면 큰 금전적인 손실을 입을 수도 있습니다.

이렇게 중요한 디스크의 문제나 오류를 차단하기 위해서는 주기적으로 점검을 해야할 필요가 있는데, 리눅스 시스템에서는 이러한 유용한 도구를 제공 합니다.

smartctl

smartctl 도구는 S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) 기능이 탑재된 하드디스크를 점검하는 도구 입니다. 사실상 S.M.A.R.T 의 기능을 이용하는 도구이다보니 이 기능이 없는 하드디스크는 이 도구를 이용할 수가 없습니다. 하지만 걱정할 필요는 없습니다. S.M.A.R.T. 기능은 오래전부터 있었던 것이라 왠만한 하드디스크에는 모두 지원되고 있습니다.

먼전, 간단한 디스크 정보도 볼겸 하드디스크에 S.M.A.R.T. 가 기능이 있고 활성화가 되어 있는지를 다음과 같이 해봅니다.

‘-i’ 옵션을 주고 리눅스에서 하드디스크 장치를 인자로 주면 위와같은 결과를 보여줍니다. 주목해야 할 것은 맨 아래에 있는 ‘SMART support is: Enabled’ 입니다. 또, 자세히 보면 ‘/dev/sda’ 의 하드디스크 정보도 함께 파악할 수 있습니다.

참고로, 위의 결과는 하드디스크마다 다 다릅니다. 다른 하드디스크를 봐보겠습니다.

자세히 보면 이전 결과와 달리 ‘SATA Version is:’ 라고해서 SATA 버전도 나오고 ‘Rotation Rate’ 이라고해서 하드디스크의 회전수인 RPM 도 나옵니다. 추가적으로 WARING 을 통해서 이 하드디스크의 최신 펌웨어 정보가 있으니 업그레이드해보라고까지 나옵니다.

다음으로 좀 더 많은 자세하고 많은 정보를 봐보겠습니다.

‘-a’ 옵션을 주면 위와같이 상세한 정보가 나옵니다. 눈여겨 보실 부분은 중간에 나온 ‘SMART Attributes with Thresholds’ 부분 입니다. 각 항목별로 오른쪽에 수치가 나옵니다. 각각의 항목별은 의미가 다 있는데, 여기서 집중해서 봐야할 항목은 다음과 같습니다.

  • Raw_Read_Error_Rate : 디스크로부터 데이터를 읽을때에 발생한 오류 비율. 외부에 물리적으로 충격이 가해지면 이 수치가 치솟는다고 합니다.
  • Reallocated_Sector_Ct : 섹터에 문제가 발생할 경우에 대체영역으로 섹터를 바꾼 횟수
  • Seek_Error_Rate : 하드디스크에서 데이터를 찾는 동안에 발생한 탐색 오류 비율.
  • Offline_Uncorrectable : Offline 은 전원이 없는 상태를 말하며 하드디스크가 꺼졌을때에 잘못된 섹터 갯수로 매우 심각한 상태를 말한다.
  • UDMA_CRC_Error_Count : 데이터 전송시에 발생한 CRC 체크섬 오류 횟수.

위 부분에 수치들이 높게 나온다면 문제가 있다고 봐야 하며 될수 있으면 하드디스크 구매한 곳에가서, A/S 기간이 남았다면, 교체를 요청해야 합니다.

특히나 서버에서 사용되어지는 하드디스크는 다른 하드디스크들보다 중요성은 말할 필요도 없겠지요. smartctl 을 통해서 미리미리 장애를 대응함으로써 중요한 데이터를 보호할 수 있습니다.

 

2 comments

  1. Selan

    Raw_Read_Error_Rate 는 씨게이트 디스크와 WD 구형 디스크에서는 다르게 해석됩니다.
    48비트 중 상위 16비트가 실재 Raw_Read_Error_Rate 를 나타내며 하위 32비트는 Raw read operation 횟수를 나타냅니다.
    하드 디스크가 씨게이트인 경우에는 값이 4,294,967,295 까지는 정상입니다. (WD 구형 디스크 일부 모델도 적용)

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">