Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Sviluppatori da Cloudflare hà dettu nantu à u travagliu fattu per ottimizà e prestazioni di a crittografia di u discu in u kernel LinuxIn cunsequenza, sò stati preparati i seguenti: patchs per u sottosistema dm-crypt è Crypto API, chì hà permessu di più di duppià u throughput di lettura è scrittura in a prova sintetica, è ancu di metà latenza. Quandu a prova nantu à u hardware reale, l'overhead di criptografia hè stata ridutta à quasi u livellu osservatu quandu si travaglia cù un discu senza utilizà a criptografia di dati.

Cloudflare usa dm-crypt per criptà e dati nantu à i dispositi di almacenamiento utilizati per cache u cuntenutu in u CDN. Dm-crypt opera à u livellu di u dispositivu di bloccu è cripta e richieste di scrittura I / O è decripta e richieste di lettura, agiscenu cum'è una capa trà u dispositivu di bloccu è u driver di u sistema di fugliale.

Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Per evaluà u rendiment di dm-crypt utilizendu u pacchettu Tester I/O flexible Avemu misuratu a velocità di travaglià cù partizioni criptate è micca criptate in un discu RAM situatu in RAM per eliminà i fluttuazioni in u rendiment di u discu è fucalizza nantu à u rendiment di codice. Per partizioni micca criptate, a prestazione di lettura è scrittura restava à 1126 MB/s, ma a velocità diminuì quandu a criptografia era attivata. 7 volte è era 147 MB/s.

À u primu, suspettu suscitatu annantu à l'usu di algoritmi inefficienti in u criptu di u kernel. Ma i testi anu utilizatu l'algoritmu più veloce, aes-xts, cù 256 chjavi di criptografia, chì a prestazione quandu eseguisce u "cryptsetup benchmark" hè più di duie volte più altu di u risultatu ottenutu quandu pruvate un discu RAM. L'esperimenti cù i bandieri dm-crypt per a sintonizazione di u rendiment ùn anu micca datu risultati: quandu si usa a bandiera "--perf-same_cpu_crypt", a prestazione hè ancu diminuita à 136 MB / s, è quandu si specifica a bandiera "--perf-submit_from_crypt_cpus" aumentava solu. à 166 MB/s.

Un'analisi più apprufundita di a logica hà rivelatu chì dm-crypt ùn hè micca cusì simplice cum'è pare. Quandu una dumanda di scrittura vene da u driver di u sistema di fugliali, dm-crypt ùn a processa micca subitu, ma a mette in una coda "kcryptd", chì ùn hè micca analizata subitu, ma quandu u mumentu hè ghjustu. Da quì, a dumanda hè mandata à Linux L'API Crypto esegue a crittografia. Tuttavia, postu chì l'API Crypto usa un mudellu d'esecuzione asincrona, a crittografia ùn hè micca eseguita immediatamente, ma bypassa un'altra coda. Dopu chì a crittografia hè cumpleta, dm-crypt pò pruvà à urdinà e richieste di scrittura pendenti aduprendu un arburu di ricerca. rossu-neru. À a fine, un filu di kernel separatu di novu, cù un certu ritardu, coglie e dumande I / O accumulate è li manda à a pila di u dispositivu di bloccu.

Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Quandu leghje, dm-crypt aghjusta prima una dumanda à a fila "kcryptd_io" per riceve dati da u drive. Dopu qualchì tempu, i dati sò dispunibuli è sò posti in a fila "kcryptd" per a decifrazione.
Kcryptd manda una dumanda à Linux API crittografiche chì decifranu i dati in modu asincronu. E richieste ùn passanu micca sempre per tutte e code, ma in u peghju di i casi, una richiesta di scrittura si blocca in e code finu à quattru volte, è una richiesta di lettura finu à trè volte. Ogni colpu di coda introduce latenza, chì hè a ragione principale di a significativa degradazione di e prestazioni di dm-crypt.

L'usu di fila hè duvuta à a necessità di travaglià in e cundizioni induve l'interruzzioni sò. In u 2005, quandu l'attuale mudellu operativu basatu in fila di dm-crypt hè statu implementatu, l'API Crypto ùn era ancu asincrona. Dopu chì l'API Crypto hè stata trasferita à un mudellu di esecuzione asincrona, essenzialmente doppia prutezzione hà cuminciatu à esse aduprata. Queues hè statu ancu introduttu per salvà u cunsumu di a pila di kernel, ma dopu à u so aumentu in 2014, sti ottimisazioni persu a so rilevanza. Una fila addiziale "kcryptd_io" hè stata introdutta per superà u collu di bottiglia chì risulta in attesa di l'allocazione di memoria quandu un gran numaru di richieste arrivanu. In u 2015, una fase di classificazione supplementaria hè stata introdutta, postu chì e richieste di criptografia in sistemi multiprocessori puderanu esse cumplette fora di l'ordine (invece di l'accessu sequenziale à u discu, l'accessu hè statu realizatu in ordine aleatoriu, è u pianificatore CFQ ùn hà micca travagliatu in modu efficiente). Attualmente, quandu si usanu unità SSD, a classificazione hà persu u so significatu, è u scheduler CFQ ùn hè più utilizatu in u kernel.

À misura chì i dispusitivi di almacenamentu muderni diventanu più veloci è più intelligenti, u sistema di allocazione di risorse in u kernel Linux hè statu rivisu è certi sottosistemi sò stati riprogettati, l'ingegneri di Cloudflare aghjuntu dm-crypt hà un novu modu operativu chì elimina l'usu di file innecessarii è chjamate asincrone. U modu hè attivatu da una bandiera separata "force_inline" è porta dm-crypt à a forma di un proxy simplice chì cripta è decripta e richieste entrate. L'interazzione cù l'API Crypto hè stata ottimizzata scegliendu esplicitamente algoritmi di criptografia chì operanu in modu sincronu è ùn utilizanu file di richieste. Per travaglià in sincronia cù l'API Crypto ci era prupostu un modulu chì vi permette di utilizà FPU / AES-NI per l'accelerazione è invià direttamente e richieste di criptografia è decifrazione.

In u risultatu, durante a prova di un discu RAM, era pussibule più di duppià u rendiment di dm-crypt - u rendiment aumentatu da 294 MB / s (2 x 147 MB ​​/ s) à 640 MB / s, chì hè assai vicinu à a prestazione di crittografia nuda (696 MB / s).

Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Durante e prove di carica nantu à i servitori veri, a nova implementazione hà dimustratu prestazioni assai vicine à una cunfigurazione chì funziona senza crittografia, è l'attivazione di a crittografia nantu à i servitori cù a cache Cloudflare ùn hà avutu alcun impattu nantu à u tempu di risposta. Cloudflare prevede di integrà sti patch in u core core in u futuru. Linux, ma prima di quessa averanu bisognu di esse rielaborati, postu chì sò ottimizzati per una carica di travagliu specifica è ùn coprenu micca tutti i campi d'applicazione, per esempiu, a crittografia nantu à i dispositivi integrati di bassa putenza.

Cloudflare hà publicatu patch chì acceleranu dramaticamente a crittografia di u discu. Linux

Source: opennet.ru

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster