카테고리 Archives: hardware

smartctl을 이용한 디스크이상 사전 탐지

smartctl 명령어는 하드디스크 롬에 기록되는 형태이다. 때문에 I/O 에러 발생때문에 write가 잠겨
/var/log/messages 상에 찍히지 않는 I/O에러를 검출하는 목적으로 사용할 수 있다.

CentOS 5/6 은 이미 탑재되어 있는 명령어 이지만 Centos 7의 경우 아래와 같이 명령어 추가를 한다.

 

명령어는 작동시간, 부팅횟수, 헤더, 온도, 배드카운터, CRC 에러등등 하드디스크의 모든 종합 정보를 볼수 있다.
클라우드 – 가상디스크는 지원하지 않는다.
일반디스크인데 정보 표기다 되지 않을경우 아래 명령어서 on  시켜줘야 할 수 있다.

 

1. 아래 명령어는 SMART 속성 정보만 표기 한다.

주요 해서 봐야 하는 부분은 아래와 같다.
HEAD spindle error   //   Spin_Retry_Count  (매우 높음) = 헤드가 재 작동을 시도한 횟수.
BAD sector  //   Offline_Uncorrectable  (높음) = 읽기/쓰기에 문제가 발생한 섹터 = 배드 섹터 발생
아래는 약간은 중요도가 떨어지지만 주요해서 봐야 한다.
UDMA_CRC_Error_Count   (낮음) = HDD인터페이스 전송 CRC 오류 (sata 케이블 오류의심)

위 에러중 HEAD 관련 카운트가 1개라도 나온경우 스핀들모터 혹은 리드헤드 쪽에 문제가 발생한것이다.
이는 즉시 데이터 백업 및 디스크 교체를 진행한다.

 

2. 누적된 에러 로그를 호출한다. ‘ㅅ’a

정상일경우 아무런 메세지도 표시되지 않는다. 메세지가 출력되는 경우 아래 상세 테스트를 진행한다.

 

 

3. 상세한 테스트를 한다. ( short 1~2분 소요 / long = 약 두시간 가량 소요 )

백그라운드 테스트가 진행되며 테스트간 off-line 모드가 되고 테스팅 시간은 약 108분 걸린다고 되어 있다.
smartctl -X 명령어로 long 테스트를 중지할 수 있다.

Status 값에 failure 가 떨어질경우 백업 및 디스크 교체를 한다.

Linux IO 튜닝

파일을 읽을때 리눅스는 access 타임을 write 를 한다.

때문에 파일을 읽을때 단순히 read 가 하는게 아니라 일부 write를 하고 read 를 한다.

아래와 같이 stat 명령어로 파일의 자세한 정보를 보면 확인할 수 있다.

 

이 access write 기능을 끔으로서 read 성능을 대폭으로 끌어올릴 수 있다. (약 2.5배 에서 3배)

바로 nodiratime 과 noatime 옵션 이다.

 

/etc/fstab 에서 아래와 같이 수정을 한다.

/etc/fstab 에 입력된 정보로 재부팅 하지 않고 적용하는 명령어는 다음과 같다.

 

dicard 옵션(저널링 off)는 이 게시물에서 설명.
http://www.enteroa.com/2014/09/24/Linux-에서-TRIM-활성화/

 

임의 마운트 시에는 아래와 같은 명령어로 마운트 한다.