I componenti di un elaboratore elettronico sono, per forza di cose, soggetti ad usura, con l'inevitabile conseguenza di arrivare a rottura. Ciò è vero in particolar modo per quei componenti di natura meccanica, come ad esempio i dischi rigidi o le ventole dei sistemi di raffreddamento.
Nel caso di una macchina server, la rottura improvvisa di un componente può comportare effetti piuttosto gravi: dalla interruzione del servizio (la macchina va spenta, riparata mediante sostituzione del pezzo danneggiato, e poi riattivata) fino alla perdita di dati.
Pertanto, nell'amministrazione di macchine server si rende necessario attuare opportune politiche di prevenzione, quali ad esempio l'impiego di macchine ridondate così da non causare la completa interruzione del servizio in caso di guasto, la definizione di un sistema di backup collaudato (si veda la lezione precedente), ecc.
Analogamente, è necessario monitorare accuratamente lo stato di salute delle macchine server al fine di agire in maniera preventiva (ad esempio sostituendo un componente che mostra segni d'usura prima che si danneggi del tutto).
In ambiente GNU/Linux esistono diversi strumenti di diagnositca utilizzabili sia da riga di comando che da applicazioni di controllo terze (ad esempio, webmin).
Oltre agli strumenti offerti dal sistema operativo, esistono poi delle suite di monitoraggio create dai produttori stessi, compatibili con quelle macchine concepite per essere espressamente utilizzate come server. Questi strumenti permettono di gestire e monitorare più macchine da remoto, attraverso una comoda interfaccia web.
Monitoraggio dei dischi rigidi
Il monitoraggio di dischi connessi ad un controller RAID hardware è affidato al software fornito a corredo del controller stesso. Alcuni modelli permettono un monitoraggio attivo dei singoli dischi, mentre altri, più economici, permettono il monitoraggio del solo array, nella sua interezza.
I dischi direttamente connessi ai bus di sistema possono invece essere monitorati mediante il sistema S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology). Questa tecnologia, implementata direttamente a bordo del controller del disco rigido, permette al sistema operativo di richiedere al disco stesso informazioni dettagliate circa il suo stato di salute. Grazie a SMART è possibile conoscere il numero di settori danneggiati, il numero totale di ore di funzionamento, la temperatura di esercizio ed accedere al log degli errori hardawre.
Per accedere a tali informazioni, è sufficiente installare il pacchetto smartmontools, con il comando:
# apt install smartmontools
Al termine dell'installazione, è possibile interrogare direttamente da riga di comando il controller del disco, con il comando smartctl. Ad esempio:
# smartctl -a -d ata /dev/sda
stampa l'elenco completo delle informazioni SMART disponibili per il disco /dev/sda. L'output del comando include la tabella degli attributi SMART, come mostrato nell'esempio sottostante:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 5524
12 Power_Cycle_Count 0x0032 098 098 000 a -d ata Old_age Always - 1883
177 Wear_Leveling_Count 0x0013 099 099 000 a -d ata Pre-fail Always - 30
179 Used_Rsvd_Blk_Cnt_Tot 0x0013 100 100 010 a -d ata Pre-fail Always - 0
181 Program_Fail_Cnt_Total 0x0032 100 100 010 a -d ata Old_age Always - 0
182 Erase_Fail_Count_Total 0x0032 100 100 010 Old_age Always - 0
183 Runtime_Bad_Block 0x0013 100 100 010 Pre-fail Always - 0
187 Uncorrectable_Error_Cnt 0x0032 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0032 071 044 000 Old_age Always - 29
195 ECC_Error_Rate 0x001a 200 200 000 Old_age Always - 0
199 CRC_Error_Count 0x003e 099 099 000 Old_age Always - 1
235 POR_Recovery_Count 0x0012 099 099 000 Old_age Always - 27
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 39928059293
Da questa tabella apprendiamo, ad esempio, che il disco rigido ha 5524 ore di funzionamento, è stato spento e riacceso 1883 volte ed ha una temperatura di esercizio di 29 °C.
Inoltre, è possibile richiedere al disco rigido di effettuare un test di diagnostica, il cui esito verrà riportato nel log SMART. Ad esempio il comando seguente:
# smartctl -t short /dev/sda
effettua un self-test rapido sul disco /dev/sda.
Monitoraggio del sistema di raffreddamento
Altrettanto importante è il monitoraggio del sistema di raffreddamento, in quanto un surriscaldamento della macchina può portare ad una riduzione delle prestazioni ed in casi più gravi anche allo spegnimento improvviso della macchina o alla rottura di altri componenti.
In ambiente GNU/Linux è disponibile il progetto lm-sensors: un insieme di programmi di utilità e moduli del kernel che permette di configurare il sistema in base al proprio hardware per poter dialogare con i sensori di temperatura disponibili.
Il pacchetto da installare è appunto lm-sensors, con il comando:
# apt install lm-sensors
Al termine dell'installazione, si potrà procedere con la configurazione del sistema, con il comando:
# sensors-detect
Il comando effettua una scansione dei sensori presenti a bordo (tipicamente, sensori di temperatura e di rilevazione della velocità di rotazione delle ventole) ed attiva i moduli del kernel necessari, che verranno aggiunti nel file /etc/modprobe. Al termine del processo di configurazione verrà mostrato un riepilogo con l'elenco dei sensori attivi. Digitando il comando:
# sensors
si otterrà in output l'elenco dei sensori attivi ed i valori rilevati istantaneamente da ciascuno.