Ho un server di casa (HP Proliant ML310 G4) che ho acquistato dal mio datore di lavoro circa un mese fa. Il server esegue Debian Linux e lo uso praticamente per tutto. Posso farcela perché le mie esigenze non sono così esigenti, quindi il server è raramente sottoposto a carichi pesanti in qualsiasi momento. Questo server ha un array RAID1 da 2 TB (con un hot spare) gestito da mdadm che utilizzo per la condivisione di file sulla mia rete tramite Samba. Sto eseguendo il sistema operativo da un disco rigido più piccolo che non fa parte dell'array.
Ho il server alimentato da un piccolo UPS da 255 watt perché ne ho bisogno per resistere a piccole fluttuazioni di potenza senza scendere. Questo è molto importante perché un arresto improvviso e impuro (causato da un'interruzione di corrente o blackout) può rovinare l'array RAID, cosa che è già avvenuta in un'occasione.
In caso di mancanza di corrente, sto stimando che l'UPS abbia solo 10-15 minuti di alimentazione. Potrebbero essercene di più ma non voglio presumere automaticamente che ci sia. Questo è sufficiente per superare i blackout che durano pochi minuti o meno. Tuttavia, se l'alimentazione viene interrotta per diverse ore, è necessario che il server si spenga automaticamente correttamente prima che l'alimentazione dell'UPS si interrompa. Si spera che ciò mantenga l'integrità del RAID non venir meno in quelle situazioni.
Questo genere di cose è facile su un laptop b / c ha sensori integrati per determinare quando funziona a batteria, ma questo server non lo fa (per quanto ne so). Ho una configurazione di rete insolita in cui il mio modem DSL è separato dal mio router. Il router si trova anche sull'UPS, il che mi consente di accedere a SSH tramite il mio laptop e di spegnere il server in caso di mancanza di corrente. Sfortunatamente, questo funziona solo se sono lì al momento per farlo. Ho bisogno di una soluzione che funzioni sempre sia che io sia lì per intervenire o meno.
Dal momento che il mio modem DSL non è sull'UPS, andrebbe giù con tutto il resto se l'alimentazione si interrompe. L'ho impostato deliberatamente in quel modo perché ho un'idea di come risolvere questo problema: stavo pensando di scrivere uno script che eseguisse il ping di google.com o di altri siti ad alto traffico / disponibilità elevata. Se il ping si completa correttamente, il server continuerà a funzionare. Se il ping fallisce (perché il modem è spento), lo script penserà che sia spento e dire al server di spegnersi. Vorrei aggiungere lo script a Cron e farlo funzionare ogni 5 minuti. Si spera che darebbe al server abbastanza tempo per spegnersi prima che l'UPS si esaurisca.
Prima di andare al problema di scrivere la sceneggiatura, vorrei sapere se esiste un modo migliore per fare ciò di cui ho bisogno. Grazie in anticipo per qualsiasi aiuto.