smartd가 디스크를 찾을 수 없다는 보고를 방지하는 방법은 무엇입니까?

smartd가 디스크를 찾을 수 없다는 보고를 방지하는 방법은 무엇입니까?

내 하드 드라이브를 똑똑하게 모니터링했습니다. 평소에는 잘 작동하는데, 24시간마다 아래와 같은 오류창이 뜹니다.

This email was generated by the smartd daemon running on:
  host name: sparhawk-XPS-17
  DNS domain: [Unknown]
  NIS domain: (none)
The following warning/error was logged by the smartd daemon:
Device: /dev/sdc [SAT], unable to open device
For details see host's SYSLOG.
You can also use the smartctl utility for further investigation.
Another email message will be sent in 24 hours if the problem persists.

sdc는 연결이 안됐는데, 그래도 시도해 봤습니다 sudo smartctl -a /dev/sdc. 밝혀지다

smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.5.0-26-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
Smartctl open device: /dev/sdc failed: No such device

주석 처리되지 않은 유일한 줄은 다음과 /etc/smartd.conf같습니다.

DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner

smartd가 디스크 삭제에 대해 불평하지 않고 올바르게 인식하도록 하는 방법이 있습니까? 이것이 가능하지 않은 경우 sda 및 sdb만 smartd 모니터링할 수 있는 방법이 있습니까?

답변1

저도 같은 문제가 있어서 좀 조사해 봤습니다. 나는 이것을 찾았다:

/etc/smartd.conf

# smartd will re-read the configuration file if it receives a HUP
# signal

# The file gives a list of devices to monitor using smartd, with one
# device per line. Text after a hash (#) is ignored, and you may use
# spaces and tabs for white space. You may use '\' to continue lines.

# You can usually identify which hard disks are on your system by
# looking in /proc/ide and in /proc/scsi.

# The word DEVICESCAN will cause any remaining lines in this
# configuration file to be ignored: it tells smartd to scan for all
# ATA and SCSI devices.  DEVICESCAN may be followed by any of the
# Directives listed below, which will be applied to all devices that
# are found.  Most users should comment out DEVICESCAN and explicitly
# list the devices that they wish to monitor.

커널에서 드라이버 등록을 취소하여 가정합니다.

root@localhost# echo 1 > /sys/block/sdX/device/delete

그런 다음 /etc/smartd.conf에서 장치 항목을 제거합니다.

그런 다음 "sudo service smartmontools restart"를 실행하면 문제가 해결되고 smartd는 누락된 드라이브 보고를 중지합니다.

답변2

스마트하게 만들 수 있어요명시적으로 나열하여 특정 장치 세트만 모니터링합니다.DEVICESCAN키워드를 사용하는 대신 /etc/smartd.conf에 있습니다 .

따라서 /dev/sda 및 /dev/sdb만 모니터링하려면 smartd.conf에서 제거해야 합니다.

DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner

대신 다음을 추가하세요.

/dev/sda -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sdb -m root -M exec /usr/share/smartmontools/smartd-runner

그런 다음 smartd 데몬을 다시 시작하십시오.

이 방법의 가장 큰 단점은 구성에서 각 디스크를 개별적으로 나열해야 한다는 것입니다. 적어도 두 개의 디스크만 있으면 큰 문제는 아닙니다.

답변3

제 경우에는 고장난 HDD를 교체한 후 csv를 삭제하고 서비스를 다시 시작하기만 하면 되었습니다.

sudo systemctl stop smartmontools
sudo killall smartd
cd /var/lib/smartmontools
sudo rm attrlog.WDC_WD5000LPLX_00ZNTT0-WD_SERIAL_NUMBER.ata.csv
sudo rm smartd.WDC_WD5000LPLX_00ZNTT0-WD_SERIAL_NUMBER.ata.state
sudo rm smartd.WDC_WD5000LPLX_00ZNTT0-WD_SERIAL_NUMBER.ata.state~
sudo systemctl start smartmontools

내 smartd.conf

DEVICESCAN -H -l error -l selftest -f -s (O/../.././14|L/../.././15|C/../.././17) -m [email protected] -M exec /usr/share/smartmontools/smartd-runner

내 /etc/smartmontools/run.d/10s-nail

#!/bin/bash -e

# Send mail if /usr/bin/s-nail exists
if ! [ -x /usr/bin/s-nail ]; then
  echo "Your system does not have /usr/bin/s-nail. Install the s-nail package" 
  exit 1
fi

# $1 - body file
# $2 - "-s"
# $3 - subject
# $4 - admin email

/usr/bin/s-nail -q $1 -s "$3" -S smtp=smtp://192.168.1.11 -S from="SERVER_NAME S.M.A.R.Td <[email protected]>" $4

답변4

핫 스왑 베이에서 드라이브를 제거한 이후 24시간마다 이메일을 통해 동일한 오류가 발생합니다. 내가 해야 할 일은 서비스를 다시 시작하는 것뿐이었고 오류가 중지되었습니다.

sudo systemctl restart smartmontools

관련 정보