Абнаўленне кластарнай файлавай сістэмы LizardFS 3.13.0-rc2

Пасля гадавога зацішша ў распрацоўцы аднавілася праца над новым адгалінаваннем адмоваўстойлівай размеркаванай файлавай сістэмы LizardF 3.13 и апублікаваны другі кандадат у рэлізы. Нядаўна адбылася змена ўладальнікаў кампаніі, якая развівае LizardFS, было прынята новае кіраўніцтва і змяніліся распрацоўшчыкі. Апошнія два гады праект адхіліўся ад супольнасці і не надаваў ёй належнай увагі, але новая каманда мае намер адрадзіць ранейшыя адносіны з супольнасцю і наладзіць з ім цеснае ўзаемадзеянне. Код праекту напісаны на мовах З і З++ і распаўсюджваецца пад ліцэнзій GPLv3.

ЯшчаркаFS з'яўляецца размеркаванай кластарнай файлавай сістэмай, якая дазваляе разгрупаваць дадзеныя па розных серверах, але прадставіць да іх доступ у форме адзінай вялікай часткі, праца з якім ажыццяўляецца па аналогіі з традыцыйнымі дыскавымі часткамі. У мантаваным раздзеле з LizardFS падтрымліваюцца POSIX-атрыбуты файлаў, ACL, блакіроўкі, сокеты, каналы, файлы прылад, сімвалічныя і цвёрдыя спасылкі. Сістэма не мае адзінага пункта адмовы, усе кампаненты рэзервуюцца. Падтрымліваецца распаралельванне аперацый з дадзенымі (некалькі кліентаў могуць адначасова звяртацца да файлаў).

Для забеспячэння адмоваўстойлівасці дадзеныя разбіваюцца на рэплікі, якія размяркоўваюцца па розных вузлах з рэзерваваннем (на розных вузлах размяшчаецца некалькі копій), - у выпадку выхаду са строю вузлоў або назапашвальнікаў, сістэма працягвае працу без страты інфармацыі і аўтаматычна пераразмяркоўвае дадзеныя з улікам пакінутых вузлоў. Для пашырэння сховішчы дастаткова падлучыць да яго новыя вузлы без спынення працы на абслугоўванне (сістэма сама рэплікуе частку дадзеных на новыя серверы і збалансуе сховішча з улікам новых сервераў). Аналагічна можна паступіць і для скарачэння памеру кластара - можна проста адключыць выводнае са складу састарэлае абсталяванне.

Дадзеныя і метададзеныя захоўваюцца паасобна. Для працы рэкамендуецца ўсталёўваць два сервера метададзеных, якія працуюць у рэжыме master-slave, і а таксама прынамсі два сервера захоўвання дадзеных (chunkserver). Дадаткова для рэзервавання метададзеных могуць ужывацца лог-серверы, якія захоўваюць інфармацыю аб змене метададзеных і дазваляюць аднавіць працу ў выпадку пашкоджання ўсіх наяўных сервераў метададзеных. Кожны файл разбіваецца на блокі (chunk), памерам да 64 МБ. Блокі размяркоўваюцца па серверах захоўвання ў адпаведнасці з абраным рэжымам рэплікацыі: стандартны (яўнае вызначэнне колькасці копій для размяшчэння на розных вузлах, у тым ліку ў прывязцы да асобных каталогаў - для важных дадзеных колькасць копій можна павялічыць, а для неістотных паменшыць), XOR (RAID5 ) і EC (RAID6).

Сховішча можа маштабавацца да петабайтных памераў. З абласцей прымянення згадваюцца вядзенне архіваў, захоўванне выяў віртуальных машын, мультымедыйных дадзеных, рэзервовых копій, выкарыстанне як DRC (Disaster Recovery Center) і як сховішча ў кластарах высокапрадукцыйных вылічэнняў. LizardFS забяспечвае вельмі высокую хуткасць чытання файлаў любога памеру, а пры запісе паказвае добрую прадукцыйнасць пры запісе цалкам вялікіх і сярэдніх файлаў, калі няма сталай мадыфікацыі, інтэнсіўнай працы з адчыненымі файламі і разавых аперацый з кучай дробных файлаў.

Абнаўленне кластарнай файлавай сістэмы LizardFS 3.13.0-rc2

Сярод асаблівасцяў ФС таксама можна адзначыць наяўнасць падтрымкі снапшотаў, якія адлюстроўваюць стан файлаў у вызначаны час, і ўбудаваную рэалізацыю "кошыка" (файлы не выдаляюцца адразу і нейкі час даступныя для аднаўлення). Доступ да часткі можа быць абмежаваны па IP-адрасу або паролю (па аналогіі з NFS). Маюцца механізмы квот і кіраванні якасцю сэрвісу, якія дазваляюць абмежаваць памер і прапускную здольнасць для некаторых катэгорый карыстачоў. Магчыма стварэнне тэрытарыяльна размеркаваных сховішчаў, сегменты якіх размешчаны ў розных датацэнтрах.

Праект LizardFS быў заснаваны ў 2013 годзе як форк MooseFS, і адрозніваецца, галоўным чынам, наяўнасцю рэжыму рэплікацыі на базе кодаў карэкцыі памылак Рыда-Саламона (аналаг raidzN), пашыранай падтрымкай ACL, наяўнасцю кліента для платформы Windows, дадатковымі аптымізацыямі (напірмер, пры сумяшчэнні кліента і сервера захоўвання, блокі па магчымасці аддаюцца з бягучага вузла, а метададзеныя кэшуюцца ў памяці), больш гнуткай сістэмай наладкі, падтрымкай папераджальнага чытання дадзеных, квотамі на каталогі і ўнутранымі перапрацоўкамі.

Рэліз LizardFS 3.13.0 плануецца выпусціць у канцы снежня. Асноўнай навінай LizardFS 3.13 з'яўляецца задзейнічанне для забеспячэння адмоваўстойлівасці (пераключэнні master-сервераў у выпадку збою) алгарытму дасягнення кансэнсусу рафт (выкарыстоўваецца ўласная рэалізацыя uRaft, якая раней прымянялася ў камерцыйных прадуктах). Выкарыстанне uRaft спрашчае наладу і скарачае затрымкі пры аднаўленні пасля збою, але патрабуе наяўнасць прынамсі трох працавальных вузлоў, адзін з якіх выкарыстоўваецца для кворуму.

З іншых змен: новы кліент на базе падсістэмы FUSE3, рашэнне праблем з карэкціроўкай памылак, убудова nfs-ganesha перапісаны на мове Сі. У абнаўленні 3.13.0-rc2 выпраўлена некалькі крытычных памылак, якія рабілі папярэднія тэставыя выпускі галінкі 3.13 малапрыдатнымі для выкарыстання (выпраўленні для галінкі 3.12 пакуль не апублікаваны, а абнаўленне з 3.12 на 3.13 па-ранейшаму прыводзіць да поўнай страты дадзеных).

У 2020 годзе праца будзе сканцэнтравана на распрацоўцы
Агама, новага цалкам перапісанага ядра LizardFS, якое, як запэўніваюць распрацоўшчыкі, забяспечыць павелічэнне прадукцыйнасці ў тры разы, у параўнанні з галінкай 3.12. У Agama будзе ажыццёўлены пераход на падзейна-арыентаваную архітэктуру (event driven), асінхронны ўвод/вывад на базе азія, працу пераважна ў прасторы карыстальніка (для зніжэнне залежнасці ад механізмаў кэшавання ядра). Дадаткова будуць прапанаваны новая адладкавая падсістэма і аналізатар сеткавай актыўнасці з падтрымкай аўтацюнінгу прадукцыйнасці.

У кліент LizardFS будзе дададзена поўная падтрымка версіявання аперацый запісу, якая падвысіць надзейнасць узнаўлення пасля збою, вырашыць праблемы, якія ўзнікаюць пры сумесным доступе розных кліентаў да адных дадзеных, і дазволіць дамагчыся значнага павелічэння прадукцыйнасці. Кліент будзе пераведзены на ўласную сеткавую падсістэму, якая працуе ў прасторы карыстальніка. Першы працоўны прататып LizardFS на базе Agama плануецца падрыхтаваць у другім квартале 2020 гады. У гэты ж час абяцаюць рэалізаваць сродкі для інтэграцыі LizardFS з платформай Kubernetes.

Крыніца: opennet.ru

Дадаць каментар