Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

Cloudflare'i arendajad rääkinud teatasid tööst, mis keskendub Linuxi tuuma kettasalvestamise krüpteerimise jõudluse optimeerimisele. Tulemuseks on valmistatud patšid alam süsteemile dm-crypt ja Crypto API, mis võimaldasid sünteetilises testis tõsta lugemise ja kirjutamise läbilaskevõimet rohkem kui kaks korda ning poole võrra vähendada viivitusi. Reaalsete seadmetega testimise käigus õnnestus krüpteerimise kulusid vähendada praktiliselt samale tasemele, mis on täheldatud ketta kasutamisel ilma andmete krüpteerimiseta.

Cloudflare kasutab dm-crypt'i andmete krüpteerimiseks salvestites, mida kasutatakse sisu vahemällu salvestamiseks CDN-võrgus. Dm-crypt töötab plokkseadmestikul ja teostab kirjutamise sisendi/väljundi päringute krüpteerimist ning lugemise päringute dekrüpteerimist, olles sillaks plokkseadmestiku ja failisüsteemi draiveri vahel.

Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

dm-crypt'i jõudluse hindamiseks kasutades paketti Flexible I/O tester tehti testimine krüpteeritud ja krüpteerimata osade kiirusest RAM-diskil, mis asub RAM-is, et vältida kettajõudluse kõikumisi ning keskenduda koodi jõudlusele. Krüpteerimata osade lugemise ja kirjutamise jõudlus püsis tasemel 1126 MB/s, kuid krüpteerimise sisselülitamisel langes kiirus 7 korda ja oli 147 MB/s.

Alguses tekkis kahtlus tuuma krüptosüsteemi ebatõhusate algoritmide kasutamises. Kuid testides kasutati kiiremat algoritmi aes-xts 256-bitise krüpteerimise võtmega, mille jõudlus «cryptsetup benchmark'i» käitamisel on üle kahe korda kõrgem kui RAM-diskil testitud tulemus. Eksperimendid dm-crypt'i jõudluse häälestamise lipudega ei andnud tulemusi: lipu «—perf-same_cpu_crypt» kasutamisel langes jõudlus isegi 136 MB/s-ni, samas kui lipu «—perf-submit_from_crypt_cpus» määramisel tõusis see vaid 166 MB/s-ni.

Rohkem süvitsi kaevamine dm-crypti tööloogias näitas, et see ei ole nii lihtne, nagu esmapilgul tundub — failisüsteemi draiverilt saadud kirjutamissoovide puhul ei töötle dm-crypt neid kohe, vaid paneb järjekorda «kcryptd», mis ei töödelda koheselt, vaid sobival hetkel. Järjekorrast saadetakse päring Linux Crypto API-le, et teostada krüpteerimist. Kuna Crypto API kasutab asünkroonset töökorraldust, siis ei toimu krüpteerimine samuti kohe, vaid järgneb veel ühele järjekorrale. Pärast krüpteerimise lõpetamist võib dm-crypt proovida korraldada ootejärjekorras olevaid kirjutamissoove kasutades otsingupuu struktuuri. punane-must. Lõpuks haarab eraldi südamikku voog taas teatud viivitusega kogunenud sisendi/-väljade päringud ja saadab need blokeeringu seadme staaki.

Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

Lugemise puhul lisab dm-crypt esmalt «kcryptd_io» järjekorda päringu andmete saamiseks salvestist. Teatud aja jooksul muutuvad andmed kättesaadavaks ja kantakse «kcryptd» järjekorda dekrüpteerimist varten.
Kcryptd saadab päringu Linux Crypto API-le, mis dekrüpteerib informatsiooni asünkroonselt. Päringud ei läbida alati kõiki järjekordi, kuid halvimatel juhtudel võib kirjutamissoov jääda järjekordadesse kuni 4 korda, samas lugemissoov kuni 3 korda. Iga järjekorda sattumine toob kaasa viivitusi, mis on dm-crypti märgatava jõudluse languse peamine põhjus.

Järjekordade kasutamine tuleneb vajadusest töötada katkestuste tekkimise tingimustes. Aastal 2005, mil rakendati praegune dm-crypti töö mudel järjekordade alusel, ei olnud Crypto API veel asünkroonne. Pärast Crypto API üleminekut asünkroonsetele töömudelitele hakati rakendama põhimõtteliselt kahekordset kaitset. Järjekorrad viidi sisse ka tuuma steki tarbimise kokkuhoiu eesmärgil, kuid pärast steki suurenemist 2014. aastal kaotas see optimeerimine oma olulisuse. Lisajärjekord "kcryptd_io" loodi mäluse saavutamise kitsaskoha ületamiseks, kui saabus suur hulk taotlusi. Aastal 2015 lisati lisafaas sorteerimiseks, kuna krüptimise taotlused mitmetuumalistel süsteemidel võisid lõppeda ilma edastusjärjekorra järgimiseta (kui järjekorras juurdepääs kettale asendati juhusliku juurdepääsuga, samuti ei töötanud CFQ ajakava tõhusalt). Praegu SSD-mäluseadmete kasutamisel sorteerimine kaotas mõtte ning CFQ ajakava ei ole enam tuumas kasutusel.

Arvestades, et tänapäeva mäluseadmed on muutunud kiiremateks ja nutikamateks, on Linuxi tuuma ressursside jaotussüsteem üle vaadatud ning mõned alamsüsteemid on uuesti välja töötatud, Cloudflare'i insenerid lisanud dm-cryptis on uus töörežiim, mis vabastab liigsete järjekordade ja asünkroonsete kutsete kasutamisest. Režiim lülitatakse sisse eraldi lipuga "force_inline" ja viib dm-crypti lihtsa vahendaja vormi, mis krüpteerib ja dekrüpteerib saabuvaid taotlusi. Koostoimed Crypto API-ga on optimeeritud, valides selgelt krüpteerimisalgoritmid, mis töötavad sünkroonses režiimis ja ei kasuta taotluste järjekordi. Crypto API-ga sünkroonse töö jaoks oli on pakutud moodul, mis võimaldab kasutada FPU/AES-NI kiirusenamuse saavutamiseks ning suunab otse krüpteerimis- ja dekrüpteerimistaotlusi läbi.

Lõppkokkuvõttes suudeti RAM-diskil testimisel tõsta dm-crypti jõudlust enam kui kaks korda — jõudlus tõusis 294 MB/s (2 x 147 MB/s) kuni 640 MB/s, mis on väga lähedal puhta krüpteerimise jõudlusele (696 MB/s).

Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

Reaalsetel serveritel koormustestimise käigus näitas uus teostus tulemuslikkust, mis on väga lähedane konfigureerimisele, mis töötab ilma krüpteerimiseta, ja krüpteerimise lubamine serverites, kus on Cloudflare'i vahemälu, ei mõjutanud vastamise kiiruset. Edaspidi kavatseb Cloudflare viia ettevalmistatud plaastrid põhituuma Linuxi koostisosasse, kuid enne seda tuleb neid tõhususe tõstmiseks ümber teha, kuna need on optimeeritud teatud koormuse jaoks ja ei hõlma kõiki kasutusvaldkondi, näiteks krüpteerimist madala võimsusega integreeritud seadmetes.

Ettevõte Cloudflare on valmistanud parandused, mis kiirendavad oluliselt kettakrüptimist Linuxis.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster