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

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

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

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

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

Сред ограничений 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