J'ai un serveur domestique (HP Proliant ML310 G4) que j'ai acheté à mon employeur il y a environ un mois. Le serveur exécute Debian Linux et je l'utilise pour à peu près tout. Je peux m'en tirer car mes besoins ne sont pas si exigeants, donc le serveur est rarement sous de lourdes charges à un moment donné. Ce serveur possède une baie RAID1 de 2 To (avec un disque de secours) gérée par mdadm que j'utilise pour le partage de fichiers sur mon réseau via Samba. J'exécute le système d'exploitation sur un disque dur plus petit qui ne fait pas partie de la matrice.
J'ai le serveur alimenté par un petit onduleur de 255 watts parce que j'en ai besoin pour résister à des fluctuations de puissance mineures sans tomber. Ceci est très important car un arrêt brutal impur (provoqué par une coupure de courant ou une panne de courant) peut gâcher la matrice RAID, ce qui s'est déjà produit à une occasion.
En cas de panne de courant, j'estime que l'onduleur ne dispose que de 10 à 15 minutes d'alimentation. Il peut y en avoir plus, mais je ne veux pas supposer automatiquement qu'il y en a. Cela suffit pour surmonter les pannes d'électricité qui durent quelques minutes ou moins. Cependant, si l'alimentation est coupée pendant plusieurs heures, j'ai besoin que le serveur se ferme correctement automatiquement avant que l'alimentation de l'onduleur ne tombe en panne. Nous espérons que cela empêchera l'intégrité du RAID d'être arrosée dans ces situations.
Ce genre de chose est facile sur un ordinateur portable car il dispose de capteurs intégrés pour déterminer quand il fonctionne sur batterie, mais ce serveur ne fonctionne pas (pour autant que je sache). J'ai une configuration réseau inhabituelle où mon modem DSL est séparé de mon routeur. Le routeur est également sur l'onduleur, ce qui me permet de me connecter via mon ordinateur portable et d'arrêter le serveur en cas de panne de courant. Malheureusement, cela ne fonctionne que si je suis là au moment de le faire. J'ai besoin d'une solution qui fonctionne toujours, que je sois là pour intervenir ou non.
Étant donné que mon modem DSL n'est pas sur l'onduleur, il tomberait avec tout le reste en cas de panne de courant. Je l'ai installé comme ça délibérément parce que j'ai une idée sur la façon de résoudre ce problème: je pensais à écrire un script qui pingerait google.com ou un autre site à fort trafic / haute disponibilité. Si le ping se termine avec succès, le serveur continuera de fonctionner. Si le ping échoue (parce que le modem est éteint), le script penserait que l'alimentation est coupée et dirait au serveur de s'arrêter. Je voudrais ajouter le script à Cron et l'exécuter toutes les 5 minutes. Nous espérons que cela donnerait au serveur suffisamment de temps pour s'arrêter avant que l'onduleur ne soit à court d'alimentation.
Avant de me donner la peine d'écrire le script, j'aimerais savoir s'il existe une meilleure façon de faire ce dont j'ai besoin. Merci d'avance pour votre aide.
la source
Réponses:
Il existe une méthode ancienne mais éprouvée: utilisez un ancien modem analogique. Voici comment
Interrogez maintenant le modem toutes les quelques secondes
ATZ[Enter]
et attendezOK[Enter]
- si le modem ne répond pas, vous pouvez supposer qu'il n'a pas d'alimentation, ce qui signifie que l'onduleur est sur batterie.modifier
Le point principal est que si votre connexion Internet tombe pour une autre raison, le serveur ne s'arrêtera pas comme il se doit.
Modifier 2
D'après les commentaires:
la source
Un ups est généralement livré avec un connecteur USB ou COM1. Lorsque vous vous connectez à votre serveur, vous pouvez alors commencer à surveiller l'onduleur.
Dans un environnement Windows, sans installer le logiciel, les messages sont déjà enregistrés et cela arrêtera le serveur pour vous. Je ne sais pas comment cela fonctionne sur Linux, mais je parie qu'il existe des packages logiciels disponibles pour l'interface avec votre onduleur.
la source
Si vous utilisez Debian, essayez d'utiliser NUT (outils UPS réseau). J'utilise NUT pour faire exactement ce que vous décrivez sur mon Synology NAS (qui exécute busybox) et sur un serveur Web domestique exécutant Ubuntu 12.04 LTS. J'ai le NAS branché via USB à l'onduleur pour la même raison que vous, perte potentielle de tous mes fichiers.
Je crois que le démon Nut interroge l'onduleur à chaque seconde pour déterminer l'état. Lorsque l'onduleur est en mode batterie, il peut être configuré pour s'arrêter normalement ou attendre d'abord X minutes, etc. Vous pouvez également configurer plusieurs clients pour qu'ils soient connectés au démon nut que vous exécutez sur votre serveur. Ainsi, votre serveur peut également indiquer à plusieurs PC de votre réseau de s'arrêter correctement. Pour l'exécution de l'arrêt, vous pouvez fournir votre propre script aux services d'arrêt d'une manière spécifique, ou vous pouvez utiliser le script intégré qui appelle simplement shutdown -h, si je me souviens bien.
Site Web de NUT
Il y avait de meilleurs sites pour trouver des informations, mais je ne m'en souviens pas pour le moment. La configuration peut être pénible, mais si vous parlez de potentiellement perdre votre RAID, vérifiez-le! Selon vos besoins, vous n'aurez peut-être pas besoin de l'ensemble de la suite NUT, vous pourrez peut-être vous en sortir avec uniquement la partie UPSMON. Je pense que vous pouvez l'obtenir dans le paquet Ubuntu "nut-client".
Il existe également un client NUT pour Windows, mais sous Windows, il serait préférable d'utiliser quelque chose comme PowerChute ou quelque chose de similaire.
la source