+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Facebook виклала у відкритий доступ вихідний код програмної бібліотеки Katran, яку компанія використовує для балансування навантаження на мережу своєї інфраструктури.

Facebook виклала у відкритий доступ вихідний код програмної бібліотеки Katran, яку компанія використовує для балансування мережного навантаження своєї інфраструктури.

Facebook виклала у відкритий доступ вихідний код програмної бібліотеки Katran, яку компанія використовує для балансування мережного навантаження своєї інфраструктури. Вона також усуває цикли активного очікування за відсутності вхідних пакетів.

Katran використовує ідеї двох розробок в області проектування ядра: шляхів мережевих даних eXpress Data Path (XDP) і віртуальної машини eBPF.

Розподіл навантаження всередині мережі

Для охоплення соціальної мережі Facebook встановила по всьому світу точки присутності, що виконують роль проксі для основних серверів компанії. Все обладнання має працювати як єдине ціле, поступово розподіляючи безліч запитів. Зазвичай завдання вирішується за допомогою віртуальної IP-адреси (VIP), з якого пакети даних розподіляються між серверами.

Процесом керує балансувальник завантаження L4LB, що направляє пакети так, щоб дані від одного користувача потрапили на один сервер. Його продуктивність вкрай важлива, оскільки він працює зі всією вхідною інформацією.

Для вимірювання пропускної спроможності застосовується одиниця pps (peak packets per second). Зазвичай L4LB реалізується апаратно, з використанням ASIC і масивів FPGA, що дозволяють розвантажити центральний процесор. Однак цей спосіб обмежує гнучкість системи.

Переваги Katran

Новий балансувальник мав вирішувати чотири головні завдання:

  • можливість запускати L4LB на серверах Linux;
  • паралельна робота з іншими службами для більш рівномірного розподілу обчислювального навантаження;
  • швидкі та безболісні модернізація та обслуговування;
  • легкий доступ до налаштувань зі стандартним інструментарієм.

L4LB першого покоління не відповідав деяким критеріям. Для його запуску були потрібні виділені сервери, що збільшувало навантаження на мережу

Katran вирішує проблему за допомогою XDP. Ця технологія забезпечує швидкий, програмований шлях передачі даних. Система не вдається до методу обходу ядра і працює в поєднанні з мережним стеком Linux. Таким чином балансувальник запускається паралельно з іншими процесами на сервері без шкоди продуктивності.

Віртуальна машина eBPF забезпечує гнучкий і ефективний спосіб взаємодії з ядром Linux. Її особливість — у розширенні функціональності за рахунок запуску програм користувача в певних точках ядра.

За словами розробників, новий L4LB допоможе істотно знизити навантаження на обладнання, збільшити швидкодію та енергоємність мережі, а відкритий вихідний код Katran дозволить широко використовувати його можливості.

Facebook не вперше радує співтовариство публікацією вихідного коду: у 2016 році компанія відкрила доступ до коду інструменту розпізнавання зображень, а в 2018 — розпізнавання мови.

Інші новини

Найкраща ціна