7 votes

Quel est le temps raisonnable de basculement du stockage que la plupart des OS (VM) peuvent tolérer ?

J'ai une configuration GlusterFS 2 nœuds 2 répliques. J'ai l'intention de l'utiliser comme magasin d'instance OpenStack, dans lequel l'image disque de la VM est stockée.

D'après mes tests, si le nœud GlusterFS sur lequel l'hyperviseur est actuellement monté tombe en panne (en utilisant les paramètres GlusterFS par défaut), il faut environ 45 secondes pour que la connexion soit interrompue et que le client GlusterFS bascule sur l'autre nœud. Pendant ces 45 secondes, les opérations d'E/S seront suspendues, ce qui signifie que le disque ne répond plus du point de vue de la VM.

Je sais que sous Linux, si le disque ne répond plus, au bout d'un certain temps (je ne suis pas sûr de la durée), le noyau remonte le système de fichiers en lecture seule.

Je peux aussi diminuer la valeur du volume de GlusterFS. network.ping-timeout ce qui réduira le temps de basculement.

Ma question est la suivante : à quel point dois-je fixer cette valeur pour que la plupart des systèmes d'exploitation puissent tolérer le temps de non réponse du disque virtuel sans effets secondaires ?

Pour être plus précis, j'aimerais connaître le temps de non réponse du disque que Windows NTFS, FreeBSD UFS/ZFS et Linux ext4 peuvent tolérer. Quels sont les paramètres concernés ? (par exemple, /sys/block/sda/device/timeout sur Linux)

informations connexes :

Mise à jour : @the-wabbit a répondu au sujet de Linux et Windows, j'aimerais aussi connaître le cas de FreeBSD

4voto

the-wabbit Points 40039

Le pilote de disque attend généralement qu'un délai d'attente configurable soit dépassé avant de signaler une erreur pour l'opération demandée.

Comme vous l'avez découvert, c'est /sys/block/<devicename>/device/timeout sous Linux et la valeur par défaut est 60 30 secondes.

Windows stocke cette configuration comme un réglage global TimeoutValue (REG_DWORD) dans HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk\ avec une valeur par défaut de 60 secondes.

Tant qu'aucune erreur n'est signalée en amont, il n'y a pas d'action immédiate (comme le remontage du FS), même après la fin du délai d'attente, il y a généralement d'autres actions du gestionnaire d'erreurs (consignation, réinitialisation du dispositif, etc.) avant qu'une erreur ne soit transmise à la couche supérieure.

Mais sachez qu'il y aura d'autres implications affectant la disponibilité globale.

  • les applications ou les services système peuvent mettre en œuvre leurs propres délais d'attente et lancer des exceptions à leur expiration.
  • sur les serveurs dont le taux de rotation des demandes est élevé, vous verrez les files d'attente se remplir et la mémoire s'épuiser car les nouveaux clients continuent de soumettre de nouvelles demandes alors que les anciennes attendent toujours une réponse du stockage.
  • si vous disposez d'un espace d'échange sur le périphérique défaillant, toutes les demandes de pages d'entrée et de sortie seront bloquées, bloquant ainsi les processus travaillant sur ces pages de mémoire.

En général, vous voudrez maintenir le temps de basculement aussi bas que possible tout en continuant à fonctionner sans basculement prématuré dû à des pics de charge occasionnels ou à des problèmes de réseau. Déterminer la bonne valeur pour votre cas spécifique d'utilisation est un travail d'essai et d'erreur sur une période prolongée d'opération. Pour les VM de serveur d'usage général, je viserais quelque chose de l'ordre de 10 secondes, si cela est faisable et supporté par votre infrastructure.

1voto

Sellers Points 1

FreeBSD a le geom_mountver ( https://www.freebsd.org/cgi/man.cgi?gmountver ), qui peut être utilisé pour lui faire tolérer n'importe quel temps de basculement. Si vous utilisez ZFS, vous devrez peut-être désactiver le timer deadman ; il fera paniquer la boîte si une entrée-sortie n'est pas terminée dans 15 minutes (IIRC).

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