Avaliku kasutuse jaoks on vÀlja antud F-Stack 1.24, mis on FreeBSD vÔrgu stack'i redaktsioon, töötades kasutajaruumi ja kasutades DPDK raamistikku maksimaalse jÔudluse saavutamiseks. Projekti on loonud Hiina suurim telekommunikatsiooniettevÔte Tencent ning see on kasutusel nende toodetes ja teenustes. Kood on kirjutatud C keeles ja jagatakse BSD litsentsi alusel. Toetatakse tööd Linuxis ja FreeBSD-s.
F-Stack vĂ”imaldab rakendustes kasutada oma kohalikku vĂ”rgu stack'i, mis ei sĂ”ltu operatsioonisĂŒsteemi vĂ”rgu stack'ist, toimides kasutajaruumi ja töötades otse vĂ”rgu riistvaraga. F-Stack paistab silma lahendusena, mis vĂ”imaldab tĂ”sta vĂ”rgu pĂ€ringute töötlejate jĂ”udlust olukordades, kus Linuxi tuum TCP/IP stack muutub pudelikaelaks ja piirab skaleeritavust â mĂ”nel juhul vĂ”imaldab projekt kordades suurendada töödeldavate vĂ€ikeste vĂ”rgu pĂ€ringute arvu. Teoreetiliselt vĂ”imaldab F-Stack saavutada vĂ”rgu jĂ”udluse piiri, mis on vĂ”imalik kasutatavale vĂ”rgu kaardile.
JĂ”udluse tĂ”stmine saavutatakse, vĂ€listades sellised toimingud nagu vĂ”rgu paketide kopeerimine, niitide ajastamine, katkestuste töötlemine ja sĂŒsteemikĂ”ned. Suhtlemiseks vĂ”rgu kaardiga, mööda operatsioonisĂŒsteemi tuuma liideseid, kasutatakse DPDK (Data Plane Development Kit) raamistikku, mis arendab kogumit teeke madala taseme tööks vĂ”rgu adapteritega. DPDK vĂ”imaldab vĂ€hendada kulusid ja jÀÀda minimaalsesse CPU tsĂŒklite arvusse vĂ”rgu paketide vastuvĂ”tmisel vĂ”i saatmisel.
TCP/IP stack'i funktsionaalsus vastab FreeBSD 13 vĂ”rgu stack'ile ja on vĂ€lja eraldatud sellest operatsioonisĂŒsteemist sĂ”ltumatuks raamatukoguks. Rakenduste arendamiseks saab kasutada standardset POSIX API-d (socket, epoll, kqueue) vĂ”i omaenda programmiliidest, mis pĂ”hineb mikroprotsessidel, lihtsustades vĂ”rgu rakenduste loomist ja vĂ”imaldades keerulisest asĂŒnkroonse pĂ€ringute töötlemise loogikast kĂ”rvale hoiduda.
Projekt toetab F-Stack kasutuselevĂ”ttu mitme protokolli versioonides. serverilt Nginx 1.25.2 ja Redis 6.2.6 andmed, mis nĂ€itavad tavapĂ€rastest kogudest kĂ”rgemat jĂ”udlust, töötades sĂŒsteemi vĂ”rgu tihendi peal.
Uue vÀljaande kÔige mÀrgatavamad muudatused:
- Config.ini konfiguratsioonifailis on lisatud vÔimalus valida KNI (Kernel NIC Interface) ja virtio_user vahel pakettide edastamise transpordiks DPDK-pÔhise pakettide töötlemise rakenduse ja tuuma vahel. KNI jaoks on lisatud vÔimalus kasutada ratelimit.
- Lisatud tugi vÔrgu tihendi seadistuse "net.add_addr_allfibs=1" aktiveerimiseks, et lisada aadresse kÔikidesse marsruuditabelitesse.
- Lisatud API ff_get_traffic, et saadud trafiku saamiseks, nÀiteks QoS (teenuse kvaliteedi) rakendamiseks.
- Lisatud pthread_create ja pthread_join funktsioonid, mis meenutavad POSIX'i sarnaseid funktsioone.
- Lisatud API ff_dpdk_raw_packet_send rakenduse raw-pakettide saatmiseks otse DPDK kaudu, mitte socket'i kaudu.
- Toetatakse VLAN-i automaatset seadistamist, marsruutimist ja poliitikavÔrgu seadistamist.
- Rohkem DPDK versioonile 22.11.6 LTS ĂŒleminekut.
- Nginx'i rakenduses F-Stack on lisatud stream mooduli tugi.
Allikas: opennet.ru
