Smartctl / S.M.A.R.T / 디스크 검사 / 디스크 상태 / disk health check

→ 정확한 명칭은 S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology) 기능 

→ 디스크 검사라고도 하며, smart 검사, smartctl 이라고 부릅니다.

 

  1. Why? / 시스템 엔지니어라면 왜 알아야 하는지
  • 물리적인 서버에 마운트된 하드 디스크의 상태를 사전에 감지하여 데이터 손실의 위험을 예방하는 도구. 기본적으로 하드 디스크의 전반적인 상태를 확인 합니다.
  • smartctl 명령어는 하드디스크의 (ROM..??) 기록되는 것으로 보이며 I/O에서 발생하는 error때문에 write가 잠겨 read only 경우일경우, /var/log/messages 상에 찍히지 않는 I/O error를 검출할수 있습니다.

→ Linux 같은 경우에는 syslog에 I/O error 가 뜨기전에 smartctl 베드 섹터 수치가 있는 편이 많습니다.

 

  • 다운이 발생한 서버의 경우 /var/log/messages 로그를 확인하여 하드디스크 장애가 있다고 판단될 경우, 디스크 교체 여부 판단에 큰 도움이 됩니다.
  • 디스크 및 RAID의 상태를 확인하기전에 다양한 정보를 확인가능 하며, 하드디스크를 서버에서 분리하지 않고도 하드디스크에 대한 정보 파악 가능 합니다.
  • 한가지 예를 들어서 아래와 같은 경우
    smartctl 의 수치가 지속적으로 올라감 →
    I/O error 출력 →
    Raid controller error →
    장애 발생 →
    Raid 구성에 따라서 데이터 손상이 복구가 안되는 이슈가 생길 수 있습니다.

하지만, 디스크 검사를 분기별, 주기적으로 디스크 검사를 통하여 데이터의 보존을 하게 되면 데이터 복구에 대한 비용이나, 데이터 손실의 위험을 줄일 수 있습니다.

 

(*) 명**기술 (데이터 복구 업체) 에 한번 문의를 하였는데, 특히 가상화 (VM) 의 데이터 손상은 복구가 제로에 가깝다고 판단 됩니다.

  • IDC 에서 물리적으로 하드 디스크의 램프에 불이 들어 왔을 경우에도 디스크 검사 시 수치가 있는 경우가 열의 아홉은 있다고 보여집니다.
  • 디스크의 발송이 왔을때 디스크 검사를 하여 문제가 없는지 확인을 하고, A/S 수리 기간 전에 베드섹터 (정확하게는 각 ID 값의 수치)가 있을 경우에는 바로 교체를 한다면, 이후에 생길지도 모르는 서버 관리 비용을 줄일 수 있습니다.





  1. Linux-server 사용법 (physical-server)

2-1) 설치 

$ yum install smartmontools

 

2-2) 옵션

-a [파티션 이름] : (ex : smartctl -a /dev/sda)

→ 전체 속성 확인

 

-i [파티션 이름] : (ex : smartctl -i /dev/sda)

→ 정보 확인 (모델명 등)

 

-H [파티션 이름] : (ex : smartctl -H /dev/sda) 

→ 하드디스크 자가진단 결과 조회

 

  1. Windows 사용 방법

 

3-1) smartctl 사용 (설치 방법은 따로 기재 하지 않았습니다.)

 

smartctl 











3-2) crystal Diskinfo

 

crystal Diskinfo

 

디스크 검사 smart 기능으로 결과 값을 출력해 주기 때문에 어떤 tool 을 쓰더라도 결과 값은 동일 합니다. (가동 시간 7573이 똑같은 것을 볼 수 있습니다.)

 

  1. 각 ID 값의 수치 읽는 방법

4-1) 200 가지가 넘는 수치를 전부다 외우진 않고 제가 중요하게 보는 속성 입니다.

default 로 0 입니다.

 

ID# ATTRIBUTE_NAME

  5 Reallocated_Sector_Ct

  9 Power_On_Hours

 10 Spin_Retry_Count

196 Reallocated_Event_Count

197 Current_Pending_Sector

198 Offline_Uncorrectable

199 UDMA_CRC_Error_Count

 

4-2) 기타 사항으로 하드디스크 온도나 하드디스크 on/off 횟수 등 다양한 속성이 있으니 아래 wikipedia 사전을 한번은 보는 것을 권장 드립니다.

https://ko.wikipedia.org/wiki/S.M.A.R.T.




  1. Raid Controller

 

5-1) Raid Controller  에서 정상적으로 사용하려면 raid controller 설치를 하고 검사를 진행해야 디스크의 정확한 개수를 알수가 있어 controller 설치는 해줘야 합니다.

megaraid, 3ware, adaptec 컨트롤러가 주로 사용되며 각 벤더사 별로 설치 방법, 사용 방법이 상이 하므로 설치 방법에 대해서는 생략하도록 하겠습니다. 



  1. RAID controller 에 따른 사용법

 

    LSI 3ware SATA RAID controller : -d 3ware,N /dev/twX

 

    Areca SATA[/SAS] RAID controller : -d areca,N[/E] /dev/sgX

 

    HighPoint RocketRAID SATA RAID controller : -d hpt,L/M/N /dev/sdX

 

    CCISS (HP/Compaq Smart Array controller : -d cciss,N /dev/cciss/cXd0

 

    LSI MegaRAID SAS RAID controller : -d megaraid,N /dev/sdX

    Dell PERC 5/i,6/i controller : -d megaraid,N /dev/sdX

 

    Intel ICHxR RAID : /dev/sdX

 

    Adaptec SAS RAID controller : -d aacraid,H,L,ID /dev/sdx 



  1. 지원 범위
  • 맨 앞부분에 위치할 내용이긴 하나, 뒷 부분에 적겠습니다.
  • smart 상태는 BIOS 에서 지원이 되어야하며, Disk 또한 지원이 되어야 사용 할 수 있습니다. 

 

  • 또한 앞 부분에 적은 것 처럼 디스크 검사라고 표기하긴 하였으나, 위의 내용들은 전부다 디스크 상태를 출력해줄 뿐 tool 에 나오는 검사 방법은 100% 신뢰를 하시면 안됩니다. (crystal diskinfo)

→ 왜냐하면 서버의 중요도, raid 구성도, 비용, 백업의 유무, 디스크 구매 시기등 다양한 변수가 적용 되어야 하기 때문 입니다. 

 

시스템 엔지니어라면 각종 변수까지 고려하여 디스크 상태를 매우 양호, 양호, 보통, 주의, 경고, 폐기 등으로 볼줄 알아야 될것으로 판단 됩니다. Linux, Windows 가릴 것 없이 말입니다.

 



Raid Controller 가 있을 때 Smartctl 사용 하는 방법

Adaptec 6805 raid controller smartctl

 

00 슬롯의 디스크

 

 

01 슬롯의 디스크

 

02 슬롯의 디스크

 

03 슬롯의 디스크

 

위 와 같이, Serial Number 가 각 디스크마다 다른것을 확인 할 수 있으며, 디스크 상태를 확인 할 수 있습니다.

+ Recent posts