8 votes

Instantané RDS : combien de temps dure la suspension des E/S ?

Comme nous nous appuyons sur la sauvegarde manuelle de RDS Postgresql pour notre stratégie de sauvegarde, nous avons rencontré le problème de l'arrêt possible de l'instance RDS (AZ unique) pendant la création du snapshot. Selon AWS :

La création de ce snapshot de BD sur une instance de BD Single-AZ entraîne une une brève suspension des E/S qui peut durer de quelques secondes à quelques minutes, selon la taille et la classe de votre instance de BD. minutes, selon la taille et la classe de votre instance de BD.

Ce qui n'est pas vraiment clair, c'est la façon dont nous pouvons être sûrs que l'instance de la base de données fonctionne normalement pendant la période de snapshot, car si la base de données est en panne pendant une courte période, nous aimerions arrêter notre serveur web correspondant ou le retirer de l'équilibreur de charge pour nous assurer qu'aucune interruption de connexion ne peut se produire du côté du client.

Ce qui nous a fait nous poser des questions :

  • La base de données est-elle vraiment indisponible pendant le snapshot, AWS parle seulement de "suspension des E/S" et de "latences" ? J'ai lu quelque part que le temps d'arrêt dure une courte période (de quelques secondes à une minute) juste pendant l'initialisation du snapshot, peut-on savoir si ce temps d'arrêt est passé et si l'instance de la base de données est prête à servir (alors que son snapshot est toujours en cours de création) ?

  • Quelle est la meilleure pratique générale pour gérer ces suspensions d'OI ? Comme il semble que cela se produise même avec la sauvegarde automatique, cela signifie-t-il que le site pourrait avoir un temps d'arrêt tous les jours lorsque la création de l'instantané de la base de données est en cours ?

11voto

John Hanley Points 3849

La réponse vient de la compréhension du fonctionnement de l'instantané.

Au début d'un instantané, un message (commande) est envoyé à toutes les applications pour qu'elles se mettent dans un état cohérent et évacuent les données nécessaires sur le disque.

La durée de cette purge dépend de la quantité de données en mémoire, de l'état des données et du temps nécessaire pour écrire les données sur le disque.

Une fois que chaque application prenant en charge l'instantanéisation a terminé sa préparation pour le gel, le processus d'instantanéisation enclenche alors les systèmes de fichiers, ce qui signifie que si d'autres blocs de données sont écrits, une copie est d'abord effectuée pour le processus de sauvegarde (COW - Copy on Write). Ensuite, le message/commande de dégel (reprise) est envoyé à chaque application.

Pour une base de données peu utilisée, ce processus de gel/dégel peut ne prendre que quelques centaines de millisecondes. Pour une grande base de données avec des Go de mémoire qui doivent être vidés sur le disque, un certain nombre de secondes seront nécessaires.

Pendant la durée du cycle de gel/dégel, l'entrée/sortie de disque pour les demandes des nouveaux utilisateurs est suspendue. La base de données est toujours en cours d'exécution, mais toutes les demandes sont suspendues pendant que les disques et les systèmes de fichiers sont synchronisés. Tout reprend à la réception du message de dégel.

Pour les bases de données maître-esclave, le maître n'est pas affecté. L'instantané sera pris sur un esclave. C'est l'une des fonctionnalités intéressantes de AWS RDS.

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