Cloudflare programeri rade na zakrpama kako bi ubrzali šifriranje diska na Linuxu

Cloudflare

u Cloudflare programeri su objavili informacije o poslu koji rade na optimizaciji performansi šifriranja diska u Linux jezgri, za koje spominju da su ih pripremili zakrpe za dm-crypt i Crypto API podsisteme.

S tim, sintetičkom testu dozvoljeno je udvostručiti propusnost za čitanje i pisanje, kao i prepoloviti kašnjenje. Prilikom testiranja na stvarnim mašinama, troškovi šifriranja smanjeni su na gotovo nivo viđen pri radu s diskom bez upotrebe šifriranja podataka.

Interes za poboljšanje šifriranja podaci na disku to je zato što Cloudflare koristi dm-crypt za šifriranje podataka na pogonima koji se koriste za predmemoriranje sadržaja na CDN-u. Dm-crypt radi na razini blok uređaja i šifrira I / O zahtjeve za pisanje i dešifriranje zahtjeva za čitanje, djelujući kao sloj između blok uređaja i upravljačkog programa sistema datoteka.

Za procjenu učinka dm-crypt pomoću fleksibilnog I / O test paketa, sIzmjerio sam brzinu rada s šifriranim particijama i nije šifrirano na RAM disku koji se nalazi u RAM-u kako bi se eliminirale fluktuacije u performansama diska.

Za nešifrirane particije performanse čitanja i pisanja ostale su na 1126 MB / s, ali kada je šifriranje uključeno, brzina je pala 7 puta na 147 MB ​​/ s.

Na početku sumnjalo se na upotrebu neefikasnih algoritama u kriptografskom sistemu jezgra. No, testovi su koristili brži aes-xts algoritam s 256 ključeva za šifriranje, čije su performanse prilikom pokretanja "cryptsetup benchmarka" više od dva puta veće od rezultata dobijenih testiranjem RAM diska.

dm-kripta

Eksperimenti sa zastavicama dm-kripte prilagodba performansi nije uspjela: Kada je korištena zastavica –perf-same_cpu_crypt, izvedba se čak smanjila na 136MB / s, a kada je korištena oznaka –perf-submit_from_crypt_cpus, samo se povećala na 166MB / s.

Dublja analiza logike rada pokazao je da dm-kripta nije tako jednostavna kako izgleda.

Kada se zahtjev za pisanje primi od FS kontrolera, dm-crypt ga ne obrađuje odmah, već ga stavlja u red "kcryptd", što se ne razumije odmah, već kada se dogodi dobar trenutak. Iz reda se zahtjev šalje Linux Crypto API-ju za šifriranje.

Pri prvom čitanju, dm-kripta stavlja u red "kcryptd_io" zahtjev za primanje podataka iz jedinice. Posle podaci su neko vrijeme dostupni i stavljeni su u red "kcryptd" za dešifriranje.

Kcryptd šalje zahtjev Linux Encryption API-ju, koji dešifrira informacije asinhrono. Zahtjevi ne prolaze uvijek kroz sve redove, ali u najgorem slučaju, zahtjev za pisanje postavlja se na redove do 4 puta i zahtjev za čitanje do 3 puta. Svaki udarac u rep dovodi do kašnjenja, koji su ključni razlog značajnog smanjenja performansi dm-kripte.

S obzirom da su moderni pogoni postali brži i pametniji, revidiran je sistem raspodjele resursa u Linux jezgri i neki podsistemi su redizajnirani, Cloudflare inženjeri dodali su novi način rada na dm-crypt, eliminirajući upotrebu dodatnih redova i asinhrone pozive.

Režim je omogućen odvojenom zastavicom "force_inline" i uzima dm-kriptu u obliku jednostavnog proxyja koji šifrira i dešifrira dolazne zahtjeve. Interakcija s Crypto API optimizirana je eksplicitnim izborom algoritama šifriranja Djeluju u sinhronom načinu rada i ne koriste redove zahtjeva.

Prilikom testiranja opterećenja na stvarnim serverima, nova implementacija pokazala je performanse vrlo bliske konfiguraciji koja radi bez šifriranja, a uključivanje šifriranja na serverima s Cloudflare predmemorijom nije utjecalo na brzinu odgovora.

U budućnosti, Cloudflare planira prenijeti pripremljene zakrpe na glavno Linux jezgro, ali prije toga će ih trebati modificirati, jer su optimizirani za određeno opterećenje i ne pokrivaju sva područja primjene.

Izvor: https://blog.cloudflare.com


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena.

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.