[Linux] smart tools를 통한 디스크 점검
서버를 직접 장기적으로 관리하게 된다면, 필연적으로 마주하게 되는 것이 디스크 문제다.
컴퓨터에서 가장 수명이 짧은 축에 속하는 것이 디스크 계열의 장비고, 실제로 몇년 정도만 써도 고장이 나거나 성능이 떨어지는 경우가 많다.
smart tools는 디스크 장비 점검을 위한 모니터링 도구다.
수리를 위한 도구가 아니라는 것에 유의한다. 고장난 디스크는 단순한 소프트웨어로 해결할 수 없다. 그냥 문제가 확실하게 발견되면 사서 갈아끼우는 수 밖에...
참고로 Smart는 Self-Monitoring, Analysis, and Reporting Technology의 축약이다.
설치
대부분의 패키지매니저에서 기본으로 제공한다. 보통 smartmontools라는 이름으로 제공된다.
sudo pacman -Sy smartmontools

설치해서 smartctl이란 도구가 실행이 되면, 잘 깔린 것이다.
디스크 정보 확인
--scan 명령을 사용하면 전체 물리 디스크 목록을 확인할 수 있고
smartctl --scan

-i 플래그를 사용하면 특정 디스크의 장치 정보를 확인할 수 있다.

SMART 상태 확인
디스크가 건강한지만 확인하고 싶다면 -H 플래그만 줘서 찔러보면 된다.
PASSED가 떴다. 이러면 문제는 없는 것이다.
전체 정보를 다 확인하고 싶다면 -a 플래그를 준다.
그럼 물리 장비 정보부터 해서
오류 정보나 이것저것 다 찍어준다.
보통 뭔가 확인해보려 할때는 이걸 많이 쓴다.
테스트 돌려보기
능동적으로 테스트를 찔러봐서 어떤지 확인해볼 수도 있다.
-t 플래그를 주면 된다.
short 테스트는 수십초나 몇분 정도의 짧은 테스트를 돌려주는 옵션이다.
그 외에는 몇시간까지 돌릴 수도 있는 long도 있고, 이것저것 있다.
아무튼 이 테스트는 비동기 명령이라서, 결과를 확인하려면 또 -a 플래그를 주고 테스트 내역을 뽑아봐야 한다.
이렇게 오류 없이 성공했다고 하면 건강한 상태다.
smartd 데몬 구성
장비가 한두개라면 그냥 사람이 가끔 직접 확인해보는 정도로도 충분할 수도 있겠지만, 하루종일 이거만 보고 있을 수는 없는 노릇이다.
그래서 디스크 점검을 자동화해주는 도구도 함께 제공한다. 그게 smartd다.
smartmontools를 깔면 기본으로 구성은 되니까, 시작만 시켜주면 된다.
sudo systemctl enable smartd
sudo systemctl start smartd
sudo systemctl status smartd

근데 저 기본값으로는 뭘 얻기가 힘들고, 설정파일도 좀 건드려줘야 한다.
sudo vi /etc/smartd.conf
뭐가 많다.
하지만 핵심은 이거다.
이건 모든 장치를 스캔한다는 뜻이다.
만약 "/dev/sda" 디스크만 스캔해도 된다면 "/dev/sda"를 하나의 행으로 입력하면 된다.
그 외에도 문제가 생겼을 때 이메일로 전송하는 기능도 제공한다. -m 플래그다.
DEVICESCAN -m address@domain.com
이건 당연히 그냥 되진 않고, 이메일 에이전트를 깔아야 한다.
혹은 문제가 생겼을때 특정 파일을 실행하도록 할 수도 있다. exec 절을 사용하면 된다.
DEVICESCAN exec /usr/local/bin/do_something
이 외에도 옵션은 많긴 한데, 이 정도만 다루고 넘어가겠다.
자세한 기능 목록은 별도 문서를 참조하길 바란다.
https://wiki.archlinux.org/title/S.M.A.R.T.
공식문서보다 얘들이 정리 잘해놨다.
참조
https://wiki.archlinux.org/title/S.M.A.R.T.
https://www.smartmontools.org/wiki/TocDoc#Tutorials