Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Bahlahisi ba tsoang Cloudflare bolelletsoe mabapi le ho etsa mosebetsi oa ho ntlafatsa ts'ebetso ea disk encryption ho Linux kernel. Ka lebaka leo, ba ne ba itokisitse likotla bakeng sa subsystem dm-crypt le Crypto API, e entseng hore ho khonehe ho feta habeli palo ea ho bala le ho ngola tlhahlobo ea maiketsetso, hammoho le ho fokotsa latency. Ha e ne e lekoa ho hardware ea 'nete, li-encryption overhead li ile tsa fokotsoa hoo e batlang e le boemo bo hlokometsoeng ha u sebetsa le disk ntle le ho ngolisoa ha data.

Cloudflare e sebelisa dm-crypt ho encrypt data ho lisebelisoa tsa polokelo tse sebelisetsoang ho boloka litaba tsa CDN. Dm-crypt e sebetsa boemong ba sesebelisoa sa block le li-encrypts ngola likopo tsa I / O le ho hlakola likopo tsa ho bala, tse sebetsang e le lera lipakeng tsa sesebelisoa sa block le mokhanni oa sistimi ea faele.

Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Ho lekola ts'ebetso ea dm-crypt u sebelisa sephutheloana Teko e bonolo ea I/O Re ile ra lekanya lebelo la ho sebetsa ka li-partitions tse patiloeng le tse sa ngolisoang ho RAM disk e ho RAM ho felisa ho feto-fetoha ha ts'ebetso ea disk le ho tsepamisa maikutlo ts'ebetsong ea khoutu. Bakeng sa likarolo tse sa ngolisoang, ts'ebetso ea ho bala le ho ngola e ile ea lula ho 1126 MB / s, empa lebelo le ile la fokotseha ha encryption e nolofalitsoe. Makhetlo a 7 mme e fihla ho 147 MB/s.

Qalong, ho ile ha hlaha lipelaelo mabapi le tšebeliso ea li-algorithms tse sa sebetseng ho kernel cryptosystem. Empa liteko li sebelisitse algorithm e potlakileng haholo, aes-xts, e nang le linotlolo tsa encryption tse 256, eo ts'ebetso ea eona ha e sebelisa "cryptsetup benchmark" e fetang habeli sephetho se fumanoeng ha ho lekoa RAM disk. Liteko ka lifolakha tsa dm-crypt bakeng sa tokiso ea ts'ebetso ha lia ka tsa hlahisa litholoana: ha u sebelisa folakha ea "--perf-same_cpu_crypt", ts'ebetso e bile e theohile ho isa ho 136 MB/s, mme ha ho hlakisoa "--perf-submit_from_crypt_cpus" e ile ea eketseha feela. ho fihla ho 166 MB/s.

Tlhahlobo e tebileng ea mohopolo oa ts'ebetso e bonts'itse hore dm-crypt ha e bonolo joalo ka ha e bonahala - ha kopo ea ho ngola e fihla ho tsoa ho mokhanni oa FS, dm-crypt ha e e sebetse hanghang, empa e e beha moleng oa "kcryptd", eo ha e aroloe hang-hang, empa nakong e loketseng. Ho tloha moleng, kopo e romelloa ho Linux Crypto API ho etsa encryption. Empa kaha Crypto API e sebelisa mohlala oa ts'ebetso ea asynchronous, encryption le eona ha e etsoe hang-hang, empa e feta queue e 'ngoe. Kamora hore encryption e phetheloe, dm-crypt e ka leka ho hlophisa likopo tse emetseng tsa ho ngola ka sefate sa ho batla bokhubelu. Qetellong, khoele e arohaneng ea kernel hape, ka tieho e itseng, e nka likopo tsa I / O tse bokelletsoeng ebe e li romella ho sesebelisoa sa block block.

Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Ha u bala, dm-crypt e qala ka ho eketsa kopo moleng oa "kcryptd_io" ho amohela data ho tsoa ho drive. Kamora nako e itseng, data e ea fumaneha 'me e beoa moleng oa "kcryptd" bakeng sa ho hlakoloa.
Kcryptd e romella kopo ho Linux Crypto API, e hlakolang tlhahisoleseling ka mokhoa o lumellanang. Likōpo ha li tsamaee ka linako tsohle, empa boemong bo bobe ka ho fetisisa, kopo ea ho ngola e qetella e le meleng ho fihlela makhetlo a 4, le kopo ea ho bala ho fihlela makhetlo a 3. E 'ngoe le e' ngoe e otlang moleng e baka tieho, e leng lebaka le ka sehloohong la ho fokotseha ho hoholo ha ts'ebetso ea dm-crypt.

Tšebeliso ea mela e bakoa ke tlhokahalo ea ho sebetsa maemong ao ho nang le litšitiso. Ka 2005, ha mokhoa oa hona joale oa ho sebetsa oa dm-crypt o thehiloeng ho queue o ne o kengoa ts'ebetsong, Crypto API e ne e e-s'o lumellane. Ka mor'a hore Crypto API e fetisetsoe ho mokhoa oa ho bolaoa ha asynchronous, ha e le hantle tšireletso e habeli e ile ea qala ho sebelisoa. Mela e ile ea hlahisoa hape ho boloka tšebeliso ea kernel stack, empa kamora keketseho ea eona ka 2014, lintlafatso tsena li ile tsa lahleheloa ke bohlokoa ba tsona. Ho ile ha hlahisoa lethathamo le leng la "kcryptd_io" ho hlola botlolo e bakang ho emela kabo ea mohopolo ha palo e kholo ea likopo e fihla. Ka selemo sa 2015, ho ile ha hlahisoa karolo e 'ngoe ea ho hlopha, kaha likopo tsa encryption ho litsamaiso tsa multiprocessor li ne li ka phethoa ntle le tatellano (ho e-na le phihlello ea tatellano ea disk, phihlello e entsoe ka tatellano e sa reroang, mme kemiso ea CFQ ha ea ka ea sebetsa hantle). Hajoale, ha u sebelisa li-drive tsa SSD, ho hlopha ha ho sa na moelelo, 'me kemiso ea CFQ ha e sa sebelisoa kernel.

Ha ho nahanoa hore likoloi tsa sejoale-joale li se li potlakile ebile li bohlale, sistimi ea kabo ea lisebelisoa ho Linux kernel e ntlafalitsoe mme lits'ebetso tse ling li entsoe bocha, baenjiniere ba Cloudflare. eketsa dm-crypt e na le mokhoa o mocha oa ts'ebetso o felisang ts'ebeliso ea mela e sa hlokahaleng le mehala ea asynchronous. Mokhoa ona o lumelloa ke folakha e arohaneng "force_inline" 'me e tlisa dm-crypt ka mokhoa oa proxy e bonolo e koalang le ho hlakola likōpo tse kenang. Ho sebelisana le Crypto API e ntlafalitsoe ka ho khetha ka ho hlaka li-algorithms tsa encryption tse sebetsang ka mokhoa oa synchronous mme li sa sebelise mela ea likopo. Ho sebetsa synchronously le Crypto API ho ne ho sisintsweng mojule o o lumellang ho sebelisa FPU/AES-NI bakeng sa ho potlakisa le ho fetisetsa ka kotloloho likopo tsa encryption le decryption.

Ka lebaka leo, ha ho hlahlojoa RAM disk, ho ne ho ka khoneha ho feta habeli ts'ebetso ea dm-crypt - tshebetso e eketsehile ho tloha 294 MB / s (2 x 147 MB ​​/ s) ho 640 MB / s, e leng haufi haholo le ts'ebetso ea encryption e se nang letho (696 MB /s).

Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Ha ho lekoa mojaro ho li-server tsa 'nete, ts'ebetso e ncha e bonts'itse ts'ebetso e haufi haholo le tlhophiso e sebetsang ntle le encryption, mme ho nolofalletsa ho kenyelletsa li-server tse nang le cache ea Cloudflare ha ho na phello ho lebelo la karabo. Nakong e tlang, Cloudflare e rera ho fetisetsa li-patches tse lokiselitsoeng ho Linux kernel e kholo, empa pele ho moo li tla hloka ho tsosolosoa, kaha li ntlafalitsoe bakeng sa mojaro o itseng 'me ha li koahele likarolo tsohle tsa kopo, mohlala, encryption ka tlaase. - lisebelisoa tse kentsoeng ka matla.

Cloudflare e lokisitse li-patches tse potlakisang ho ngolisoa ha disk ho Linux

Source: opennet.ru

Eketsa ka tlhaloso