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

Cloudflare

u Cloudflare programeri su najavili informacije o radu koji rade na optimizaciji performansi enkripcije diska u Linux kernelu, za koje navode da su pripremili zakrpe za podsisteme dm-crypt i Crypto API.

S tim, Sintetičkom testu je dozvoljeno da udvostruči propusni opseg za čitanje i pisanje, kao i prepoloviti kašnjenje. Prilikom testiranja na stvarnim računarima, troškovi šifriranja su smanjeni na gotovo nivo koji se vidi kada se radi s diskom bez korištenja šifriranja podataka.

Interes za poboljšanje enkripcije podaci na disku To je zato što Cloudflare koristi dm-crypt za šifriranje podataka na pogonima koji se koriste za keširanje sadržaja na CDN-u. Dm-crypt radi na nivou blok uređaja i šifrira I/O zahtjeve za pisanje i dešifruje zahtjeve za čitanje, djelujući kao sloj između blok uređaja i drajvera sistema datoteka.

Za procjenu učinka iz dm-crypt koristeći fleksibilni I/O test paket, se mjerio brzinu rada sa šifriranim particijama i nešifrirano na RAM disku koji se nalazi u RAM-u kako bi se eliminisale fluktuacije u performansama diska.

Za nešifrovane particije performanse čitanja i pisanja su ostale na 1126 MB/s, ali kada je šifriranje aktivirano, brzina se smanjila za 7 puta i iznosila je 147 MB/s.

Na početku sumnjalo se na upotrebu neefikasnih algoritama u kriptosistemu kernela. Ali testovi su koristili najbrži algoritam aes-xts sa 256 ključeva za šifriranje, čije su performanse pri pokretanju "cryptsetup benchmark" više od dva puta veće od rezultata dobivenog prilikom testiranja RAM diska.

dm-kripta

Eksperimenti sa dm-crypt zastavicama podešavanje performansi nije uspelo: Kada koristite oznaku –perf-same_cpu_crypt, performanse su se čak smanjile na 136 MB/s, a kada se koristila –perf-submit_from_crypt_cpus zastavica samo su porasle na 166 MB/s.

Dublja analiza logike rada pokazao da dm-crypt nije tako jednostavan kako izgleda.

Kada se od FS drajvera primi zahtev za pisanje, dm-crypt ga ne obrađuje odmah, već ga stavlja u "kcryptd" red, što se ne razume odmah, ali kada se pojavi. Dobro vreme. Iz reda čekanja, zahtjev se šalje Linux Crypto API-ju da izvrši šifriranje.

Kada prvo čita, dm-crypt dodaje “kcryptd_io” u red čekanja zahtjev za prijem podataka od jedinice. Posle vremenom su podaci dostupni i Oni se stavljaju u "kcryptd" red za dešifrovanje.

Kcryptd šalje zahtjev Linux API-ju za šifriranje, koji asinhrono dešifrira informacije. Zahtjevi ne prolaze uvijek kroz sve redove, ali u najgorem slučaju, Zahtjev za pisanje je u redu čekanja do 4 puta i zahtjev za čitanje do 3 puta. Svaki pogodak u redu dovodi do kašnjenja, koji su ključni razlog za značajno smanjenje performansi dm-crypt.

Uzimajući u obzir da su moderni diskovi postali brži i pametniji, sistem raspodjele resursa u Linux kernelu je revidiran i neki podsistemi su redizajnirani, Cloudflare inženjeri su dodali novi način rada u dm-crypt, eliminirajući korištenje dodatnih redova čekanja i asinkronih poziva.

Režim je omogućen posebnom "force_inline" zastavicom i dovodi dm-crypt u oblik jednostavnog proxyja koji šifrira i dešifruje dolazne zahtjeve. Interakcija s Crypto API-jem optimizirana je kroz eksplicitni izbor algoritama za šifriranje koji rade u sinkronom modu i ne koriste redove zahtjeva.

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

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

Izvor: https://blog.cloudflare.com


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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.