Dezvoltatorii Cloudflare lucrează la patch-uri pentru a accelera criptarea discului pe Linux

Cloudflare

L Dezvoltatorii Cloudflare au lansat informații despre munca pe care o fac pentru a optimiza performanțele de criptare a discului în nucleul Linux, despre care menționează că au pregătit patch-uri pentru subsistemele dm-crypt și Crypto API.

Cu ce, testului sintetic i s-a permis să dubleze lățimea de bandă pentru citit și scris, precum și înjumătățiți latența. La testarea pe mașini reale, cheltuielile de criptare au fost reduse la aproape nivelul observat atunci când lucrați cu un disc fără a utiliza criptarea datelor.

Interes în îmbunătățirea criptării date pe disc este pentru că Cloudflare folosește dm-crypt pentru a cripta datele de pe unitățile utilizate pentru a ascunde conținutul pe un CDN. Dm-crypt funcționează la nivelul dispozitivului de bloc și criptează solicitările I / O pentru a scrie și decripta cererile de citire, acționând ca un strat între dispozitivul de bloc și driverul sistemului de fișiere.

Pentru a evalua performanța dm-crypt folosind pachetul de test flexibil I / O, sAm măsurat viteza de lucru cu partiții criptate și necriptat pe un disc RAM situat în RAM pentru a elimina fluctuațiile de performanță ale discului.

Pentru partițiile necriptate, performanța de citire și scriere a rămas la 1126 MB / s, dar când criptarea a fost activată, viteza a scăzut de 7 ori la 147 MB ​​/ s.

La început, a fost suspectată utilizarea algoritmilor ineficienți în sistemul criptografic de nucleu. Dar testele au folosit algoritmul aes-xts mai rapid cu 256 de chei de criptare, a căror performanță atunci când rulează „benchmark-ul cryptsetup” este de peste două ori mai mare decât rezultatul obținut la testarea discului RAM.

dm-crypt

Experimentele cu steaguri dm-crypt pentru a regla performanța nu a funcționat: Când s-a folosit steagul –perf-same_cpu_crypt, performanța a scăzut chiar la 136MB / s, iar când s-a folosit steagul –perf-submit_from_crypt_cpus a crescut doar la 166MB / s.

O analiză mai profundă a logicii muncii a arătat că dm-crypt nu este atât de simplu așa cum se pare.

Când se primește o cerere de scriere de la controlerul FS, dm-crypt nu o procesează imediat, ci o pune pe coada „kcryptd”, care nu este înțeleasă imediat, dar când apare un moment bun. Din coadă, cererea este trimisă la Linux Crypto API pentru criptare.

Când citiți mai întâi, cozile dm-crypt „kcryptd_io” o cerere de primire a datelor de la unitate. atunci în timp, datele sunt disponibile și sunt în coadă „kcryptd” pentru decriptare.

Kcryptd trimite o cerere către Linux Encryption API, care decriptează informațiile în mod asincron. Solicitările nu trec întotdeauna prin toate cozile, dar în cel mai rău caz, cererea de scriere este setată pe cozi de până la 4 ori și cererea de citire de până la 3 ori. Fiecare lovitură în coadă duce la întârzieri, care sunt motivul cheie pentru o scădere semnificativă a performanței dm-crypt.

Având în vedere că unitățile moderne au devenit mai rapide și mai inteligente, sistemul de alocare a resurselor din nucleul Linux a fost revizuit și unele subsisteme au fost reproiectate, Inginerii Cloudflare au adăugat un nou mod de operare la dm-crypt, eliminând utilizarea cozilor suplimentare și a apelurilor asincrone.

Modul este activat de un steag separat "force_inline" și preia dm-crypt sub forma unui proxy simplu care criptează și decriptează cererile primite. Interacțiunea cu Crypto API a fost optimizată printr-o alegere explicită a algoritmilor de criptare Acestea funcționează în mod sincron și nu folosesc cozi de solicitare.

La testarea încărcării pe servere reale, noua implementare a arătat performanțe foarte apropiate de configurația care funcționează fără criptare, iar includerea criptării pe servere cu cache Cloudflare nu a afectat viteza de răspuns.

In viitor, Cloudflare intenționează să transfere patch-urile pregătite în nucleul principal Linux, dar înainte de aceasta vor trebui modificate, deoarece sunt optimizate pentru o anumită sarcină și nu acoperă toate domeniile de aplicare.

Fuente: https://blog.cloudflare.com


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.