Isang pag-ikot ng mga ipinamamahaging mga file system
Kakayahang mag-imbak ng data at meta data
Katatagan sa mga kabiguang solong node
Kakayahang umangkop upang mapalawak o mapaliit ang network anumang oras
Nakakapagpatakbo ng napaka mababang memorya mga server
A ipinamamahagi na file system , sa pangkalahatan, magbigay ng a perpekto POSIX sumusunod na interface ng file system. Ito ang pinaka piraso ng kahulugan nito dahil ang pagbuo ng isang kumpol ng mga node na nagtataglay ng data sa isang ipinamahaging fashion ay maaaring makamit sa maraming iba't ibang mga paraan, ngunit ang pagbuo ng isa na nagbibigay ng pag-access sa isang magagamit Hinahamon ang interface ng file system. Ang isang file filesystem ay karaniwang ipinapalagay na lokalat dahil dito, maraming mga application ang ipinapalagay ang mabilis na pag-access dito, hindi pinapansin ang mga posibleng isyu ng latency na maaaring lumabas sa isang file-system na sinusuportahan ng isang malayuang data. Napakakaunting mga application na makilala ang pagitan ng mga lokal at malayuang mga file system.
Ang pagpapalit ng isang file-system na may ipinamamahagi ay maaaring maituring na isang form ng pabalik na pagiging tugma ... sa kaso na nais mong i-deploy ang isang application sa isang cloud environment na umaasa sa pag-access ng file system para sa layer ng data nito, ang cloud ay kailangang magbigay ng isang interface ng file system na maaaring arbitraryong magtiklop sa mga machine. Gayunpaman, sa isang solong kaso ng gumagamit, maaari rin itong isaalang-alang bilang isang paraan upang mabawasan ang pamamahala ng overhead ... sa halip na subaybayan ang mga pag-backup para sa data mula sa bawat solong server na iyong pinatakbo, maaari mong subaybayan ang kalusugan ng nakabatay sa network system file at iiskedyul ang mga backup. dito.
Kung hindi mo kailangan ng mahigpit na pag-access sa mga file system semantics, ang isang ipinamamahagi na interface ng imbakan ng bagay ay mas simple at bilang portable at unibersal bilang isang system ng file, na may mas kaunting pasan ng pag-synchronize sa network mula nang isang imbakan ng object bawat isang, ay hindi nagtataglay ng meta data. Ang ilang mga object storage software ay nag-aalok ng isang interface ng file-system na itinayo sa itaas.
Dahil ang aming layunin ay hindi malaking data, hindi namin pinapansin ang mga solusyon tulad ng HDFS.
OpenAFS : hindi ito isang maayos na ipinamamahagi na file system, dahil ito ay federated na nangangahulugang ang mga kabiguang solong node ay maaaring maging sanhi ng pagkagambala.
MinFS : Ang MinFS ay isang fuse driver para sa MinIO, na isang tuwid na ipinapamahagi na imbakan ng bagay na may erasure coding, ngunit hindi ito mukhang mura sa mga mapagkukunan.
xtreemefs : Nakamit ng XtreemeFS ang katatagan na may katumbas na RAID0 sa network
glusterfs: madaling i-setup ngunit hindi maganda ang pagganap
ceph : mas mahirap i-set up (at pamahalaan) ngunit may napakahusay (at maaayos) na pagganap
mga butiki : disenteng pagganap, mababang paunang bakas ng memorya ngunit mataas sa ilalim ng mabibigat na pagkarga
mga orangef : minimal na bakas ng paa, parehong module ng kernel at module ng fuser, naghihintay sa v3 para sa async metadata
beegf : mababang bakas ng paa, module ng kernel (ngunit hindi napanatili na module ng fuser), pinakamahusay na pagganap
damong-dagat : madaling plug-magagawang imbakan ng bagay na may fuser module
Narito ang ilang benchmark na nagreresulta sa isang talahanayan, hindi nila sakop ang lahat ng mga file system, at maaaring luma na sa puntong ito, at saf2fs
ang mga resulta ng pag-cache ay maaaring nadulas :)
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
Narito ang data ng mga benchmark
Ang mga sysctl knobs ay naayos para sa max throughput, ngunit dapat silang hindi masabing walang silbi, at marahil ay pinamulahan ang mga benchmark, dahil sa isang magkakaiba-ibang network ang mga knob na iyon ay hindi palaging inilalapat, at kung paano man. umaasa sa network , kaya kahit na mailapat ang mga ito, maaaring may iba pang mga bottleneck sa lugar.
Karagdagang mga paghahambing, mula sa wikipedia, mula sa mga damong-dagat.