3 votes

IIS : Comment gérer les redémarrages de Windows ?

Nous avons un VPS (Windows 2008 R2+IIS7.5), avec une application asp.net mvc 3.

La question principale est la suivante : comment gérer les problèmes lorsque Windows doit redémarrer ? (après l'installation des mises à jour de Windows ou autre). L'objectif est de rendre le site web accessible 24 heures sur 24 et 7 jours sur 7, mais il convient d'abord d'afficher un message aux utilisateurs. (nous serons bientôt de retour, quelque chose comme app_offline.htm)

Notre application utilise SQL et écrit/lit également certains fichiers (photos téléchargées, documents) qui ne sont pas stockés dans SQL.

Que recommandez-vous ?

  1. Répartition de la charge avec ARR (avec 1+2 serveurs, mais que se passe-t-il si le serveur frontal doit être redémarré ?)
  2. Cluster de basculement Windows ?
  3. Cluster de basculement SQL ?
  4. Que faire des fichiers téléchargés ?

Je ne sais vraiment pas quelle serait la meilleure (et la plus simple) solution.

4voto

Brent Pabst Points 6049

En général, pour assurer la haute disponibilité, il faut plus d'un serveur. En règle générale, vous disposez de deux serveurs ou plus derrière une configuration à charge équilibrée qui peut distribuer la charge à un autre serveur en cas de panne ou de période de maintenance.

Il est évident que le stockage SQL et le stockage de fichiers doivent être situés sur des serveurs ou des grappes différents. La configuration HA la plus simple serait quelque chose comme :

A Load Balancer (Possibly redundant)
       |
Two Web Servers
 |     |     |
 |  Clustered SQL Server (Unless a single point of failure is ok)
 |
File Servers using DFS-R (Unless a single point of failure is ok)

1voto

Shlomi Fish Points 1951

Nous avons un haproxy load balancer devant nos serveurs web. Nous avons un script script d'arrêt qui envoie une commande à l'instance haproxy pour retirer le serveur du pool (c'est, euh, un peu nul car il utilise un client SSH .net qui se connecte à la machine haproxy et exécute une commande en l'envoyant dans le fichier socat stdio /etc/haproxy/haproxysock - mais cela fonctionne). Lorsque le serveur revient en ligne, il exécute une autre commande qui le réintègre dans le pool.

Cela signifie que les utilisateurs finaux ne savent jamais quand un serveur arrive ou part, car il y a toujours un deuxième serveur web pour prendre le relais.

En cas de panne catastrophique, nous avons un message personnalisé "Whoops, we'll be back soon" que les serveurs haproxy reçoivent s'il y a un pool vide ou si tous les serveurs sont tombés en panne.

En ce qui concerne le reste du dispositif, je m'en remets à Réponse de Brent . DFS-R est génial (et convient également au basculement hors site). Nous n'utilisons pas SQL Clustering, mais nous utilisons SQL Mirroring qui est presque aussi bon.

0voto

Fergus Points 1303

Si les ressources ne sont pas un problème et que votre objectif est d'établir un temps de fonctionnement aussi proche que possible de la durée de vie d'un produit. five 9's / Haute disponibilité (HA) tout en conservant la possibilité de redémarrer. Je recommande l'utilisation d'une solution de virtualisation de serveur incluant un stockage partagé entre vos hôtes. Dans le schéma ci-dessous, j'utilise iSCSI et VMware avec un réseau de stockage. Le réseau utilise le protocole HSRP (Hot Standby Router Protocol) (il est proposé par Cisco mais il en existe d'autres). Dans cette configuration et dans votre situation, VMotion est facultatif. SRDF et d'autres réplications de données / clustering permettent une redondance complète à tous les niveaux. Le dessin est simpliste et n'illustre pas les LUN ou la possibilité d'avoir un réseau FC au lieu d'un réseau iSCSI.

Par ailleurs, l'expérience montre que de nombreux centres de données consacrent énormément de temps et de ressources à la technologie, mais oublient de se préoccuper de la distribution électrique. L'alimentation électrique peut facilement gâcher la journée. Pensez à la symétrie des alimentations redondantes, des PDU, des panneaux et des sources d'alimentation commerciales. Les onduleurs sont également essentiels.

enter image description here

-1voto

Jamie Points 101

La solution la plus simple serait de jeter un coup d'œil à Azure, qui vous permet non seulement de vous concentrer sur le développement, mais qui offre également un excellent temps de disponibilité (et qui vous rembourse en cas de panne). SQL n'est pas sur le même serveur et vous pouvez stocker les fichiers téléchargés dans le stockage blob.

Ce n'est peut-être pas la voie que vous voulez suivre, mais je l'utilise depuis environ un an et demi et j'en suis très satisfait :)

Oh et si vous avez un abonnement MSDN, Bizspark ou une étincelle de site web, c'est presque gratuit (en fonction du trafic de votre site bien sûr).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X