Smartctl jest bardzo użytecznym i prostym w użytkowaniu narzędziem służącym do kontroli stanu dysków twardych. Kondycję dysków określa na podstawie danych otrzymanych ze S.M.A.R.T. Jedyną wadą jest konieczność używania polecenia manualnie bądź we własnych (trzeba je stworzyć) skryptach monitorujących i powiadamiających administratora na temat stanu HDD.
Smartd jest idealnym rozwiązaniem tego problemu. Program automatycznie monitoruje stan dysków twardych (w zdefiniowanym przez administratora interwale czasu) oraz wysyła powiadomienia mailowe gdy z monitorowanym dyskiem zaczynają występować problemy.
W Debianie i jego pochodnych smartd wchodzi w skład pakietu smartmontools. Aby go zainstalować należy wydać polecenie:
aptitude install smartmontools
W celu aktywowania smartd należy zmodyfikować plik /etc/default/smartmontools
W pliku należy odkomentować wpis:
start_smartd=yes
oraz
smartd_opts="--interval=1800"
Wartość 1800 sekund, nakazuje smartd sprawdzanie i ocenę kondycji dysków twardych co 30 min.
Końcowy plik powinien wyglądać mniej więcej tak:
# List of devices you want to explicitly enable S.M.A.R.T. for # Not needed (and not recommended) if the device is monitored by smartd #enable_smart="/dev/hda /dev/hdb" # uncomment to start smartd on system startup start_smartd=yes # uncomment to pass additional options to smartd on startup smartd_opts="--interval=1800"
Kolejnym etapem jest modyfikacja pliku /etc/smartd.conf
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
Domyślne ustawienie powoduje, że demon smartd wyszukuje wszystkie zainstalowane w systemie dyski i monitoruje ich stan. Dodatkowo wysyła powiadomienie mailowe do użytkownika root. Ja jednak zalecam zakomentowanie tej opcji. Najlepszym rozwiązaniem jest danie wpisów nakazujących monitorowanie stanu wskazanych przez nas dysków twardych.
Np.
/dev/sg2 -m [email protected] -M exec /usr/share/smartmontools/smartd-runner /dev/sg3 -m [email protected] -M exec /usr/share/smartmontools/smartd-runner /dev/sg4 -m [email protected] -M exec /usr/share/smartmontools/smartd-runner /dev/sg5 -m [email protected] -M exec /usr/share/smartmontools/smartd-runner
Po dokonaniu zmian należy zrestartować usługę:
/etc/init.d/smartmontools restart [ ok ] Restarting smartmontools (via systemctl): smartmontools.service.
Poniżej przedstawiony został wynik uruchomienia usługi w syslogu. Smartd rozpoczyna monitoring wskazanych dysków. Dodatkowo wykryty został problem z jednym HDD oraz wysłany alert informujący o tym fakcie administratora.
cat /var/log/syslog Apr 19 09:19:37 xen2a smartd[3073]: smartd 6.4 2014-10-07 r4002 [x86_64-linux-3.16.0-4-amd64] (local build) Apr 19 09:19:37 xen2a smartd[3073]: Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org Apr 19 09:19:37 xen2a smartd[3073]: Opened configuration file /etc/smartd.conf Apr 19 09:19:37 xen2a smartd[3073]: Drive: /dev/sg2, implied '-a' Directive on line 23 of file /etc/smartd.conf Apr 19 09:19:37 xen2a smartd[3073]: Drive: /dev/sg3, implied '-a' Directive on line 24 of file /etc/smartd.conf Apr 19 09:19:37 xen2a smartd[3073]: Drive: /dev/sg4, implied '-a' Directive on line 25 of file /etc/smartd.conf Apr 19 09:19:37 xen2a smartd[3073]: Drive: /dev/sg5, implied '-a' Directive on line 26 of file /etc/smartd.conf Apr 19 09:19:37 xen2a smartd[3073]: Configuration file /etc/smartd.conf parsed. Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg2, type changed from 'scsi' to 'sat' Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg2 [SAT], opened Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg2 [SAT], WDC WD1000FYPS-01ZKB0, S/N:WD-WCASJ2120586, WWN:5-0014ee-2acd6597a, FW:02.01B01, 1.00 TB Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg2 [SAT], found in smartd database: Western Digital RE2-GP Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg2 [SAT], not capable of SMART Health Status check Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg2 [SAT], is SMART capable. Adding to "monitor" list. Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg3, type changed from 'scsi' to 'sat' Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg3 [SAT], opened Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg3 [SAT], WDC WD1000FYPS-01ZKB0, S/N:WD-WCASJ2126000, WWN:5-0014ee-2022b6bfe, FW:02.01B01, 1.00 TB Apr 19 09:19:37 xen2a smartd[3073]: Device: /dev/sg3 [SAT], found in smartd database: Western Digital RE2-GP Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg3 [SAT], not capable of SMART Health Status check Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg3 [SAT], is SMART capable. Adding to "monitor" list. Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg4, type changed from 'scsi' to 'sat' Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg4 [SAT], opened Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg4 [SAT], WDC WD1000FYPS-01ZKB0, S/N:WD-WCASJ2120624, WWN:5-0014ee-2acd951e2, FW:02.01B01, 1.00 TB Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg4 [SAT], found in smartd database: Western Digital RE2-GP Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg4 [SAT], not capable of SMART Health Status check Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg4 [SAT], is SMART capable. Adding to "monitor" list. Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg5, type changed from 'scsi' to 'sat' Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg5 [SAT], opened Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg5 [SAT], WDC WD1000FYPS-01ZKB0, S/N:WD-WCASJ2120207, WWN:5-0014ee-2578283ab, FW:02.01B01, 1.00 TB Apr 19 09:19:38 xen2a smartd[3073]: Device: /dev/sg5 [SAT], found in smartd database: Western Digital RE2-GP Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg5 [SAT], not capable of SMART Health Status check Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg5 [SAT], is SMART capable. Adding to "monitor" list. Apr 19 09:19:39 xen2a smartd[3073]: Monitoring 4 ATA and 0 SCSI devices Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg3 [SAT], 1 Currently unreadable (pending) sectors Apr 19 09:19:39 xen2a smartd[3073]: Sending warning via /usr/share/smartmontools/smartd-runner to [email protected] ... Apr 19 09:19:39 xen2a smartd[3073]: Warning via /usr/share/smartmontools/smartd-runner to [email protected]: successful Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg2 [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD1000FYPS_01ZKB0-WD_WCASJ2120586.ata.state Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg3 [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD1000FYPS_01ZKB0-WD_WCASJ2126000.ata.state Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg4 [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD1000FYPS_01ZKB0-WD_WCASJ2120624.ata.state Apr 19 09:19:39 xen2a smartd[3073]: Device: /dev/sg5 [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD1000FYPS_01ZKB0-WD_WCASJ2120207.ata.state
Wiadomość email wysłana do administratora wygląda tak:
This message was generated by the smartd daemon running on: host name: xen2a DNS domain: kowalsio.com The following warning/error was logged by the smartd daemon: Device: /dev/sg3 [SAT], 1 Currently unreadable (pending) sectors Device info: WDC WD1000FYPS-01ZKB0, S/N:WD-WCASJ2126000, WWN:5-0014ee-2022b6bfe, FW:02.01B01, 1.00 TB For details see host's SYSLOG. You can also use the smartctl utility for further investigation. Another message will be sent in 24 hours if the problem persists.
Po skonfigurowaniu usługi administrator systemu będzie na bieżąco informowany o występujących problemach z dyskami twardymi oraz będzie miał czas na odpowiednią reakcję.
2 komentarze
Możesz dodawać komentarze do tego artykułu.
Dzięki. Wstyd się przyznać, ale do tej pory monitorowałem ręcznie/zewnętrznymi skryptami. Kiedyś podchodziłem do konfiguracji smartd, ale wydało mi się ciut za skomplikowane w stosunku do tego, co robi. Plus, warto dodać, wymaga skonfigurowanej poczty wychodzącej w systemie. I chyba o to się rozbiłem, z powodu IPv6 i puli z dial-up – nie do końca stabilnie to działało z tego co pamiętam.
Nawiasem, orientujesz się może czy smartd pozwala na podpięcie wykonania zewnętrznego skryptu w przypadku wystąpienia błędu? Patrzyłem, ale nie widzę.
rozie. 9 lat ago
W przypadku powyższej konfiguracji można dodać nasz skrypt do katalogu /etc/smartmontools/run.d/. Opcja -M exec powoduje wykonanie skryptu /usr/share/smartmontools/smartd-runner, który z kolei przygotowuje tymczasowy raport i uruchamia wszystkie skrypty w katalogu /etc/smartmontools/run.d/ . W skryptach można używać pewnych zmiennych SMARTD, które ułatwią kontrolę działania skryptów np. SMARTD_FAILTYPE poda nam powód wystąpienia ostrzeżenia np. „Temperature”, oznaczający przekroczenie limitu temperatury dla dysku (więcej opcji opisano w dokumentacji man smartd.conf)
Konrad Kowalski 9 lat ago
Dodaj komentarz