Cloudflare-udviklere arbejder på programrettelser for at fremskynde diskkryptering på Linux

CloudFlare

masse Cloudflare-udviklere har frigivet information om det arbejde, de laver for at optimere ydeevnen for diskkryptering i Linux-kernen, hvoraf de nævner, at de har forberedt programrettelser til dm-crypt og Crypto API-undersystemerne.

Med dette den syntetiske test fik lov til at fordoble båndbredden til læsning og skrivning, såvel som halvere ventetid. Ved test på rigtige maskiner blev krypteringsomkostningerne reduceret til næsten det niveau, der ses, når man arbejder med en disk uden at bruge datakryptering.

Interesse for at forbedre kryptering data på disken det er fordi Cloudflare bruger dm-crypt til at kryptere data på drev, der bruges til at cache indhold på et CDN. Dm-crypt fungerer på blokenhedsniveau og krypterer I / O-anmodninger om at skrive og dekryptere læseanmodninger, der fungerer som et lag mellem blokkenheden og filsystemdriveren.

At evaluere præstation dm-crypt ved hjælp af den fleksible I / O-testpakke, se målte hastigheden på arbejdet med krypterede partitioner og ikke krypteret på en RAM-disk placeret i RAM for at eliminere udsving i diskydelsen.

For ukrypterede partitioner forblev læse- og skriveydelsen på 1126 MB / s, men når kryptering blev slået til, faldt hastigheden 7 gange til 147 MB ​​/ s.

I begyndelsen brugen af ​​ineffektive algoritmer blev mistænkt i kernens kryptografiske system. Men testene brugte den hurtigere aes-xts-algoritme med 256 krypteringsnøgler, hvis ydeevne ved kørsel af "cryptsetup benchmark" er mere end to gange højere end resultatet opnået ved test af RAM-disken.

dm-krypt

Eksperimenterne med dm-crypt-flag at justere ydeevne fungerede ikke: Når –perf-same_cpu_crypt-flag blev brugt, faldt ydeevnen endda til 136 MB / s, og når –perf-submit_from_crypt_cpus-flag blev brugt, steg den kun til 166 MB / s.

En dybere analyse af arbejdets logik viste, at dm-crypt ikke er så simpelt som det ser ud.

Når en skriveanmodning modtages fra FS-controlleren, behandler dm-crypt det ikke med det samme, men sætter den i "kcryptd" -køen, hvilket ikke forstås med det samme, men når der sker en god tid. Fra køen sendes anmodningen til Linux Crypto API til kryptering.

Når du læser først, køber dm-crypt køer "kcryptd_io" en anmodning om at modtage data fra enheden. derefter i et stykke tid er dataene tilgængelige og de står i kø "kcryptd" til dekryptering.

Kcryptd sender en anmodning til Linux Encryption API, som dekrypterer informationen asynkront. Anmodninger går ikke altid gennem alle køer, men i værste fald, skriveanmodning indstilles til køer op til 4 gange og læseanmodningen op til 3 gange. Hvert hit i halen fører til forsinkelser, som er hovedårsagen til et markant fald i dm-crypt-ydeevne.

I betragtning af at moderne drev er blevet hurtigere og smartere, er ressourcetildelingssystemet i Linux-kernen blevet revideret og nogle delsystemer er blevet redesignet, Cloudflare-ingeniører har tilføjet en ny driftstilstand til dm-crypt, hvilket eliminerer brugen af ​​yderligere køer og asynkrone opkald.

Tilstanden er aktiveret af et separat "force_inline" flag og tager dm-krypt i form af en simpel proxy, der krypterer og dekrypterer indgående anmodninger. Interaktion med Crypto API er optimeret gennem et eksplicit valg af krypteringsalgoritmer De fungerer i synkron tilstand og bruger ikke anmodningskøer.

Ved test af belastningen på ægte servere viste den nye implementering ydeevne meget tæt på den konfiguration, der fungerer uden kryptering, og inkluderingen af ​​kryptering på servere med Cloudflare-cache påvirkede ikke responshastigheden.

I fremtiden, Cloudflare planlægger at overføre de forberedte programrettelser til den vigtigste Linux-kerne, men før det skal de ændres, da de er optimeret til en bestemt belastning og ikke dækker alle anvendelsesområder.

kilde: https://blog.cloudflare.com


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.