•  untoreh-luce

Filesystem distribuiti

Una carrellata di file system distribuiti

Obiettivi

File system distribuiti?

UN file system distribuito , generalmente, fornire a idealmente POSIX interfaccia del file system compatibile. Questa è la parte più importante della sua definizione perché costruire un cluster di nodi che contengono dati in modo distribuito può essere ottenuto in molti modi diversi, ma costruirne uno che fornisce accesso a un utilizzabile l'interfaccia del file system è impegnativa. Di solito si presume che un filesystem sia Locale e come tale, molte applicazioni presuppongono un accesso rapido ad esso, ignorando eventuali problemi di latenza che potrebbero sorgere su un file system supportato da dati remoti. Pochissime applicazioni distinguono tra file system locali e remoti.

Scambiare un file system con uno distribuito può essere considerato una forma di retrocompatibilità ...nel caso in cui si desideri distribuire un'applicazione in un ambiente cloud che si basa sull'accesso al file system per il suo livello dati, il cloud deve fornire un'interfaccia del file system che possa replicarsi arbitrariamente tra le macchine. Tuttavia, in un singolo caso utente, può anche essere considerato un modo per ridurre il sovraccarico di gestione... invece di tenere traccia dei backup dei dati da ogni singolo server in esecuzione, è possibile monitorare lo stato del file system basato sulla rete e pianificare i backup su di esso.

Se non hai bisogno di un accesso rigoroso alla semantica dei file system, un'interfaccia di archiviazione di oggetti distribuita è più semplice e come portatile e universale come file system, con meno carico di sincronicità sulla rete poiché uno storage di oggetti di per sé, non contiene metadati. Alcuni software di archiviazione oggetti offrono un'interfaccia del file system integrata.

Arrotondare

Poiché il nostro obiettivo è non big data, ignoriamo soluzioni come HDFS.

Qui alcuni risultati di benchmark in una tabella, non coprono tutti i file system e potrebbero essere obsoleti a questo punto, e nelf2fs la memorizzazione nella cache dei risultati potrebbe essere sfuggita :)

Larghezza di banda

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

IOPS

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

risorse

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

Dati

Ecco i dati dei benchmark

Le manopole sysctl sono state sintonizzate per il massimo throughput, ma dovrebbero essere probabilmente inutili e probabilmente distorcono i benchmark, poiché in una rete eterogenea quelle manopole non sono sempre applicate, e comunque sono dipendente dalla rete , quindi anche se vengono applicati, potrebbero esserci altri colli di bottiglia.

Ulteriori confronti, da wikipedia, da alghe.

Tag degli articoli: