Un resumen de los sistemas de archivos distribuidos
Capacidad para almacenar datos y metadatos
Resistencia a fallas de un solo nodo
Flexibilidad expandir o encoger la red en cualquier momento
Ser capaz de correr muy memoria baja servidores
A sistema de archivos distribuido , generalmente, proporcione un idealmente POSIX interfaz del sistema de archivos compatible. Esta es la mayor parte de su definición porque la construcción de un grupo de nodos que contienen datos de manera distribuida se puede lograr de muchas formas diferentes, pero construyendo una que proporcione acceso a un usable La interfaz del sistema de archivos es un desafío. Por lo general, se supone que un sistema de archivos local y como tal, muchas aplicaciones asumen un acceso rápido a él, sin tener en cuenta los posibles problemas de latencia que puedan surgir en un sistema de archivos respaldado por datos remotos. Muy pocas aplicaciones distinguen entre sistemas de archivos locales y remotos.
Intercambiar un sistema de archivos por uno distribuido puede considerarse una forma de compatibilidad con versiones anteriores ... en el caso de que desee implementar una aplicación en un entorno de nube que dependa del acceso al sistema de archivos para su capa de datos, la nube debe proporcionar una interfaz de sistema de archivos que pueda replicarse arbitrariamente en todas las máquinas. Sin embargo, en el caso de un solo usuario, también se puede considerar como una forma de reducir la sobrecarga de administración ... en lugar de rastrear las copias de seguridad de los datos de cada servidor que ejecute, puede rastrear el estado del sistema de archivos basado en la red y programar copias de seguridad en eso.
Si no necesita un acceso estricto a la semántica de los sistemas de archivos, una interfaz de almacenamiento de objetos distribuidos es más simple y portátil y universal como un sistema de archivos, con menos carga de sincronía en la red, ya que un almacenamiento de objetos per se, no contiene metadatos. Algunos programas de almacenamiento de objetos ofrecen una interfaz de sistema de archivos integrada en la parte superior.
Dado que nuestro objetivo es no Big Data, ignoramos soluciones como HDFS.
OpenAFS : este no es un sistema de archivos distribuido correctamente, ya que es federado lo que significa que las fallas de un solo nodo pueden causar interrupciones.
MinFS : MinFS es un controlador de fusibles para MinIO, que es un almacenamiento de objetos distribuido sencillo con codificación de borrado, pero no parece tener recursos económicos.
xtreemefs : XtreemeFS logra resiliencia con el equivalente de RAID0 a través de la red
glusterfs : fácil de configurar pero de bajo rendimiento
ceph : más difícil de configurar (y administrar) pero con un rendimiento muy bueno (y ajustable)
lizardfs : rendimiento decente, huella de memoria inicial baja pero alta bajo carga pesada
orangefs : espacio mínimo, tanto el módulo del kernel como el módulo del fusor, a la espera de metadatos asíncronos en v3
Beegfs : espacio reducido, módulo de kernel (pero módulo de fusor sin mantenimiento), mejor rendimiento
algas : almacenamiento de objetos fácilmente conectable con módulo fusor
Aquí, algunos resultados de referencia en una tabla, no cubren todos los sistemas de archivos y pueden estar desactualizados en este punto, y en elf2fs
el almacenamiento en caché de resultados podría haberse deslizado :)
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
Aquí están los datos de los puntos de referencia
Las perillas sysctl se ajustaron para un rendimiento máximo, pero podría decirse que deberían ser inútiles y probablemente sesgarán los puntos de referencia, ya que en una red heterogénea esas perillas no siempre se aplican, y de todos modos lo son dependiente de la red , por lo que incluso si se aplican, podría haber otros cuellos de botella en su lugar.
Comparaciones adicionales, de wikipedia, de algas marinas.