1 votes

Système de fichiers virtuel agissant comme un clone+différence d'un système de fichiers maître

À mon entreprise, environ 10 développeurs partagent un serveur de développement ubuntu. Nous avons des répertoires de code distincts, mais en raison de la taille de notre base de données (environ 50 Go), il n'est pas pratique de cloner la base de données mysql pour chaque développeur. Donc pour le moment, nous partageons tous une seule base de données. Cependant, je me demandais si cela est possible:

Créer un système de fichiers maître (ext4) qui stocke la base de données de 50 Go. Ce système de fichiers n'aura pas de serveur mysql en cours d'exécution et serait pratiquement en lecture seule. Créer un système de fichiers virtuel pour chaque développeur qui référence le système de fichiers maître et stocke une différence de chaque modification apportée. avoir un serveur mysql en cours d'exécution sur chaque système de fichiers virtuel. Ensuite, chaque développeur obtient sa propre base de données pour faire ce qu'il veut, sans dupliquer inutilement la base de données de 50 Go.

Je n'ai pas examiné comment mysql stocke ses données sur le disque, mais en raison du désir de minimiser les E/S sur le disque, je soupçonne que les petits changements que nous apportons dans nos tests de routine ne créeront pas de grandes différences dans le système de fichiers virtuel.

En particulier, voici mes questions:

  • Cette architecture est-elle possible?
  • Est-ce la manière la plus simple d'atteindre mon objectif?
  • Un tel système de fichiers virtuel existe-t-il déjà?

1voto

roadmr Points 32606

Pour répondre à vos questions (la prochaine fois, veuillez les numéroter pour qu'il soit plus facile de s'y référer) :

  • Devrait être possible
  • Ne semble PAS être le moyen le plus simple
  • Oui, un tel système de fichiers virtuel existe.

Votre idée semble être un bon cas d'utilisation pour un overlayfs. Vous pouvez utiliser votre système de fichiers de base de données existant comme système de fichiers "inférieur" et un système de fichiers "diff" par développeur comme système de fichiers "supérieur". Overlayfs permet d'utiliser des répertoires comme "supérieur" et "inférieur" afin de ne pas nécessairement monter les bases de données dans des répertoires différents.

Ensuite, vous devriez configurer chaque instance MySQL par développeur pour utiliser un datadir différent.

De loin, le moyen le plus simple est d'opter pour un disque dur de 1 To, de cloner la base de données autant de fois que nécessaire pour chaque développeur, puis de faire tourner une instance MySQL pour chaque développeur ou de gérer toutes les bases de données avec une seule instance. Pour les développeurs, la différence réside entre spécifier un port différent ou un nom de base de données différent. À mon avis, il serait plus simple d'avoir une seule instance MySQL, car cela signifie moins de pièces mobiles.

Le facteur à prendre en compte est le temps que vous mettrez à développer la solution overlayfs par rapport au coût d'un disque dur de 1 To pour votre matériel serveur particulier. Votre temps a un coût ; si vous envisagez 3 jours de travail à (disons) 50 $ de l'heure (en étant TRÈS conservateur ici) pour un total de 1200 $, et que la solution du disque dur implique 2 heures de travail plus peut-être une synchronisation de base de données nocturne que vous pouvez lancer et oublier, alors vous auriez un budget de 1100 $ pour un disque dur de 1 To. De plus, la maintenance de la solution avec le gros disque est plus facile car il n'y a pas de "piratage" ou de manipulation astucieuse ; c'est simplement un serveur de base de données avec un énorme disque dur.

Bien sûr, si votre serveur Ubuntu est quelque part dans le cloud, le coût de cette tranche de stockage de 1 To peut être plus élevé. Néanmoins, veuillez prendre en considération l'analyse coût/bénéfice pour prendre votre décision ; vous pourriez finir par économiser de l'argent et du temps à long terme :)

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