Дилема на SDN: Мрежа на ядрото на Linux срещу байпас на ядрото

Sujal Das е главен директор по стратегии и маркетинг в Netronome, доставчик на високопроизводителни x86 решения за съвместна обработка на мрежи, сигурност, балансиране на натоварването, виртуализация и SDN.

Ако сме научили нещо в технологичния бизнес през последните 25 години, би било никога да не подценяваме ядрото на Linux. Защо тогава толкова много мрежови компании са били толкова нетърпеливи да заобиколят ядрото на Linux - или по-точно, мрежовия стек на ядрото на Linux? Какво може да е толкова лошо в мрежовите пакетни артерии в ядрото на Linux, което мотивира толкова много от нас да ги заобиколим?

Има две основни причини. Първо, стекът на мрежовото ядро ​​е твърде бавен - и проблемът се задълбочава само с приемането на по-високоскоростни мрежи в сървъри и комутатори (10GbE, 25GbE и 40GbE днес и нарастващи до 50GbE и 100GbE в близко бъдеще) . Второ, работата с мрежи извън ядрото позволява включване на нова технология, без да е необходимо да се променя основният код на ядрото на Linux.

По тези две причини и с допълнителното предимство, че много от байпасните технологии на ядрото са с отворен код и / или са определени от органите по стандартизация, привържениците на байпасните решения продължават да настояват операторите на центрове за данни да ги приемат.

Решения за байпас на ядрото

В миналото сме виждали много решения за байпас на ядрото, най-вече RDMA (отдалечен директен достъп до паметта), TOE (TCP Offload Engine) и OpenOnload. Съвсем наскоро DPDK (Data Plane Development Kit) се използва в някои приложения за заобикаляне на ядрото, а след това има нови нововъзникващи инициативи като FD.io (Fast Data Input Output), базиран на VPP (Vector Packet Processing). Вероятно ще се появят повече в бъдеще.

Технологии като RDMA и TOE създават паралелен стек в ядрото и решават първия проблем (а именно „ядрото е твърде бавно“), докато OpenOnload, DPDK и FD.io (базирани на VPP) преместват мрежата в потребителското пространство на Linux, за да адресират и двете изисквания за скорост и технологични приставки. Когато технологиите се вграждат в потребителското пространство на Linux, се избягва необходимостта от промени в ядрото, като се елиминират допълнителните усилия, необходими за убеждаване на общността на ядрото на Linux за полезността на байпасните технологии и тяхното приемане чрез възходящо в Linux ядрото.

Нетроном

Предизвикателства на байпаса на ядрото

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

Например има изпълнения на Open vSwitch и OpenContrail, които използват DPDK като подход за байпас на ядрото. Внедряванията на DPDK са ограничени по два начина. Първо, трудно е, а понякога и невъзможно да се развиват функции бързо и на крачка с базираните на ядрото софтуерни иновации с отворен код. Второ, въпреки че нивата на производителност и сигурност, необходими на виртуалните машини и приложенията, могат да бъдат доставени, той изисква значителен брой x86 процесорни ядра, намалявайки общата ефективност на инфраструктурата на центъра за данни.

Независимо от това, някои оператори на центрове за данни, които имат може би няколкостотин сървъра за управление и които изпълняват едно приложение, като High Performance Computing или High Frequency Trading clusters, могат да намерят за практично да използват такива паралелни стекове за байпас на ядрото. Същото се отнася и за специални клъстери за съхранение.

Но може ли запушването на мрежовия стек на ядрото да бъде отстранено, без да се прибягва до паралелни байпасни стекове? Да, може. Правилният начин за решаване на двата проблема по-горе би бил да се намерят начини за ускоряване на производителността на мрежовия стек на ядрото прозрачно, използвайки интелигентен мрежов хардуер и без заключване на доставчик.

SmartNIC се стремят да разрешат тези проблеми, без да заобикалят ядрото. SmartNIC са NICS (мрежови интерфейсни карти), които са програмируеми, позволявайки на доставчиците, които предоставят такива продукти, да иновациират сървърния мрежов хардуер със скоростта на софтуера - практическо изискване в съвременната софтуерно дефинирана и активирана NFV инфраструктура на центъра за данни.

Въведете SmartNICS

Netronome SmartNIC предлагат както основни, така и традиционни NIC функции и разширени функции, необходими на доставчиците на облачни центрове за данни и телекомуникационни услуги. Тези разширени функции включват възможността за разтоварване на богата мрежова функционалност, като тази, предоставена от виртуални комутатори и виртуални рутери, използвани в софтуерно дефинирани мрежови среди и оптимизирани за NFV изчислителни сървъри. Възможността за разтоварване на тези компютърно интензивни мрежови функции към SmartNIC носи по-високи нива на производителност и сигурност на виртуалните машини, увеличава броя на приложенията, които могат да бъдат доставени на сървър, и осигурява цялостен тласък в ефективността на центъра за данни. Функциите SmartNIC могат да се развият бързо с иновации в мрежата с отворен код, като например Open vSwitch, OpenStack, OpenContrail и eBPF на проекта IO Visor (разширен филтър за пакети на Бъркли).

Ползите от внедряването на SmartNIC не се ограничават до повишена производителност и по-богат набор от функции. Съществуват и значителни икономии на TCO, тъй като SmartNIC могат да заменят традиционните NIC, използвани в сървърите. SmartNIC се предлагат на конкурентни цени на традиционните NIC и осигуряват значителни икономии чрез освобождаване на ценни ресурси на CPU на сървъра за виртуални машини и приложения, повишавайки ефективността на сървъра. Като се има предвид, че сървърите консумират до 60 процента от общите инфраструктурни разходи на центъра за обработка на данни, възможността да се поддържа по-голямо натоварване на сървър с помощта на SmartNIC обещава значителни икономии.

Привържениците на байпаса на ядрото обичат да твърдят, че необходимата мрежова производителност на сървъра, необходима в SDN и NFV приложения, може да се постигне с помощта на високопроизводителни x86 процесорни ядра и следователно традиционните NIC са всичко, което е необходимо. Но в практически тестове и в реалния живот, механизмите за байпас на ядрото може да се нуждаят от до 24 ядра на процесора, за да получат необходимата производителност в мрежата. Това на практика отнема целия сървър само за работа в мрежа.

Доставчиците на SmartNIC са напълно съгласни, че производителността на мрежата на ядрото е реален проблем, който само ще се влошава, тъй като операторите изграждат центрове за данни, за да отговорят на изискванията на непрекъснато нарастващия брой мобилни и IoT устройства. Но те не вярват, че заобикалянето на ядрото на операционната система решава проблема. По-скоро задачите за интензивна мрежова обработка в мрежовия стек на ядрото на Linux трябва да бъдат разтоварени на SmartNIC по агностичен начин на доставчик, вместо да се използват реализации, които водят до паралелни излишни мрежови стекове.

SmartNIC се справят с тези предизвикателства, разтоварвайки базирани на ядрото изпълнения на мрежови пътеки за данни, налични днес, и бързо се развиват в по-широката общност на Linux с отворен код. Технологиите на стека на ядрото на Linux като eBPF и класификатора на трафика обещават да позволят на доставчиците на SmartNIC като Netronome да се придържат към мрежовия стек на ядрото на Linux и да позволят на операторите на центрове за данни да се мащабират ефективно.

Огромната препоръка от общността на Linux винаги е била да се избягва байпас на ядрото. Подобно на всички основни и прости идеи, тази идея е имала влияние в миналото, важи и днес и ще остане вярна и в бъдеще.

Форумът New Tech предоставя място за изследване и обсъждане на нововъзникващите корпоративни технологии в безпрецедентна дълбочина и широчина. Изборът е субективен, базиран на нашия избор на технологиите, които смятаме, че са важни и представляват най-голям интерес за читателите. не приема маркетингово обезпечение за публикуване и си запазва правото да редактира цялото съдържание. Изпращайте всички запитвания на [email protected]