Отворен код на разпределената файловата система TernFS

Компания XTX Markets откри изходния код на файловата система TernFS, проектирана за създаване на разпределено хранилище, обхващащо няколко географски разделени дата центрове и способна да съхранява до десетки екзабайти данни, трилиони файлове и стотици милиарди каталога, с които могат едновременно да взаимодействат милиони клиенти. Кодът на проекта е написан на C++ и Go и се разпространява под лиценза GPLv2. Спецификациите на протокола и клиентските библиотеки се предоставят под лиценза Apache 2.0.

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

Едно от изискванията при проектиране беше отсъствието на единна точка на отказ и осигуряване на висока надеждност на съхранението — аварийните прекъсвания на електричеството не трябва да водят до повреждане на файловата система, а файловете не могат да бъдат записани частично (за четене са достъпни само напълно записани файлове). Системата е устойчива на отказ на отделни носители, узли с метаданни и узли за съхранение. Възможно е извършване на обслужване на хранилището без спиране на работата.

Внедряването на хранилище на базата на TernFS в компанията XTX Markets започна през лятото на 2023 година, след година и половина разработка на файловата система. В средата на 2024 година всички системи за машинно обучение на XTX Markets бяха преместени на TernFS. В момента хранилището образува над 30 хиляди диска и 10 хиляди флаш носители, разположени в три дата центрове. Общият обем съхранявани данни е оценен на 500 петабайта, а пикова производителност — на няколко петабайта в секунда. Хранилището се използва в кластер с над 100 хиляди компютърни узли. През двугодишния период на експлоатация не са регистрирани инциденти, водещи до загуба на данни.

Сред ограничения на TernFS: записаните файлове не могат да бъдат променяни; ниска ефективност при работа с файлове по-малки от 2 МБ; ниска производителност при операции по създаване и изтриване на директории; отсъствие на разделяне на права за достъп.

Компоненти, съставляващи клъстера за съхранение TernFS:

  • Възли за метаданни, отговорни за управлението на информацията за структурата на директориите и атрибутите на файловете.
  • Възли за координиране на работата (CDC — Cross-Directory Coordinator), които извършват транзакции, обхващащи различни директории.
  • Услуги за съхранение, осигуряващи съхраняването на съдържанието на файловете.
  • Регистър, съдържащ информация за всички останали услуги и извършващ мониторинг на тяхната работа.
  • Клиентски услуги за достъп на потребителите до ФС:
    • ternweb — достъп до хранилището чрез Web API.
    • terncli — интерфейс на командния ред.
    • ternfs.ko — модул за ядрото на Linux, позволяващ монтиране на хранилището за работа като с локална ФС.
    • ternfuse — реализация на клиент за работа с ФС, използваща подсистемата FUSE.
    • terns3 — реализация на API Amazon S3.
  • Фонови процеси:
    • GC — сборщик на боклук, освобождаващ просрочени снимки (изтрити, но не почистени файлове) и почистващ блокове за неотменимо изтрити файлове.
    • scrubber — откриване на деградация на данни и възстановяване.
    • migrator — изключване от хранилището на неработещи дискове.

Отворен код на разпределената файловата система TernFS


Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster