LizardFS 3.13.0-rc2 cluster file system update

Pagkatapos ng isang taon na tahimik sa pag-unlad ipinagpatuloy nagtatrabaho sa isang bagong sangay ng isang fault-tolerant distributed file system ButikiF 3.13 ΠΈ nalathala pangalawang release na kandidato. Kamakailan lang nangyari pagbabago ng mga may-ari ng kumpanyang bumubuo ng LizardFS, pinagtibay ang bagong pamamahala at pinalitan ang mga developer. Sa nakalipas na dalawang taon, ang proyekto ay inalis mula sa komunidad at hindi nagbigay ng sapat na pansin dito, ngunit ang bagong koponan ay nagnanais na buhayin ang dating relasyon sa komunidad at magtatag ng malapit na pakikipag-ugnayan dito. Ang code ng proyekto ay nakasulat sa mga wikang C at C++ at ipinamahagi ni sa ilalim ng lisensya ng GPLv3.

ButikiFS ay isang distributed cluster file system, na nagbibigay-daan sa iyo na ipamahagi ang data sa iba't ibang mga server, ngunit nagbibigay ng access sa mga ito sa anyo ng isang malaking partition, na kung saan ay nagtrabaho sa isang katulad na paraan sa tradisyonal na disk partition. Sinusuportahan ng naka-mount na partition na may LizardFS ang mga attribute ng POSIX file, ACL, lock, socket, pipe, device file, symbolic at hard link. Ang sistema ay walang isang punto ng pagkabigo; lahat ng mga bahagi ay kalabisan. Sinusuportahan ang parallelization ng mga pagpapatakbo ng data (maraming kliyente ang maaaring sabay na mag-access ng mga file).

Upang matiyak ang fault tolerance, ang data ay nahahati sa mga replika, na ipinamamahagi sa iba't ibang mga node na may redundancy (ilang mga kopya ang inilalagay sa iba't ibang mga node); kung ang mga node o drive ay nabigo, ang system ay patuloy na gumagana nang walang pagkawala ng impormasyon at awtomatikong muling ipapamahagi ang data isinasaalang-alang ang natitirang mga node. Upang mapalawak ang imbakan, sapat na upang ikonekta ang mga bagong node dito nang hindi humihinto sa trabaho para sa pagpapanatili (ang system mismo ay kinokopya ang bahagi ng data sa mga bagong server at binabalanse ang imbakan na isinasaalang-alang ang mga bagong server). Maaari mong gawin ang parehong upang bawasan ang laki ng kumpol - maaari mo lamang i-disable ang hindi na ginagamit na kagamitan na inalis mula sa system.

Ang data at metadata ay iniimbak nang hiwalay. Para sa operasyon, inirerekumenda na mag-install ng dalawang metadata server na tumatakbo sa master-slave mode, pati na rin ang hindi bababa sa dalawang data storage server (chunkserver). Bukod pa rito, sa pag-backup ng metadata, maaaring gamitin ang mga log server upang mag-imbak ng impormasyon tungkol sa mga pagbabago sa metadata at payagan kang ibalik ang operasyon kung sakaling masira ang lahat ng umiiral na metadata server. Ang bawat file ay nahahati sa mga bloke (mga tipak), hanggang sa 64 MB ang laki. Ang mga bloke ay ipinamamahagi sa mga server ng imbakan alinsunod sa napiling mode ng pagtitiklop: pamantayan (tahasang pagtukoy sa bilang ng mga kopya na ilalagay sa iba't ibang mga node, kabilang ang may kaugnayan sa mga indibidwal na direktoryo - para sa mahalagang data ang bilang ng mga kopya ay maaaring tumaas, at para sa nabawasan ang hindi mahalagang data), XOR (RAID5 ) at EC (RAID6).

Ang storage ay maaaring mag-scale hanggang sa mga laki ng petabyte. Kasama sa mga lugar ng aplikasyon ang pag-archive, pag-imbak ng mga imahe ng virtual machine, data ng multimedia, pag-backup, paggamit bilang DRC (Disaster Recovery Center) at bilang imbakan sa mga cluster ng computing na may mataas na pagganap. Nagbibigay ang LizardFS ng napakataas na bilis ng pagbabasa para sa mga file ng anumang laki, at kapag nagsusulat, nagpapakita ito ng mahusay na pagganap kapag nagsusulat ng buong malaki at katamtamang laki ng mga file, kapag walang patuloy na pagbabago, masinsinang trabaho sa mga bukas na file, at isang beses na operasyon na may isang bungkos ng maliliit na file.

LizardFS 3.13.0-rc2 cluster file system update

Kabilang sa mga tampok ng FS, maaari ding tandaan ang pagkakaroon ng suporta para sa mga snapshot, na sumasalamin sa estado ng mga file sa isang tiyak na oras, at isang built-in na pagpapatupad ng "recycle bin" (ang mga file ay hindi agad na tinanggal at magagamit para sa pagbawi ng ilang oras). Ang access sa isang partition ay maaaring limitado ng IP address o password (katulad ng NFS). Mayroong quota at kalidad ng mga mekanismo sa pamamahala ng serbisyo na nagbibigay-daan sa iyong limitahan ang laki at bandwidth para sa ilang partikular na kategorya ng mga user. Posibleng lumikha ng mga pasilidad ng imbakan na ipinamamahagi sa heograpiya, ang mga segment nito ay matatagpuan sa iba't ibang mga sentro ng data.

Ang proyekto ng LizardFS ay itinatag noong 2013 bilang isang tinidor MooseFS, at higit na naiiba sa pagkakaroon ng replication mode batay sa Reed-Solomon error correction code (katulad ng raidzN), pinalawak na suporta sa ACL, pagkakaroon ng isang kliyente para sa Windows platform, karagdagang mga pag-optimize (halimbawa, kapag pinagsama ang isang kliyente at isang server ng imbakan, mga bloke, kung maaari, ay ipinapadala gamit ang kasalukuyang node, at ang metadata ay naka-cache sa memorya), isang mas nababaluktot na sistema ng pagsasaayos, suporta para sa data read-ahead, mga quota ng direktoryo at panloob na rework.

Ang LizardFS 3.13.0 ay nakatakdang ilabas sa katapusan ng Disyembre. Ang pangunahing inobasyon ng LizardFS 3.13 ay ang paggamit ng consensus algorithm upang matiyak ang fault tolerance (pagpapalit ng mga master server kung sakaling mabigo) Raft (gumagamit ng sarili nating pagpapatupad ng uRaft, na dating ginamit sa mga komersyal na produkto). Pinapasimple ng paggamit ng uRaft ang configuration at binabawasan ang mga pagkaantala sa pagbawi ng pagkabigo, ngunit nangangailangan ng hindi bababa sa tatlong gumaganang node, kung saan ang isa ay ginagamit para sa quorum.

Iba pang mga pagbabago: isang bagong kliyente batay sa FUSE3 subsystem, paglutas ng mga problema sa pagwawasto ng error, ang nfs-ganesha plugin ay muling isinulat sa wikang C. Ang Update 3.13.0-rc2 ay nag-aayos ng ilang kritikal na bug na naging dahilan upang hindi magamit ang mga nakaraang pagsubok na release ng 3.13 branch (ang mga pag-aayos para sa 3.12 branch ay hindi pa nai-publish, at ang pag-update mula 3.12 hanggang 3.13 ay humahantong pa rin sa kumpletong pagkawala ng data).

Sa 2020, ang trabaho ay tututuon sa pagbuo
Agama, isang bagong ganap na muling isinulat na kernel ng LizardFS, na, ayon sa mga developer, ay magbibigay ng tatlong beses na pagtaas sa pagganap kumpara sa branch 3.12. Ang Agama ay lilipat sa isang arkitektura na hinimok ng kaganapan, batay sa asynchronous na input/output asio, pangunahing gumagana sa espasyo ng gumagamit (upang mabawasan ang pag-asa sa mga mekanismo ng pag-cache ng kernel). Bukod pa rito, mag-aalok ng bagong debugging subsystem at network activity analyzer na may suporta para sa auto-tuning ng performance.

Ang kliyente ng LizardFS ay magdaragdag ng buong suporta para sa mga operasyon ng pagsusulat ng bersyon, na magpapahusay sa pagiging maaasahan ng pagbawi sa sakuna, malulutas ang mga problemang lumitaw kapag ang iba't ibang mga kliyente ay nagbabahagi ng access sa parehong data, at magbibigay-daan para sa makabuluhang pagpapabuti ng pagganap. Ang kliyente ay ililipat sa sarili nitong network subsystem na tumatakbo sa espasyo ng gumagamit. Ang unang gumaganang prototype ng LizardFS batay sa Agama ay binalak na maging handa sa ikalawang quarter ng 2020. Kasabay nito, nangangako silang magpapatupad ng mga tool para sa pagsasama ng LizardFS sa platform ng Kubernetes.

Pinagmulan: opennet.ru

Magdagdag ng komento