Dilema SDN: Jaringan kernel Linux vs. bypass kernel

Sujal Das adalah kepala strategi dan staf pemasaran di Netronome, penyedia solusi pemrosesan bersama x86 berkinerja tinggi untuk jaringan, keamanan, penyeimbangan beban, virtualisasi, dan SDN.

Jika kita telah mempelajari sesuatu dalam bisnis teknologi dalam 25 tahun terakhir, itu tidak akan pernah meremehkan kernel Linux. Lalu, mengapa begitu banyak perusahaan jaringan sangat ingin melewati kernel Linux - atau lebih khusus lagi, tumpukan jaringan kernel Linux? Apa yang salah dengan arteri paket jaringan di kernel Linux yang memotivasi begitu banyak dari kita untuk mem-bypassnya?

Ada dua alasan utama. Pertama, tumpukan jaringan kernel terlalu lambat - dan masalahnya semakin parah dengan penerapan jaringan berkecepatan lebih tinggi di server dan sakelar (10 GbE, 25 GbE, dan 40 GbE hari ini, dan naik menjadi 50 GbE dan 100 GbE dalam waktu dekat) . Kedua, menangani jaringan di luar kernel memungkinkan untuk memasukkan teknologi baru tanpa perlu mengubah kode inti kernel Linux.

Karena dua alasan tersebut, dan dengan keuntungan tambahan bahwa banyak teknologi bypass kernel bersifat open source dan / atau ditentukan oleh badan standar, pendukung solusi bypass terus mendorong operator pusat data untuk mengadopsinya.

Solusi bypass kernel

Kami telah melihat banyak solusi bypass kernel di masa lalu, terutama RDMA (Remote Direct Memory Access), TOE (TCP Offload Engine), dan OpenOnload. Baru-baru ini, DPDK (Data Plane Development Kit) telah digunakan di beberapa aplikasi untuk melewati kernel, dan kemudian muncul inisiatif baru seperti FD.io (Output Input Data Cepat) berdasarkan VPP (Vector Packet Processing). Lebih banyak kemungkinan akan muncul di masa depan.

Teknologi seperti RDMA dan TOE membuat tumpukan paralel di kernel dan memecahkan masalah pertama (yaitu, "kernel terlalu lambat") sementara OpenOnload, DPDK dan FD.io (berdasarkan VPP) memindahkan jaringan ke ruang pengguna Linux untuk mengatasi keduanya kecepatan dan persyaratan plug-in teknologi. Ketika teknologi dibangun di ruang pengguna Linux, kebutuhan akan perubahan pada kernel dihindari, menghilangkan upaya ekstra yang diperlukan untuk meyakinkan komunitas kernel Linux tentang kegunaan teknologi bypass dan penerapannya melalui upstreaming ke dalam kernel Linux.

Netronom

Tantangan pintas kernel

Tantangan yang terkait dengan mengadopsi tumpukan paralel di luar tumpukan jaringan kernel jelas bagi operator pusat data yang ditantang dengan penskalaan infrastruktur mereka ke sejumlah besar server. Dengan tumpukan jaringan paralel muncul daftar keamanan, pengelolaan, ketahanan, penguncian vendor perangkat keras, dan masalah kompatibilitas protokol yang tampaknya tak ada habisnya.

Misalnya, ada implementasi Open vSwitch dan OpenContrail yang menggunakan DPDK sebagai pendekatan pintas kernel. Pelaksanaan DPDK dibatasi dalam dua cara. Pertama, sulit dan terkadang tidak mungkin untuk mengembangkan fitur dengan cepat dan sejalan dengan inovasi perangkat lunak open source berbasis kernel. Kedua, meskipun tingkat kinerja dan keamanan yang dibutuhkan oleh VM dan aplikasi dapat diberikan, hal ini memerlukan sejumlah besar inti CPU x86, yang mengurangi efisiensi keseluruhan infrastruktur pusat data.

Meskipun demikian, beberapa operator pusat data yang mungkin memiliki beberapa ratus server untuk dikelola dan yang menjalankan aplikasi tunggal, seperti klaster Komputasi Kinerja Tinggi atau Perdagangan Frekuensi Tinggi, mungkin merasa praktis untuk menggunakan tumpukan pintas kernel paralel tersebut. Hal yang sama berlaku untuk cluster penyimpanan khusus.

Tetapi dapatkah penyumbatan tumpukan jaringan kernel diperbaiki tanpa menggunakan tumpukan pintas paralel? Ya bisa. Cara yang tepat untuk mengatasi dua masalah di atas adalah dengan menemukan cara untuk mempercepat kinerja tumpukan jaringan kernel secara transparan, menggunakan perangkat keras jaringan cerdas, dan tanpa vendor lock-in.

SmartNIC berusaha untuk memecahkan masalah ini tanpa melewati kernel. SmartNIC adalah NICS (kartu antarmuka jaringan) yang dapat diprogram, memungkinkan vendor yang menyediakan produk tersebut untuk berinovasi perangkat keras jaringan server dengan kecepatan perangkat lunak - persyaratan praktis dalam infrastruktur pusat data yang ditentukan perangkat lunak dan berkemampuan NFV.

Masukkan SmartNICS

Netronome SmartNICs menyediakan fitur NIC dasar atau tradisional dan fitur lanjutan yang dibutuhkan oleh pusat data cloud dan penyedia layanan telekomunikasi. Fitur-fitur canggih ini mencakup kemampuan untuk memindahkan fungsionalitas jaringan yang kaya, seperti yang disediakan oleh sakelar virtual dan perute virtual yang digunakan dalam lingkungan jaringan yang ditentukan perangkat lunak dan server komputasi yang dioptimalkan NFV. Kemampuan untuk memindahkan fungsi jaringan intensif komputasi ini ke SmartNIC membawa tingkat kinerja dan keamanan yang lebih tinggi ke VM, meningkatkan jumlah aplikasi yang dapat dikirimkan per server, dan memberikan peningkatan keseluruhan dalam efisiensi pusat data. Fitur SmartNIC dapat berkembang pesat dengan inovasi jaringan open source, seperti dengan Open vSwitch, OpenStack, OpenContrail, dan eBPF proyek IO Visor (Extended Berkeley Packet Filter).

Manfaat menerapkan SmartNIC tidak terbatas pada peningkatan kinerja dan rangkaian fitur yang lebih kaya. Ada juga penghematan TCO yang signifikan, karena SmartNIC dapat menggantikan NIC tradisional yang digunakan di server. SmartNIC dihargai secara kompetitif untuk NIC tradisional dan memberikan penghematan yang signifikan dengan membebaskan sumber daya CPU server yang berharga untuk VM dan aplikasi, meningkatkan efisiensi server. Mengingat bahwa server menghabiskan sebanyak 60 persen dari total biaya infrastruktur pusat data, kemampuan untuk mendukung beban kerja yang lebih besar per server menggunakan SmartNIC menjanjikan penghematan yang signifikan.

Para pendukung bypass kernel suka berpendapat bahwa kinerja jaringan server yang dibutuhkan dalam aplikasi SDN dan NFV dapat dicapai dengan menggunakan inti CPU x86 berkinerja tinggi, dan oleh karena itu NIC tradisional adalah yang dibutuhkan. Namun dalam tolok ukur praktis dan dalam kehidupan nyata, mekanisme pintas kernel mungkin memerlukan sebanyak 24 inti CPU untuk mendapatkan kinerja jaringan yang diperlukan. Itu praktis memakan seluruh server untuk jaringan saja.

Vendor SmartNIC sepakat sepenuhnya bahwa kinerja jaringan kernel adalah masalah nyata yang hanya akan menjadi lebih buruk karena operator membangun pusat data untuk memenuhi permintaan perangkat seluler dan IoT yang terus meningkat. Tetapi mereka tidak percaya bahwa melewati kernel sistem operasi akan menyelesaikan masalah. Sebaliknya, tugas pemrosesan jaringan intensif di tumpukan jaringan kernel Linux perlu dipindahkan ke SmartNIC dengan cara agnostik vendor, alih-alih menggunakan implementasi yang menghasilkan tumpukan jaringan paralel dan berlebihan.

SmartNIC mengatasi tantangan ini, membongkar implementasi jalur data jaringan berbasis kernel yang tersedia saat ini dan berkembang pesat di komunitas sumber terbuka Linux yang lebih luas. Teknologi tumpukan kernel Linux seperti eBPF dan Pengklasifikasi Lalu Lintas menjanjikan untuk memungkinkan vendor SmartNIC seperti Netronome untuk tetap menggunakan tumpukan jaringan kernel Linux dan memungkinkan operator pusat data untuk menskalakan secara efisien.

Rekomendasi utama dari komunitas Linux adalah untuk menghindari pemintas kernel. Seperti semua ide mendasar dan sederhana, ide ini telah berpengaruh di masa lalu, berlaku hari ini, dan akan tetap benar di masa depan.

Forum Teknologi Baru menyediakan tempat untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihannya subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke [email protected]