ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΠΎΠ΄ распрСдСлённой Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы TernFS

Компания XTX Markets ΠΎΡ‚ΠΊΡ€Ρ‹Π»Π° исходный ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы TernFS, спроСктированной для создания распрСдСлённого Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ нСсколько Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π΄Π°Ρ‚Π°Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΈ способного Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄ΠΎ дСсятков эксабайт Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Ρ€ΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ сотСн ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языках Π‘++ ΠΈ Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.

Π€Π‘ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, свойствСнных систСмам машинного обучСния β€” запись ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ измСняСмых послС создания ΠΈ содСрТащих большС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π€Π‘ Π½Π΅ рассчитана Π½Π° частоС созданиС Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ частоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ возмоТности ΠΊΠ°ΠΊ для восстановлСния ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎ ошибкС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для настройки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ удалСния. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π€Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Π΄Π°Ρ‚Π°Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π³ΠΈΠΎΠ½Π°Ρ…. Π£Π·Π»Ρ‹ хранСния ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ (Π½Π° основС дисков ΠΈ flash-памяти).

Одним ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±Ρ‹Π»ΠΎ отсутствиС Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΈ обСспСчСниС высокой надёТности хранСния β€” Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ питания Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ Π€Π‘, Π° Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ записанными частично (для чтСния доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ записанныС Ρ„Π°ΠΉΠ»Ρ‹). БистСма устойчива ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· строя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ, ΡƒΠ·Π»ΠΎΠ² с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΡƒΠ·Π»ΠΎΠ² хранСния. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ обслуТивания Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π±Π΅Π· остановки Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Π±Π°Π·Π΅ TernFS Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ XTX Markets Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ Π»Π΅Ρ‚ΠΎΠΌ 2023 Π³ΠΎΠ΄Π°, послС ΠΏΠΎΠ»ΡƒΡ‚ΠΎΡ€Π° Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π€Π‘. Π’ сСрСдинС 2024 Π³ΠΎΠ΄Π° всС систСмы машинного обучСния XTX Markets Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° TernFS. Π’ настоящСС врСмя Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 30 тысяч дисков ΠΈ 10 тысяч Flash-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π² Ρ‚Ρ€Π΅Ρ… Π΄Π°Ρ‚Π°Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ…. ΠžΠ±Ρ‰ΠΈΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… оцСниваСтся Π² 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ