Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Iżviluppaturi minn Cloudflare qal dwar ix-xogħol biex tiġi ottimizzata l-prestazzjoni tal-kriptaġġ tad-disk fil-kernel tal-Linux. Bħala riżultat, huma ppreparati irqajja għas-subsistema dm-kripta u Crypto API, li aktar mid-doppju tal-fluss għall-qari u l-kitba fit-test sintetiku, kif ukoll naqqset bin-nofs il-latenza. Meta ttestjat fuq ħardwer reali, l-overhead mill-encryption tnaqqset għal kważi l-livell osservat meta taħdem ma 'diska mingħajr ma tuża l-encryption tad-data.

Cloudflare juża dm-crypt biex jikkripta d-dejta fuq drajvs użati għall-cache tal-kontenut fuq is-CDN. Dm-crypt jaħdem fil-livell tal-apparat tal-blokk u jikkripta t-talbiet tal-kitba tal-I/O u jiddeċifra t-talbiet tal-qari, li jaġixxi bħala saff bejn l-apparat tal-blokk u s-sewwieq tas-sistema tal-fajls.

Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Biex tevalwa l-prestazzjoni ta 'dm-crypt billi tuża l-pakkett I/O tester flessibbli Il-veloċità tal-ħidma b'diviżorji encrypted u mhux encrypted fuq diska RAM li tinsab fir-RAM ġiet imkejla biex jiġu eliminati l-varjazzjonijiet fil-prestazzjoni tad-disk u tiffoka fuq il-prestazzjoni tal-kodiċi. Għal diviżorji mhux encrypted, il-prestazzjoni tal-qari u l-kitba nżammet f'1126 MB / s, iżda meta l-encryption kienet attivata, il-veloċità naqset 7-il darba u ammontaw għal 147 MB/s.

Inizjalment, kien hemm suspett li jintużaw algoritmi ineffiċjenti fil-kriptosistema tal-qalba. Iżda t-testijiet użaw l-algoritmu aes-xts l-aktar mgħaġġel b'256 ċavetta ta 'encryption, li l-prestazzjoni tagħhom meta tħaddem il-"punt ta' referenza cryptsetup" hija aktar minn darbtejn ogħla mir-riżultat miksub meta jiġi ttestjat id-diska RAM. Esperimenti bil-bnadar dm-crypt għall-irfinar tal-prestazzjoni ma taw l-ebda riżultat: meta użaw il-bandiera "--perf-same_cpu_crypt", il-prestazzjoni saħansitra naqset għal 136 MB/s, u meta l-bandiera "--perf-submit_from_crypt_cpus" kienet speċifikat, żdied biss għal 166 MB/s.

Analiżi aktar profonda tal-loġika tax-xogħol uriet li dm-crypt mhix sempliċi daqs kemm tidher - meta tasal talba għall-kitba mis-sewwieq FS, dm-crypt ma tipproċessahx immedjatament, iżda tpoġġiha fil-kju "kcryptd" , li mhux parsed immedjatament, iżda fuq l-okkorrenza mument konvenjenti. Mill-kju, it-talba tintbagħat lill-Linux Crypto API biex twettaq encryption. Iżda peress li l-API Crypto juża mudell ta 'eżekuzzjoni mhux sinkroniku, l-encryption lanqas ma titwettaq immedjatament, iżda billi tevita kju ieħor. Wara li jitlesta l-encryption, dm-crypt jista' jipprova jsolvi t-talbiet pendenti għall-kitba billi juża siġra tat-tiftix aħmar-iswed. Fl-aħħar, ħajt tal-qalba separat għal darb'oħra, b'ċertu dewmien, jiġbor it-talbiet I / O akkumulati u jibgħathom lill-munzell tal-apparat tal-blokk.

Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Meta taqra l-ewwel, dm-crypt iżid talba mal-kju "kcryptd_io" biex tikseb data mid-drajv. Wara xi żmien, id-dejta ssir disponibbli u titqiegħed fil-kju "kcryptd" għad-deċifrar.
Kcryptd jibgħat talba lill-Linux Crypto API, li jiddeċifra l-informazzjoni b'mod asinkroniku. It-talbiet mhux dejjem jgħaddu mill-kjuwijiet kollha, iżda fl-agħar xenarju tal-każ, talba għall-kitba tissetilja fi kjuwijiet sa 4 darbiet, u talba għall-qari sa 3 darbiet. Kull hit fil-kju jintroduċi dewmien, li huwa r-raġuni ewlenija għad-degradazzjoni sinifikanti tal-prestazzjoni tad-dm-crypt.

L-użu tal-kjuwijiet huwa dovut għall-ħtieġa li taħdem fil-kundizzjonijiet ta 'interruzzjonijiet. Fl-2005, meta l-mudell attwali dm-crypt ibbażat fuq kju ġie implimentat, il-Crypto API kien għadu mhux asinkroniku. Wara t-trasferiment tal-Crypto API għal mudell ta 'eżekuzzjoni mhux sinkroniku, essenzjalment bdiet tiġi applikata protezzjoni doppja. Ġew introdotti wkoll kjuwijiet biex jiffrankaw il-konsum tal-munzell tal-qalba, iżda wara ż-żieda tiegħu fl-2014, id-dejta tal-ottimizzazzjoni tilfet ir-rilevanza tagħha. Kju addizzjonali "kcryptd_io" ġie introdott biex jingħeleb konġestjoni li tikkawża stennija ta 'allokazzjoni tal-memorja meta jidħlu numru kbir ta' talbiet. Fl-2015, ġiet introdotta addizzjonalment fażi ta' għażla, peress li t-talbiet ta' kriptaġġ fuq sistemi multiproċessuri setgħu jitlestew barra mill-ordni (minflok aċċess sekwenzjali għad-diska, l-aċċess sar f'ordni każwali, u l-iskedar tas-CFQ ma ħadimx b'mod effiċjenti). Bħalissa, l-issortjar tilef it-tifsira tiegħu ma 'SSDs, u l-iskedar CFQ m'għadux jintuża fil-kernel.

Minħabba li drajvs moderni saru aktar mgħaġġla u aktar intelliġenti, is-sistema ta 'allokazzjoni tar-riżorsi fil-kernel tal-Linux ġiet riveduta u xi sottosistemi ġew iddisinjati mill-ġdid, l-inġiniera ta' Cloudflare miżjud dm-crypt għandu mod ġdid ta 'tħaddim, ħieles mill-użu ta' kjuwijiet bla bżonn u sejħiet asinkroniċi. Il-modalità hija attivata minn bandiera separata "force_inline" u ġġib dm-crypt fil-forma ta 'prokura sempliċi li tikkodifika u jiddeċifra t-talbiet li jkunu deħlin. L-interazzjoni mal-Crypto API ġiet ottimizzata bl-għażla espliċita ta 'algoritmi ta' encryption li jaħdmu f'modalità sinkronika u ma jużawx kjuwijiet ta 'rikjesti. Għal xogħol sinkroniku ma Crypto API kien issuġġerit modulu li jippermettilek tuża FPU / AES-NI għall-aċċelerazzjoni u tibgħat direttament it-talbiet ta 'encryption u decryption.

Bħala riżultat, meta ttestjaw disk RAM, irnexxielna nirduppjaw il-prestazzjoni tad-dm-crypt - il-prestazzjoni żdiedet minn 294 MB / s (2 x 147 MB ​​/ s) għal 640 MB / s, li hija qrib ħafna għall-prestazzjoni ta 'encryption bare (696 MB /s).

Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Fl-ittestjar tat-tagħbija fuq servers reali, l-implimentazzjoni l-ġdida wriet prestazzjoni qrib ħafna tal-konfigurazzjoni li taħdem mingħajr encryption, u li tippermetti encryption fuq servers b'Cloudflare cache ma affettwa l-veloċità tar-rispons bl-ebda mod. Fil-futur, Cloudflare jippjana li jirrilaxxa l-irqajja ppreparati fil-kernel prinċipali tal-Linux, iżda qabel dan se jkollhom bżonn jerġgħu jinħadmu, peress li huma ottimizzati għal ċertu ammont ta 'xogħol u ma jkoprux l-oqsma kollha ta' applikazzjoni, pereżempju, encryption fuq baxx. -apparat inkorporat tal-enerġija.

Cloudflare ħejja garżi li jħaffu b'mod drammatiku l-encryption tad-disk fil-Linux

Sors: opennet.ru

Żid kumment