Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Cloudflare'i arendajad reported tegevuse läbiviimisest Linuxi tuumadeskriipimise jõudluse optimeerimise alal. Tulemuseks on valmistatud patchid alamsüsteemi dm-crypt ja Crypto API, mis võimaldas sünteetilises testis rohkem kui kaks korda tõsta lugemise ja kirjutamise läbilaskevõimet ning samas ka poole võrra vähendada latentsust. Reaalse riistvara testimisel õnnestus krüptimise ülejääk vähendada praktiliselt tasemele, mida täheldati andmeid krüptimata disks.

Cloudflare kasutab dm-crypt'i andmete krüptimiseks, mis on salvestatud meediumidel, mida kasutatakse sisu vahemällu salvestamiseks CDN-võrgus. Dm-crypt toimib plokkseadmestiku tasemel, tehes kirjutamisse sissetulevate / väljaminevate päringute krüpteerimist ja lugemispäringute dekrüpteerimist, olles plekk seadmestiku ja failisüsteemi draiveri vahel.

Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Dm-crypt'i jõudluse hindamiseks kasutades paketti Flexible I/O tester toimus mõõtmine krüptitud ja krüpteerimata osade töökiirusel RAM-diskil, mis asub RAM-is, et välistada diskide jõudluse kõikumised ja keskenduda koodijõudlusele. Krüpteerimata osade lugemise ja kirjutamise jõudlus püsis 1126 MB/s juures, kuid krüpteerimise aktiveerimisel vähenes kiirus 7 korda ja oli 147 MB/s.

Esialgu tekkis kahtlus, et tuuma krüptosüsteemis kasutatakse ebatõhusaid algoritme. Kuid testides kasutati kõige kiiremaks peetud algoritmi aes-xts 256-bitise šifri võtmega, mille jõudlus "cryptsetup benchmark" käivitamisel oli enam kui kaks korda kõrgem kui saadud RAM-diskis testimise tulemus. Katsetused dm-crypti jõudluse häälestamise lipudega ei andnud tulemusi: lippu „—perf-same_cpu_crypt” kasutades kukkus jõudlus isegi 136 MB/s ning lippu „—perf-submit_from_crypt_cpus” kasutades tõusis vaid 166 MB/s.

Sügavam analüüs näitas, et dm-crypt ei ole nii lihtne, nagu esmalt paistab — kui failisüsteemi draiverilt tuleb kirjutamisjärjekord, ei töötle dm-crypt seda kohe, vaid paneb selle „kcryptd” järjekorda, mis ei tegele sellega kohe, vaid oodates sobivat hetke. Järjekorrast saadetakse päring Linux Crypto API-le šifreerimise läbiviimiseks. Kuna Crypto API kasutab asünkroonset täiustamismudelit, toimub šifreerimine samuti mitte kohe, vaid mööda veel ühte järjekorda. Pärast šifreerimise lõpetamist võib dm-crypt proovida järjestada ootel kirjutamisjärjekorrad kasutades otsingu puu. red-black. Lõpuks haarab tuuma eraldi lõng taas teatud viivitusega kogunenud sissetuleku/väljamineku päringud ja saadab need plokkseadmestiku virna.

Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Lugemise ajal lisab dm-crypt esmalt „kcryptd_io” järjekorda päringu andmete saamiseks seadmel. Ühe hetke pärast saavad andmed kätte ja pannakse „kcryptd” järjekorda dešifreerimiseks.
Kcryptd saadab päringu Linux Crypto API-sse, mis dekrüpteerib teabe asünkroonselt. Päringud ei pruugi alati läbi kõigi järjekordade minna, kuid halvimatel juhtudel võib kirjutamispäring jääda järjekordadesse kuni 4 korda, lugemispäring kuni 3 korda. Iga järjekorda sattumine toob kaasa viivitusi, mis on dm-crypt'i jõudluse märkimisväärse vähenemise peamine põhjus.

Järjekordade kasutamine on tingitud vajadusest töötada katkestuste tekkimise tingimustes. Aastal 2005, mil rakendati praegune dm-crypti töömudel järjekordade põhjal, ei olnud Crypto API veel asünkroonset. Pärast Crypto API üleviimist asünkroonsetesse töömudelite, hakati põhimõtteliselt rakendama topelt kaitset. Järjekorrad loodi ka, et säästa tuumasteki kasutamist, kuid pärast selle suurendamist 2014. aastal kaotasid need optimeerimised olulisuse. Täiendav järjekord „kcryptd_io” lisati, et ületada kitsaskoht, mis põhjustas mälu eraldamise ootamise suure hulga päringute saamisel. 2015. aastal lisati veel sorteerimisfaas, kuna paljude protsessorite süsteemides võis šifreerimisjärjekord lõppeda järgnevate saatmisorderite pidamiseks (diskile juurdepääs toimus järjekorrata, samuti ei töötanud CFQ planeerija efektiivselt). Praegu SSD-seadmete kasutamisel on sorteerimise vajadus kadunud ja CFQ planeerijat ei kasutata enam tuumas.

Arvestades, et tänapäevased salvestusseadmed on muutunud kiiremaks ja nutikamaks, on Linuxi tuuma ressursside jaotamise süsteem üle vaadatud ning mõned alamsüsteemid on ümber kujundatud, Cloudflare'i insenerid lisasid dm-cryptis on uus töörežiim, mis vabastab liigsete järjekordade ja asünkroonsete kutsete kasutamisest. Režiim aktiveeritakse eraldi lipuga „force_inline” ja viib dm-crypti lihtsa proksi kujule, mis šifreerib ja dešifreerib saabuvad päringud. Koostöö Crypto API-ga on optimeeritud, valides konkreetselt šifreerimisalgoritmid, mis töötavad sünkroonse mudelina ja ei kasuta järjekorrad. Sünkroonseteks töötamiseks Crypto API-ga on olnud. pakutud modul, mis võimaldab kasutada FPU/AES-NI kiirendamiseks ja suunab otse krüpteerimise ja dekrüpteerimise päringud.

Kokkuvõttes on RAM-diskis testimisel õnnestunud dm-crypti jõudlust enam kui kaks korda tõsta — jõudlus tõusis 294 MB/s (2 x 147 MB/s) kuni 640 MB/s, mis on väga lähedane puhta šifreerimise jõudlusele (696 MB/s).

Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Reaalsetes serverites testides näitas uus rakendus jõudlust, mis on väga lähedane konfigureerimisele, mis töötab ilma krüpteerimiseta, ja krüpteerimise sisselülitamine Cloudflare'i vahemälu serverites ei mõjutanud vastamisaega. Tulevikus plaanib Cloudflare edastada ette valmistatud plaastrid Linuxi peakoondisse, kuid enne seda tuleb neid ümber töötada, kuna need on optimeeritud konkreetsete koormuste jaoks ega katab kogu kasutusvaldkondi, näiteks krüpteerimist vähese võimsusega integreeritud seadmetes.

Cloudflare on ette valmistanud patše, mis kiirendavad oluliselt ketta šifreerimist Linuxis.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster