Un tour d'horizon des systèmes de fichiers distribués
Possibilité de stocker des données et métadonnées
Élasticité aux défaillances de nœuds uniques
La flexibilité étendre ou réduire le réseau à tout moment
Pouvoir courir sur très peu de mémoire les serveurs
UNE système de fichiers distribué , en général, fournir un idéalement POSIX interface de système de fichiers conforme. C'est l'élément le plus important de sa définition, car la construction d'un cluster de nœuds contenant des données de manière distribuée peut être réalisée de différentes manières, mais en créer un qui donne accès à un utilisable l'interface du système de fichiers est difficile. Un système de fichiers est généralement supposé être localet en tant que telles, de nombreuses applications supposent un accès rapide à celui-ci, sans tenir compte des problèmes de latence possibles qui pourraient survenir sur un système de fichiers sauvegardé par des données distantes. Très peu d'applications font la distinction entre les systèmes de fichiers locaux et distants.
L'échange d'un système de fichiers avec un système distribué peut être considéré comme une forme de rétrocompatibilité ... dans le cas où vous souhaitez déployer une application dans un environnement cloud qui repose sur l'accès au système de fichiers pour sa couche de données, le cloud doit fournir une interface de système de fichiers qui peut se répliquer arbitrairement sur les machines. Cependant, dans un cas d'utilisateur unique, cela peut également être considéré comme un moyen de réduire les frais généraux de gestion... au lieu de suivre les sauvegardes des données de chaque serveur que vous exécutez, vous pouvez suivre la santé du système de fichiers basé sur le réseau et planifier des sauvegardes dessus.
Si vous n'avez pas besoin d'un accès strict à la sémantique des systèmes de fichiers, une interface de stockage d'objets distribué est plus simple et aussi portable et universel en tant que système de fichiers, avec moins de charge de synchronisation sur le réseau puisqu'un stockage d'objets en soi, ne contient pas de métadonnées. Certains logiciels de stockage d'objets offrent une interface de système de fichiers construite sur le dessus.
Puisque notre objectif est ne pas big data, nous ignorons des solutions comme HDFS.
OpenAFS : ce n'est pas un système de fichiers correctement distribué, car il est fédéré ce qui signifie que les défaillances d'un seul nœud peuvent provoquer des perturbations.
MinFS : MinFS est un pilote de fusible pour MinIO, qui est un stockage d'objets distribué simple avec un codage d'effacement, mais il ne semble pas être bon marché en ressources.
xtreemefs : XtreemeFS atteint une résilience avec l'équivalent de RAID0 sur le réseau
les gloutons: facile à installer mais performances médiocres
ceph : plus difficile à configurer (et à gérer) mais avec de très bonnes performances (et réglables)
lézards : performances décentes, faible empreinte mémoire initiale mais élevée sous forte charge
orangefs : encombrement minimal, à la fois module noyau et module fuser, en attente de la v3 pour les métadonnées asynchrones
boeufs : faible encombrement, module noyau (mais module de fusion non maintenu), meilleures performances
algues : stockage d'objets facilement enfichable avec module de fusion
Ici, certains résultats de référence dans un tableau, ils ne couvrent pas tous les systèmes de fichiers et peuvent être obsolètes à ce stade, et dans lef2fs
la mise en cache des résultats pourrait avoir glissé :)
FS
seq
rread
rrw
files
create
read
append
rename
delete
raw
78793
1.0409e6
89958
179483
17300.0
23550.0
14408.0
4677
5373
zfs
102121
1.3985e6
92391
198410
29180.0
4470.0
18980.0
4695
8468
f2fs
2.064e6
1.455e6
101674
184495
28320.0
10950.0
16890.0
4233
3912
xtreemefs
159310
29117
29468
1690
510.0
1190.0
520.0
274
330
glusterfs
178026
17222
18152
5681
4380.0
7620.0
3110.0
413
1076
beegfs
79934
103006
85983
24867
9830.0
12660.0
10470.0
2889
3588
orangefs
330781
54735
41611
5523
5120.0
7020.0
6130.0
638
1989
FS
seq
rread
rrw
files
create
read
append
raw
76
266440
22489
44870
4430
6028
3688
zfs
99
358000
23097
49602
7470
1146
4860
f2fs
2064
372524
25418
46123
7250
2803
4325
xtreemefs
155
7279
7366
422
131
306
134
glusterfs
173
4305
4537
1420
1123
1951
798
beegfs
78
25751
21495
6216
2518
3242
2682
orangefs
323
13683
10402
1380
1310
1979
1571
FS
CPU (Server)
CPU (Client)
RAM (Server)
RAM (Client)
xtreemefs
100
25
300
201
glusterfs
100
50
92
277
beegfs
80
80
42
31
orangefs
15
75
60
20
Voici les données de référence
Les boutons sysctl ont été réglés pour un débit maximal, mais ils devraient sans doute être inutiles et fausser probablement les références, car dans un réseau hétérogène, ces boutons ne sont pas toujours appliqués, et de toute façon ils le sont dépendant du réseau , donc même s'ils sont appliqués, il pourrait y avoir d'autres goulots d'étranglement en place.
comparaisons supplémentaires, de wikipédia, des algues.