GlusterFS versus Ceph : comparatif de ces 2 systèmes de stockage
Les systèmes de stockage distribués sont la solution pour enregistrer et gérer des données trop volumineuses pour un serveur typique. Mais ce n’est pas uniquement une question de taille. En effet, un système de fichiers classique avec une structure de dossiers ne permet pas de traiter les données non structurées.
Augmentez votre rentabilité grâce à un stockage évolutif, qui s'intègre à vos scénarios d'application.
Enregistrer de gros volumes de données : c’est possible avec GlusterFS et Ceph
Lorsqu’on est confronté à une masse de données, la quantité exacte de ces données n’est pas connue au début du projet. Par conséquent, les systèmes doivent être extensibles très facilement en cours de fonctionnement avec des serveurs supplémentaires s’intégrant parfaitement dans un système de stockage existant. Pour l’utilisateur, le système de fichiers distribué ressemble à un dossier unique dans un système de fichiers traditionnel. Il n’a pas conscience que certains fichiers individuels voire des parties de fichiers peuvent être situés sur différents serveurs qui peuvent être localisés dans des endroits géographiquement éloignés. GlusterFS et Ceph sont des couches logicielles sur les systèmes d’exploitation Linux. Ils ne posent donc aucune exigence particulière en termes de matériel. Linux fonctionne sur n’importe quel serveur standard et supporte tous les types de disques courants.
Une disponibilité élevée est indispensable
Lorsqu’il s’agit des solutions de stockage distribué, la disponibilité est un point essentiel. Les pannes matérielles doivent être aussi rares que possible et le logiciel nécessaire au fonctionnement doit tenir son rôle sans interruption, même lorsque de nouveaux composants sont ajoutés. Les travaux de maintenance doivent être réalisables en cours de fonctionnement. L’ensemble des métadonnées essentielles ne doivent pas être enregistrées en un seul endroit centralisé. L’accès aux métadonnées doit pouvoir être effectué de façon décentralisée et tous les points doivent comporter une redondance. En aucun cas, une panne de serveur ne doit pouvoir nuire à la cohérence de l’intégralité du système. Malgré leur approche différente, GlusterFS et Ceph sont des systèmes extensibles pratiquement à volonté permettant de rassembler et rechercher dans un même système des données de projets du big data.
Le terme « big data » est utilisé pour de très grands volumes de données complexes et peu structurés tels qu’on en trouve dans les capteurs scientifiques (par exemple sur les satellites GPS), dans les réseaux météorologiques ou en statistique. En plus du stockage, l’efficacité de la recherche et la systématisation des données sont également importantes dans le big data.
Brève présentation de GlusterFS
GlusterFS est un système de fichiers distribué avec une structure modulaire. Différents serveurs sont connectés ensemble via un réseau TCP/IP. GlusterFS est un système de fichiers conforme aux normes POSIX (Portable Operating System Interface) pouvant être facilement intégré dans les environnements de serveur Linux existants. Il fonctionne aussi avec les systèmes d’exploitation FreeBSD, OpenSolaris et macOS qui supportent également POSIX. Jusqu’à présent, l’intégration dans un environnement Windows est uniquement possible en utilisant un serveur Linux comme portail.
Fonctionnement de GlusterFS
À ses débuts, GlusterFS était un système de stockage classique basé sur les fichiers. Son orientation objet est venue seulement plus tard lorsqu’une importance particulière a été accordée à une intégration optimale dans la célèbre solution Cloud OpenStack disponible en open source. En arrière-plan, GlusterFS fonctionne toujours à partir de fichiers, mais chaque fichier est attribué à un objet dont la connexion est établie via des liens physiques dans le système de fichiers. Aucun serveur dédié n’apparaît à l’utilisateur car il dispose d’interfaces propres pour enregistrer ses données sur GlusterFS qui lui apparaît comme un système global.
Avantages | Inconvénients |
---|---|
Intégration facile dans les systèmes Linux | Intégration dans les systèmes Windows par une voie détournée |
Compatibilité POSIX | |
Compatibilité avec FUSE (File System in User Space) |
Brève présentation de Ceph
Disponible en open source, la solution de stockage distribué Ceph est un stockage objet basé sur des objets binaires qui contourne ainsi les structures de blocs fixes des supports de données classiques. Si d’un point de vue physique, Ceph utilise également des disques durs, un algorithme propre se charge toutefois de la gestion des objets binaires qui sont répartis entre plusieurs serveurs en autant de parts que nécessaire avant d’être reconstitués a posteriori.
Fonctionnement de Ceph
Tous les composants fonctionnent de façon décentralisée. L’ensemble des OSD (Object Based Storage Device = appareils de stockage basés sur un objet) sont sur un même pied d’égalité. Il est ainsi possible de connecter ensemble un nombre illimité de serveurs avec différents disques pour former un seul et même système de stockage. Ceph offre diverses possibilités d’intégration dans des environnements système existants par le biais de trois interfaces importantes : CephFS qui joue le rôle de pilote de système de fichiers sous Linux, RADOS Block Devices (RBD) qui tient lieu d’appareil Linux pouvant être intégré directement et le portail RADOS compatible avec Swift et Amazon S3.
Avantages | Inconvénients |
---|---|
Une intégration simple dans tous les systèmes, quel que soit le système d’exploitation utilisé | Des fonctionnalités de système de fichier plus légères |
Block Device pour Linux | Un effort d’apprentissage important du fait de structures entièrement nouvelles |
Un système de fichiers CephFS pour Linux | |
Une interface Amazon S3 | |
Une connexion fluide avec l’authentification Keystone | |
Un module FUSE (File System in User Space) pour supporter les systèmes sans client CephFS |
Comparatif : GlusterFS versus Ceph
Au vu des différences techniques entre GlusterFS et Ceph, il est impossible de les départager. Sur le principe, Ceph est un stockage basé sur les objets pour des données non structurées alors que GlusterFS utilise des arborescences de système de fichiers dans des stockages sous forme de bloc. GlusterFS trouve son origine dans un système de stockage très efficace basé sur des fichiers, dont le développement tend de plus en plus vers une orientation objet. Au contraire, Ceph a été développé dès le départ comme un stockage d’objets binaires (Object Storage) et non comme un système de fichiers classique, ce qui peut entraîner des lacunes pour ce qui est des opérations de système de fichiers typiques.
GlusterFS | Ceph |
---|---|
Des atouts dans l’aspect système de fichiers | Des atouts dans l’aspect Object Store |
Un algorithme de stockage plus rapide | Une meilleure performance sur un matériel simple |
Aucun serveur de métadonnées central n’est nécessaire | Une intégration simple dans tous les systèmes, quel que soit le système d’exploitation utilisé |
Une faible complexité | Block Device pour Linux |
Une meilleure adéquation au stockage de gros fichiers (à partir de 4 Mo par fichier) | La simplicité des modifications spécifiques au client |
Une meilleure adéquation pour les fichiers avec un accès séquentiel | La compatibilité RADOS |
Quand est-il pertinent d’utiliser tel ou tel système ?
Grâce à ses diverses interfaces, Ceph peut être utilisé efficacement dans des réseaux hétérogènes où Linux n’est pas le seul système d’exploitation pouvant être utilisé. En revanche, GlusterFS se démarque lorsqu’il s’agit de stocker un grand nombre de fichiers classiques et plus volumineux. Comme Ceph a été développé dès le début comme une solution open source, dans de nombreux domaines, il était plus simple par le passé de l’utiliser que GlusterFS qui n’a été publié en open source que tardivement. Les solutions Cloud constituent un domaine d’utilisation important des stockages distribués. Dans ce cadre, OpenStack est l’un des principaux projets logiciels proposant des architectures pour le Cloud computing. Que ce soit GlusterFS ou Ceph, ils fonctionnent tous deux parfaitement avec OpenStack.