Cloudflare e lokollotse di-patches tse potlakisang ho encryption ea disk haholo. Linux

Bahlahisi ba tsoang Cloudflare bolelletsoe о проведении работы по оптимизации производительности дискового шифрования в ядре Linux. В результате были подготовлены 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 lokollotse di-patches tse potlakisang ho encryption ea disk haholo. 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.

Более глубокий разбор логики работы показал, что dm-crypt не так прост как кажется — при поступлении от драйвера ФС запроса на запись, dm-crypt не обрабатывает его сразу, а помещает в очередь «kcryptd», которая разбирается не сразу, а при наступлении удобного момента. Из очереди запрос отправляется в Linux Crypto API для выполнения шифрования. Но так как Crypto API использует асинхронную модель выполнения, шифрование также производится не сразу, а минуя ещё одну очередь. После завершения шифрования dm-crypt может пытаться выполнить сортировку ожидающих запросов на запись, используя дерево поиска 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 lokollotse di-patches tse potlakisang ho encryption ea disk haholo. 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 отправляет запрос в Linux Crypto API, которые расшифровывает информацию в асинхронном режиме. Запросы не всегда проходят по всем очередям, но в худшем сценарии запрос на запись оседает в очередях до 4 раз, а запрос на чтение до 3 раз. Каждое попадание в очередь приводит к возникновению задержек, которые и являются ключевой причиной значительного снижения производительности 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.

Учитывая то, что современные накопители стали быстрее и умнее, система распределения ресурсов в ядре Linux была пересмотрена а некоторые подсистемы переработаны, инженеры 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 lokollotse di-patches tse potlakisang ho encryption ea disk haholo. Linux

Cloudflare e lokollotse di-patches tse potlakisang ho encryption ea disk haholo. Linux

Cloudflare e lokollotse di-patches tse potlakisang ho encryption ea disk haholo. Linux

При тестировании нагрузки на реальных серверах новая реализация показала производительность очень близкую к конфигурации, работающей без шифрования, а включение шифрования на серверах с кэшем Cloudflare никак не повлияло на скорость отклика. В дальнейшем Cloudflare планирует передать подготовленные патчи в состав основного ядра Linux, но перед этим их потребуется переработать, так как они оптимизированы для определённой нагрузки и не охватывают все области применения, например, шифрования на маломощных встраиваемых устройствах.

Cloudflare e lokollotse di-patches tse potlakisang ho encryption ea disk haholo. Linux

Source: opennet.ru

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster