S.M.A.R.T.-Monitor

S.M.A.R.T.-Werte-Überwachung/-Anzeige von Festplatten/HDDs (Hard Disk Drives) und SSDs

 

 

hier sollte das Hauptfenster unter Linux-Mint erscheinen
Hauptfenster (Betriebsysstem: Linux Mint)
hier sollte Fenster zu unterstützten S.M.A.R.T.-IDs unter Linux-Mint erscheinen erscheinen
Fenster zu unterstützten S.M.A.R.T.-IDs (Betriebsysstem: Linux Mint)
Hauptfenster (Betriebsysstem: Windows 7)
Hauptfenster (Betriebsysstem: Windows 7)

 

 

Zweck: Warnung des Anwenders vor einem drohenden Datenverlust durch einen wahrscheinlich werdenden Ausfall/Defekt des Datenträgers anhand der Auswertung dessen S.M.A.R.T.-Daten (quasi der Gesundheitszustand des Datenträgers)


unterstützte Betriebssysteme:

  • Linux (getestet: Kernel 4.15.x)
  • Windows (getestet: Version 7) ehemals, für die Zukunft wieder geplant

eingesetzte Technologien:

  • wxWidgets für Plattform-übergreifende grafische Benutzerschnittstelle (GUI)
  • Client/Server-Prinzip mit (BSD) Sockets, damit man S.M.A.R.T.-Daten von entfernten Rechnern über Netzwerk/Internet lesen kann bzw. die (grafische/textuelle) Benutzerschnittstelle weniger Berechtigungen benötigt.
    Alternativ kann die Benutzerschnittstelle (GUI/TUI/...) S.M.A.R.T.-Werte direkt lesen, was aber in der Regel höhere/Administrator-Rechte erfordert.

Features:

  • Auswahl der anzuzeigenden/abzufragenden/zu übertragenden S.M.A.R.T.-Daten über eine Konfigurationsdatei zur Konzentration auf wesentliche Daten/schnellerer Programm-Ausführung
  • Der Dateipfad der Logdatei kann spezifiziert werden. So kann auch auf eine RAM-Disk geschrieben werden. Dies ist bei einem HDD-/SSD-Überwachungs-Tool sinnvoll ist, da es so den Datenträger schont und die Abfrage der S.M.A.R.T.-Daten nicht zu deren Verschlechterung führt
  • Anzeige der S.M.A.R.T.-Daten als Rohdaten ("raw value") und menschenlesbar ("human readable")
  • verbindet sich automatisch mit dem Server nach einem Verbindungsabbruch bzw. verbindet sich, sobald der Server erreichbar ist
  • mehrere Clients können gleichzeitig mit dem Server verbunden sein
  • Installation des Servers als systemd-Dienst möglich
  • Einheiten der S.M.A.R.T.-Werte werden durch Plausibilitätsprüfungen erkannt im Gegensatz zu anderen Ansätzen mit Datenbanken.
    Die Einheiten sind nicht standardisiert, sondern können zwischen Herstellern/Modellen/Firmwares unterschiedlich sein.

Implementierung:
der Zugriff auf die S.M.A.R.T.-Daten ist als Interface/Basisklasse implementiert, um verschiedene Betriebssysteme zu unterstützen

Es werden CMake Include-Dateien verwendet, die auch die Tests einbinden. Dadurch werden Redundanzen vermieden.

Qualitätssicherung

die Qualität des Software Engineering/Implementierung wird durch verschiedene Tests garantiert:

  • minimaler Client
  • minimaler Client, der von der Klasse SMARTmonitorClient abstammt
  • alle unterstützten SMART-Attribute abfragen und die Laufzeit messen

Z.B. der minimale Client:

console:
"<data_carrier model="HFS256G39TND-N210A" firmware="30001P10" serial_number="EJ7CN55981080CH09"><supportedSMART_IDs>1,5,9,12,100,168,169,171,172,174,175,176,177,178,179,180,184,187,188,194,195,196,198,199,204,212,234,241,242,250</supportedSMART_IDs></data_carrier>
# XML bytes to read:844
<data_carrier model="HFS256G39TND-N210A" firmware="30001P10" serial_number="EJ7CN55981080CH09"><SMART ID="1" raw_value="0" time_in_s="182016.266"/><SMART ID="5" raw_value="0" time_in_s="182016.312"/><SMART ID="9" raw_value="50072400000" time_in_s="182016.391"/><SMART ID="12" raw_value="730" time_in_s="182016.438"/><SMART ID="187" raw_value="3" time_in_s="182016.438"/><SMART ID="194" raw_value="314150" time_in_s="182016.516"/><SMART ID="195" raw_value="4294967295" time_in_s="182016.531"/><SMART ID="196" raw_value="0" time_in_s="182016.547"/><SMART ID="198" raw_value="0" time_in_s="182016.578"/><SMART ID="199" raw_value="0" time_in_s="182016.578"/><SMART ID="204" raw_value="7121" time_in_s="182016.625"/><SMART ID="241" raw_value="171798" time_in_s="182016.688"/><SMART ID="242" raw_value="319102" time_in_s="182016.703"/></data_carrier>
[...]
"

© 2013-2022. Stefan Gebauer, M.Sc. Computer Science/Informatik (TU), B.Sc. Angewandte Informatik (FH)