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.