Актуализация на клъстерната файлова система LizardFS 3.13.0-rc2

След едногодишно затишие в развитието възобновено работа върху нов клон на устойчива на грешки разпределена файлова система LizardF 3.13 и публикувани втори кандидат за освобождаване. Наскоро се е случило промяна на собствениците на компанията, разработваща LizardFS, беше прието ново ръководство и сменени разработчици. През последните две години проектът беше изтеглен от общността и не му беше обърнато достатъчно внимание, но новият екип възнамерява да възроди предишната връзка с общността и да установи тясно взаимодействие с нея. Кодът на проекта е написан на езици C и C++ и разпространява се от под лиценз GPLv3.

Гущер FS е разпределена клъстерна файлова система, която ви позволява да разпределяте данни между различни сървъри, но предоставяте достъп до тях под формата на един голям дял, с който се работи по начин, подобен на традиционните дискови дялове. Монтиран дял с LizardFS поддържа POSIX файлови атрибути, ACL, ключалки, сокети, канали, файлове на устройства, символни и твърди връзки. Системата няма нито една точка на отказ, всички компоненти са излишни. Поддържа се паралелизиране на операциите с данни (няколко клиента могат едновременно да имат достъп до файлове).

За да се осигури устойчивост на грешки, данните се разделят на реплики, които се разпределят между различни възли с излишък (няколко копия се поставят на различни възли); ако възлите или устройствата се повредят, системата продължава да работи без загуба на информация и автоматично преразпределя данните като се вземат предвид останалите възли. За да разширите хранилището, достатъчно е да свържете нови възли към него, без да спирате работата за поддръжка (самата система репликира част от данните на нови сървъри и балансира хранилището, като взема предвид новите сървъри). Можете да направите същото, за да намалите размера на клъстера - можете просто да деактивирате остарялото оборудване, което се премахва от системата.

Данните и метаданните се съхраняват отделно. За работа се препоръчва да инсталирате два сървъра за метаданни, работещи в режим master-slave, както и поне два сървъра за съхранение на данни (chunkserver). Освен това, за архивиране на метаданни, регистрационните сървъри могат да се използват за съхраняване на информация за промените в метаданните и ви позволяват да възстановите работата в случай на повреда на всички съществуващи сървъри на метаданни. Всеки файл е разделен на блокове (частове) с размер до 64 MB. Блоковете се разпределят между сървърите за съхранение в съответствие с избрания режим на репликация: стандартен (изрично определяне на броя копия, които да бъдат поставени на различни възли, включително по отношение на отделни директории - за важни данни броят на копията може да бъде увеличен, а за намалени маловажни данни), XOR (RAID5 ) и EC (RAID6).

Съхранението може да се мащабира до петабайти. Областите на приложение включват архивиране, съхранение на изображения на виртуални машини, мултимедийни данни, архивиране, използване като DRC (Център за възстановяване след бедствие) и като съхранение във високопроизводителни изчислителни клъстери. LizardFS осигурява много висока скорост на четене за файлове от всякакъв размер, а при писане показва добра производителност при писане на цели големи и средни файлове, когато няма постоянна модификация, интензивна работа с отворени файлове и еднократни операции с куп малки файлове.

Актуализация на клъстерната файлова система LizardFS 3.13.0-rc2

Сред характеристиките на FS може да се отбележи и наличието на поддръжка за моментни снимки, отразяващи състоянието на файловете в определен момент, и вградена реализация на „кошчето“ (файловете не се изтриват веднага и са достъпни за възстановяване за известно време). Достъпът до дял може да бъде ограничен чрез IP адрес или парола (подобно на NFS). Има механизми за управление на квоти и качество на услугата, които ви позволяват да ограничите размера и честотната лента за определени категории потребители. Възможно е да се създават географски разпределени съоръжения за съхранение, чиито сегменти са разположени в различни центрове за данни.

Проектът LizardFS е основан през 2013 г. като разклонение MooseFS, и се различава основно по наличието на режим на репликация, базиран на кодове за коригиране на грешки на Reed-Solomon (аналогично на raidzN), разширена поддръжка на ACL, наличие на клиент за платформата Windows, допълнителни оптимизации (например при комбиниране на клиент и сървър за съхранение, блоковете, ако е възможно, се изпращат с текущия възел, а метаданните се кешират в паметта), по-гъвкава система за конфигуриране, поддръжка за предварително четене на данни, квоти на директории и вътрешна преработка.

LizardFS 3.13.0 е планирано да бъде пуснат в края на декември. Основната иновация на LizardFS 3.13 е използването на консенсусен алгоритъм за осигуряване на толерантност към грешки (превключване на главни сървъри в случай на повреда) сал (използва нашата собствена реализация на uRaft, която преди това е била използвана в търговски продукти). Използването на uRaft опростява конфигурацията и намалява забавянията при възстановяване при повреда, но изисква поне три работещи възела, единият от които се използва за кворум.

Други промени: нов клиент, базиран на подсистемата FUSE3, решаващ проблеми с коригиране на грешки, плъгинът nfs-ganesha е пренаписан на език C. Актуализацията 3.13.0-rc2 поправя няколко критични грешки, които направиха предишните тестови издания на клона 3.13 неизползваеми (корекциите за клона 3.12 все още не са публикувани и актуализацията от 3.12 до 3.13 все още води до пълна загуба на данни).

През 2020 г. работата ще бъде насочена към развитие
Agama, ново напълно пренаписано ядро ​​на LizardFS, което според разработчиците ще осигури трикратно увеличение на производителността в сравнение с клон 3.12. Agama ще премине към управлявана от събития архитектура, базирана на асинхронен вход/изход asio, работят предимно в потребителското пространство (за да се намали зависимостта от механизмите за кеширане на ядрото). Освен това ще бъдат предложени нова подсистема за отстраняване на грешки и анализатор на мрежовата активност с поддръжка за автоматична настройка на производителността.

Клиентът LizardFS ще добави пълна поддръжка за операции за запис на версии, което ще подобри надеждността на възстановяването след бедствие, ще реши проблеми, които възникват, когато различни клиенти споделят достъп до едни и същи данни, и ще позволи значителни подобрения на производителността. Клиентът ще бъде прехвърлен към собствената си мрежова подсистема, работеща в потребителско пространство. Първият работещ прототип на LizardFS, базиран на Agama, се планира да бъде готов през второто тримесечие на 2020 г. В същото време те обещават да внедрят инструменти за интегриране на LizardFS с платформата Kubernetes.

Източник: opennet.ru

Добавяне на нов коментар