4 Les systèmes de fichiers scale-out font l’objet de recherches avancées depuis de nombreuses années. Alors que les entreprises génèrent des volumes de données toujours plus importants, il devient indispensable de disposer de systèmes de fichiers capables de stocker des pétaoctets de données, d’offrir un accès simultané à des milliers d’utilisateurs et de préserver la cohérence du système de fichiers. Tout cela en garantissant une disponibilité 24 h/24 et 7 j/7 et des temps de réponse rapides partout dans le monde. Pour relever les défis liés à la création de systèmes géorépliqués évolutifs et hautement disponibles, de nouveaux travaux de recherche menés par Scality et les partenaires de RainbowFS présentent un nouveau système de fichiers géorépliqué et véritablement concurrent. Ces travaux décrivent ElmerFS, un système de fichiers qui s’appuie sur des types de données répliqués sans conflit (CRDT, en anglais) dans un scénario de déploiement géodistribué active-active. Ces travaux ont été présentés lors de HotStorage21 (en anglais), qui s’est tenu les 26 et 27 juillet. Le besoin d’une nouvelle approche Concevoir des systèmes de fichiers géorépliqués évolutifs et hautement disponibles est extrêmement difficile, car cela repose sur de nouvelles recherches sur les méthodes de concurrence, de réplication et de garantie de vues cohérentes des données entre utilisateurs et datacenters. Ces systèmes doivent résoudre les conflits issus d’opérations concurrentes de manière à préserver la cohérence du système de fichiers, à rester compréhensibles pour l’utilisateur et à ne pas s’écarter de l’interface traditionnelle d’un système de fichiers. La cohérence d’un système de fichiers signifie essentiellement que les utilisateurs voient toujours les bonnes données et que les fichiers sont toujours mis à jour dans l’ordre. Cela signifie aussi que le système de fichiers lui-même ne se retrouve jamais dans un état anormal : pas de fichiers ou de répertoires portant le même nom, ni de répertoires ou de fichiers inaccessibles après avoir été renommés. Or, dans les systèmes existants, la résolution des conflits aboutit souvent à des résultats inattendus ou incohérents. Le défi consiste donc à trouver une solution capable de résoudre de manière pertinente les conflits entre opérations concurrentes tout en préservant les propriétés souhaitées. En outre, la solution doit prendre en charge les applications et protocoles historiques encore largement utilisés, qui n’ont pas été développés avec des mécanismes de gestion des anomalies de concurrence. Présentation d’ElmerFS Avec mes collègues des universités de la Sorbonne et de Grenoble, nous avons proposé un nouveau système de fichiers qui répond aux défis décrits ci-dessus. La conception d’ElmerFS exploite les propriétés des CRDT pour garantir que les opérations concurrentes sur différentes répliques convergent toujours vers un état correct, tout en préservant la sémantique d’un système de fichiers POSIX (Portable Operating System Interface) traditionnel. L’objectif global est de concevoir une résolution des conflits intuitive pour l’utilisateur, tout en restant compatible avec les applications développées pour les interfaces de systèmes de fichiers existantes. Pour permettre aux utilisateurs de compléter ou d’annuler les résultats de la résolution des conflits au moyen d’opérations sur le système de fichiers, un déploiement ElmerFS garantit que les répliques du système de fichiers finissent par converger vers un état commun et correct en présence d’opérations conflictuelles. Par exemple, imaginons deux utilisateurs qui ne peuvent pas communiquer entre eux, Alice et Bob. Tous deux créent un fichier nommé « report.doc ». Dans des circonstances normales, un seul utilisateur aurait pu effectuer l’opération. Mais comme le système doit être toujours disponible, il a accepté les deux opérations. Lorsque la connectivité est rétablie, le système présente à Bob son propre fichier « report.doc » et le fichier d’Alice « report.doc:Alice ». Bob peut alors décider de renommer son fichier, ou ne rien faire et poursuivre son travail en traitant le fichier en conflit comme un autre fichier portant un autre nom. Un partenariat continu avec Rainbow FS Ces travaux s’inscrivent dans la collaboration de Scality avec RainbowFS, un projet de recherche collaboratif financé par l’Agence nationale de la recherche. Il réunit une coalition de partenaires chargés d’étudier une approche du stockage distribué qui garantit une sémantique de cohérence adaptée à l’application, tout en préservant l’évolutivité et la disponibilité. Cela s’inscrit dans le travail continu de Scality avec la Fondation Inria, la fondation de l’Institut national de recherche en sciences et technologies du numérique. Investir dans ce type de projets et d’organisations et travailler avec eux est au cœur de la mission de Scality, et être à la pointe des avancées technologiques et de la recherche est depuis longtemps une priorité de l’entreprise. Lisez le rapport de recherche complet ici (en anglais).