Come get la notifica dei problemi di RAID di mdadm?

Sto eseguendo Ubuntu 12.04 LTS. Ieri ho trovato un messaggio nella mia casella di posta dicendo che il mio server è stato arrestato. Ho continuato a riavviare il sistema, ma non è venuto dopo molti minuti, e non ho avuto un sistema KVM hardware per vedere cosa il kernel stava printingndo al terminal. Così ho riavviato il sistema ad un'image di salvataggio Linux e ho visto che l'arrays RAID 1 software era fuori sync. Anche il sistema di soccorso ha cominciato a ribuild l'arrays RAID.

Finora non esiste alcuna prova che uno dei dischi abbia errori hardware. Gli stati SMART sembrano buoni finora.

Non ho mai ricevuto una notifica via e-mail da mdadm, anche se la segnalazione e-mail è stata triggersta in /etc/mdadm/mdadm.conf.

Questo server è stato configurato anche per inoltrare tutti i messaggi syslog a un host di log, quindi ho controllato l'host di log. Le parti rilevanti sono:

 20 maggio 15:38:40 kernel: [1.869825] md0: rilevato la capacità cambia da 0 a 536858624
 20 maggio 15:38:40 kernel: [1.870687] md0: partizione sconosciuta
 20 maggio 15:38:40 kernel: [1.877412] md: bind
 20 maggio 15:38:40 kernel: [1.878337] md / raid1: md1: non pulito - inizio background ricostruzione
 20 maggio 15:38:40 kernel: [1.878376] md / raid1: md1: attivo con 2 su 2 specchi
 20 maggio 15:38:40 kernel: [1.878418] md1: rilevato la capacità cambia da 0 a 3000052808704
 20 maggio 15:38:40 kernel: [1.878575] md: resync di arrays RAID md1
 [Omissis]
 May 20 15:52:33 kernel: il registro del kernel (proc) si è fermato.
 May 20 15:52:33 rsyslogd: [origine software = "rsyslogd" swVersion = "5.8.6" x-pid = "845" x-info = "http://www.rsyslog.com"] uscire dal segnale 15 .

Come si può vedere, il sistema (quello normale, non il sistema di salvataggio) ha già rilevato che qualcosa era sbagliato con l'arrays RAID durante un avvio del sistema. Poi, poco dopo, qualcosa (non me) fermò il sistema.

Quindi le mie domande sono:

  1. Cosa potrebbe causare improvvisamente i dischi di sincronia?
  2. Perché non mi è stato comunicato via email?
  3. Perché l'errore non è stato correttamente registrato a syslog prima di arrestare il sistema? Potrebbe essere che il sistema abbia tentato di accedere a syslog, ma lo ha fatto dopo aver arrestato il demone syslog? Se è così, cosa posso fare per impedirlo?
  4. Cosa posso fare per scoprire cosa è successo? Oppure, se ora non c'è modo di scoprire cosa è successo, come posso migliorare le registrazioni e le notifiche in modo che la prossima volta posso fare un post-mortem migliore?

La mia domanda non riguarda la pratica di backup appropriata. So già che RAID non è un backup, ecc. La mia domanda riguarda esclusivamente le notifiche e la diagnosi.

  • cancellati md0, md1 e non possono ricrearli
  • Puoi utilizzare le unità mentre Raid 1 sta ricostruendo?
  • Come recuperare un arrays mdadm su Synology NAS con l'unità in stato "E"?
  • Rimuovere l'unità non rioutput in Pools di archiviazione di Windows
  • Devo interrompere i servizi (Apache, MySQL) durante la ricostruzione software RAID 1 su Linux?
  • Prestazioni RAID1 con madam
  • Decifrare i messaggi syslog continui mpt2sas
  • Come distriggersre il software raid (mdadm)?
  • 2 Solutions collect form web for “Come get la notifica dei problemi di RAID di mdadm?”

    Cosa potrebbe causare improvvisamente i dischi di sincronia?

    Potrebbe essere qualsiasi errore hardware o software nel path tra i piatti dell'azionamento e i dati in memory. Ciò potrebbe significare, ma non è limitato a: la testa di azionamento, il controller di azionamento, la testa di collegamento sul cavo, il cavo stesso (interruzione del cavo interno), la port che il cavo si inserisce sull'unità, la port della scheda madre o della figlia , il chip del controller sulla scheda madre o la scheda figlia, o anche un guasto nel software (da qualche parte).

    Storia vera: una volta ho avuto uno specchio RAID che era scadente, lasciando cadere un'unità senza alcun motivo. Gli azionamenti sono andati bene, i piatti erano puliti (ripetere i passaggi SMART non hanno fatto niente), e tutto funzionava bene – finché non si esaurirà di nuovo e di nuovo. Ho sostituito il cavo da 3 dollari SATA e le emissioni immediatamente sono andate via. Morale della storia: c'è un LOT che può andare male, e non puoi sempre supporre che "tutto va bene" se non controlli tutti i componenti nel path dei dati.

    Perché non mi è stato comunicato via email?

    La notifica via e-mail si verifica solo quando (a) monitora triggersmente l'arrays o (b) quando viene interrogato l'arrays.

    Il mio consiglio è: è necessario che mdadm monitorino triggersmente l'arrays di unità come process. Questo può essere realizzato con qualcosa di simile a (ma non esattamente come):

    mdadm --monitor --scan --syslog 

    Sarà necessario regolare la row sopra specificata per l'installazione specifica.

    Perché l'errore non è stato correttamente registrato a syslog prima di arrestare il sistema? Potrebbe essere che il sistema abbia tentato di accedere a syslog, ma lo ha fatto dopo aver arrestato il demone syslog? Se è così, cosa posso fare per impedirlo?

    Potrebbe essere stata una serie di problemi che hanno causato la caduta della logging.

    In primo luogo, esiste l'integer numero di come funziona syslog in generale; e mentre molti anni sono andati a renderlo robusto e affidabile, ci sono alcuni casi in cui i dati potrebbero non farlo sul disco. Si tratta di un problema noto per la progettazione e uno che è stato triggersmente affrontato con la gestione del servizio di supervisione (aka daemontools e il loro ilk). La soluzione è stata quella di bypassare il syslog complessivamente e scrivere l'output in un logger che aveva sempre un descrittore di file aperto, quindi niente sarebbe caduto e il logger avrebbe scaricato l'output su disco il più velocemente ansible; mentre non è una soluzione efficace al 100% migliora in modo significativo le probabilità di avere scritti gli events sull'azionamento prima di sparire una pancia del kernel o arrestarsi.

    In secondo luogo, c'è la possibilità che il kernel avesse un panico diretto o qualche altro evento che avrebbe costretto la macchina ad un angolo. Anche i componenti hardware difettosi potrebbero causare un problema – ho visto che le macchine con alimentatori non supportti causano spegnimenti spontanei in Windows 8. Una sostituzione dell'UPS ha risolto definitivamente il problema di arresto. Ovviamente, niente che il kernel può fare, proteggerà contro una macchina che ha appena deciso "ho avuto abbastanza di questo" e si sono accorti di riavviare.

    Cosa posso fare per scoprire cosa è successo? Oppure, se non c'è modo per ora di scoprire cosa è successo, come posso migliorare le registrazioni e le notifiche in modo che la prossima volta posso fare un post-mortem migliore?

    Ci sono diversi approcci:

    • Inserire il log in una partizione separata. Sebbene non sia una garanzia di get registri intatti, contribuisce a isolare problemi di filesystem, come ad esempio il disco-full-can't-write, la corruzione che causa un riassembly a sola lettura, ecc. casi specifici.

    • Consulta le informazioni di sistema vitali di logging remota. Ancora una volta, questa non è una garanzia, ma aiuterà se l'ultimo pacchetto può "renderlo fuori dalla port" prima di un riavvio, e quel pacchetto ha indizi critici per il motivo per il riavvio accaduto.

    • Per servizi specifici e critici, guardate la sostituzione dell'output al syslog con qualcos'altro, come la logging in stile supervisore, where un logger dedicato intercetta l'output e la scrive su disco quanto prima. Ciò aumenta l'affidabilità dell'output che lo rende allo storage. Con un piccolo lavoro, può essere fatto coesistere parallelamente con altri accordi di gestione del servizio.

    Cosa potrebbe causare improvvisamente i dischi di sincronia?

    Guasto dell'unità, guasto del controller, altri errori hardware. Alcuni problemi di software oscuro.

    Perché non mi è stato comunicato via email?

    Ubuntu ha un cronjob /etc/cron.d/mdadm che consente di controllare i volumi RAID una volta al giorno alle 00:57. Se il tuo sistema non avesse problemi allora, o era già fallito, allora non c'era modo di submit un messaggio.

    Perché l'errore non è stato correttamente registrato a syslog prima di interrompere il sistema?

    Ebbene, se gli azionamenti non riescono, non ha senso cercare di scrivere a loro, poiché qualsiasi ulteriore scrittura potrebbe rifiutare qualsiasi cosa sia rimasta. Non sapendo la natura esatta del tuo guasto, potrebbe essere che il tuo volume o il tuo filesystem sono andati in sola lettura. Per impostazione predefinita, Ubuntu è impostata per passare a un file system di sola lettura se ci sono errori nel volume radice.

    come posso migliorare le registrazioni e le notifiche in modo che la prossima volta posso fare un post-mortem migliore?

    Impostare la logging di un host syslog remoto. In questo modo un errore di memorizzazione non significa che niente può essere registrato.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.