Технологія Remote Direct Memory Access в центрах обробки даних

Сучасні центри обробки даних стикаються з бар’єром, який не може бути подоланий лише швидшими процесорами. З масштабуванням навантажень і зменшенням бюджету по затримці, вплив переміщення даних між серверами стає найважливішим чинником у загальному рівні продуктивності. Remote Direct Memory Access, або RDMA, є однією з технологій, що перетворює спосіб переміщення даних і змушує переосмислити деякі давні припущення в мережевій структурі центрів обробки даних.

Ця стаття є першою в короткій серії. Наступні матеріали розглянуть конкретно два основні мережеві з’єднання, які забезпечують RDMA: InfiniBand та RoCE. Тут мета простіша: пояснити, що таке RDMA, чому це зараз важливо і чому воно може бути як потужним, так і незручним для операторів.

Пояснення Remote Direct Memory Access

Remote Direct Memory Access (RDMA) – це технологія мережі центрів обробки даних, яка дозволяє серверам обмінюватися даними безпосередньо між пам’яттю додатків через мережу, обходячи операційну систему та процесор на віддаленій стороні. Це забезпечує нижчу затримку, вищу пропускну здатність і більш передбачувану продуктивність у порівнянні з традиційною TCP/IP мережею.

В основі RDMA лежить можливість одного комп’ютера читати або записувати прямо в пам’ять іншого комп’ютера через мережу, без залучення віддаленого процесора або операційної системи у процес передачі даних.

У традиційному обміні TCP/IP, навіть у швидкому, дані копіюються кілька разів. Вони переходять з NIC у буфери ядра, через стек мережі, у простір користувача і назад на іншій стороні. Кожен етап додає затримку, витрачає цикли процесора і викликає коливання затримки.

RDMA усуває більшість цього шляху. Як тільки з’єднання встановлено і пам’ять зареєстрована, NIC виконує передачу безпосередньо між об’єктами пам’яті додатків. Віддалений процесор не переривається. Ядро не проходить. Результат – дуже низька затримка, висока пропускна здатність і набагато більш передбачувана продуктивність.

Це не магія і не безкоштовно. RDMA переносить відповідальність від операційної системи до додатка та мережі. Це перенесення є джерелом як цінності, так і викликів.

Чому RDMA важливий для сучасних мереж центрів обробки даних

RDMA не новий. Високопродуктивні обчислення (HPC) користуються ним вже десятки років. Що змінилося, так це те, де тепер розташовані “вузькі місця” для постачальників зв’язку і великих підприємств.

Телеко хмари, функції основної мережі, аналітичні конвеєри та AI навантаження залежать від інтенсивної комунікації між серверами. Цей трафік, що рухається схід-захід, переважає повільніші, менш критичні до затримок трафіки південь-північ між центрами обробки даних та Інтернетом. Коли кожна мікросекунда має значення, зменшення затримки на десятки мікросекунд швидко накопичується.

По-друге, процесори дорогі і дедалі рідкісні. Вивантаження переміщення даних з універсальних ядер звільняє ресурси для обробки пакетів, кодування, висновків або логіки керування. Оператори, які розгортають UPF, бази даних або системи повідомлень у великому масштабі, відразу бачать це у зменшенні кількості ядер на навантаження.

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

RDMA проти TCP/IP: як змінюється мережа центрів обробки даних

Найважливіша різниця – в філософії.

Традиційна Ethernet-мережа припускає, що мережа ненадійна, і хости несуть відповідальність за відновлення. TCP утілює цю модель. Він гнучкий, пробачливий, стійкий, але приховує витрати на продуктивність за абстракцією.

RDMA припускає значно більш співпрацююче середовище. Пам’ять повинна бути явно зареєстрована. Доступ до неї управляється під час налаштування з’єднання. Втрата пакетів очікується бути рідкісною, а не нормальною. Надійність часто управляється під або поряд з TCP, або повністю уникається.

З точки зору оператора, це означає, що мережа перестає бути “просто IP”. Затримка, втрата, буферизація та поведінка конгестії раптово стають надзвичайно важливими. Неправильно налаштована буферизація свічу або перевантажене з’єднання, з яким TCP врешті-решт справляється, можуть призвести до зупинки або збоїв у RDMA навантаженнях.

Як CSP та підприємства використовують RDMA в реальних дата-центрах

У великих телекомунікаційних хмарах RDMA дедалі частіше використовується під контролем баз даних та станами. Розподілені бази даних з загальною пам’яттю та системи повідомлень, що базуються на RDMA, мають потенціал для зменшення часу підтвердження під навантаженням. Практичний ефект – більш швидка конвергенція під час подій масштабування та менше каскадних тайм-аутів під час збоїв.

У підприємницьких центрах обробки даних зберігання часто є першою очевидною перевагою. NVMe через Fabrics із RDMA дозволяє траси зберігання досягти затримки, схожої на локальний диск, через мережу. Оператори бачать вищі IOPS з меншим споживанням процесорних ядер з обох сторін – обчислювальної та зберігання.

Інфраструктура AI надає ще один чіткий приклад. Комунікація між GPU під час навчання є надзвичайно чутливою до затримки та коливань. RDMA дозволяє колективним операціям масштабуватися по вузлах без насичення процесорів хостів, тому він став основою в великих навчальних кластерах.

По всіх цих середовищах шаблон один і той же. RDMA не просто робить речі швидшими. Він змінює, які ресурси перевантажені і де проявляються збої.

Виклики RDMA в мережах центрів обробки даних

RDMA не прощає ненадійні мережі. Втрата пакетів, надмірна буферизація та неконтрольовані затримки можуть мати непропорційний вплив, тому проектування та валідація мережі важливіші, ніж коли-небудь.

Операційні інструменти часто є недосконалими в порівнянні з десятиліттями спостереження за TCP. Команди повинні бути готові працювати з метриками на рівні NIC, телеметрією свічів та діагностикою на рівні додатків.

У реальних умовах експлуатації, багато проблем RDMA проявляються навіть до розгортання навантаження. Непослідовні версії прошивки NIC, невідповідні налаштування PCIe, неправильне вирівнювання NUMA або відсутні модулі ядра можуть безшумно погіршувати продуктивність. Тому прийняття RDMA зазвичай підштовхує операторів до більш строгого контролю за підтвердженням безпосереднього доступу до обладнання та керування життєвим циклом апаратного забезпечення.

Зрештою, RDMA забезпечує тіснішу взаємозалежність між додатками та інфраструктурою. Реєстрація пам’яті, глибина черг та вибір транспорту впливають на проектування додатків. Це прийнятно, коли продуктивність є критично важливою, але знижує переносимість і збільшує вартість помилок.

Підсумкові думки

RDMA ставить під сумнів зручні абстрактні шари, які добре служили центрам обробки даних протягом багатьох років. Він торгує загальністю за продуктивність і гнучкістю за визначення. Для постачальників послуг та підприємств, які будують сучасну інфраструктуру, що масштабується, така угода стає все більш виправданою.

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

Вам цікаві продукти Canonical, які підтримують RDMA? Зв’яжіться з нашими експертами сьогодні.

Зв’яжіться з нами сьогодні

Цікавитеся запуском Ubuntu у своїй організації?