Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Luchd-leasachaidh bho Cloudflare dh ’innis mu bhith a’ dèanamh obair gus an coileanadh as fheàrr a dhèanamh de chrioptachadh diosc ann an kernel Linux. Mar thoradh air an sin, bha iad deiseil badannan airson subsystem dm-crypt agus Crypto API, a rinn e comasach barrachd air dùblachadh a dhèanamh air an leughadh agus sgrìobhadh tron ​​​​deuchainn synthetigeach, a bharrachd air leth latency. Nuair a chaidh deuchainn a dhèanamh air bathar-cruaidh fìor, chaidh crioptachadh os cionn a lughdachadh gu cha mhòr an ìre a chaidh fhaicinn nuair a bha e ag obair le diosc gun chrioptachadh dàta.

Bidh Cloudflare a’ cleachdadh dm-crypt gus dàta a chrioptachadh air innealan stòraidh a thathas a’ cleachdadh gus susbaint a thasgadh air an CDN. Bidh Dm-crypt ag obair aig ìre inneal bloca agus a’ crioptachadh sgrìobhadh iarrtasan I/O agus a’ dì-chrioptachadh iarrtasan leughaidh, ag obair mar shreath eadar an inneal bloca agus draibhear an t-siostam faidhle.

Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Gus coileanadh dm-crypt a mheasadh a’ cleachdadh a’ phacaid Neach-dearbhaidh I/O sùbailte Thomhais sinn astar a bhith ag obair le sgaraidhean crioptaichte agus neo-chrioptaichte air diosc RAM a tha suidhichte ann an RAM gus cuir às do chaochlaidhean ann an coileanadh diosc agus fòcas air coileanadh còd. Airson sgaraidhean gun chrioptachadh, dh’ fhan coileanadh leughaidh is sgrìobhaidh aig 1126 MB / s, ach chaidh an astar sìos nuair a chaidh crioptachadh a chomasachadh ann an 7 agus thàinig e gu 147 MB/s.

An toiseach, dh'èirich amharas mu bhith a 'cleachdadh algorithms neo-èifeachdach anns an t-siostam crypto kernel. Ach chleachd na deuchainnean an algairim as luaithe, aes-xts, le iuchraichean crioptachaidh 256, aig a bheil coileanadh nuair a bha iad a’ ruith an “slat-tomhais cryptosetup” còrr is a dhà uimhir nas àirde na an toradh a gheibhear nuair a thathar a’ dèanamh deuchainn air diosc RAM. Cha tug deuchainnean le brataichean dm-crypt airson gleusadh coileanaidh toraidhean: nuair a bha iad a’ cleachdadh a’ bhratach “--perf-same_cpu_crypt”, chaidh coileanadh eadhon sìos gu 136 MB / s, agus nuair a chaidh am bratach “--perf-submit_from_crypt_cpus” a shònrachadh cha do mheudaich e ach gu 166 MB/s.

Sheall sgrùdadh nas doimhne air an loidsig obrachaidh nach eil dm-crypt cho sìmplidh ‘s a tha e coltach - nuair a thig iarrtas sgrìobhaidh bhon draibhear FS, cha bhith dm-crypt ga phròiseasadh sa bhad, ach ga chuir anns a’ chiudha “kcryptd”, a tha chan eil e air a pharsadh sa bhad, ach nuair a tha àm iomchaidh. Bhon ciudha, thèid an t-iarrtas a chuir chun Linux Crypto API gus crioptachadh a dhèanamh. Ach leis gu bheil an Crypto API a ’cleachdadh modal cur gu bàs asyncronach, chan eil crioptachadh cuideachd air a dhèanamh sa bhad, ach a’ dol seachad air ciudha eile. Às deidh an crioptachadh a bhith deiseil, faodaidh dm-crypt feuchainn ri iarrtasan sgrìobhaidh a tha ri thighinn a rèiteach a’ cleachdadh craobh sgrùdaidh dearg-dubh. Aig an deireadh, bidh snàithlean kernel air leth a-rithist, le dàil sònraichte, a ’togail na h-iarrtasan cruinnichte I / O agus gan cur gu stac an inneal bloca.

Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Nuair a bhios tu a’ leughadh, bidh dm-crypt an-toiseach a’ cur iarrtas ris a’ chiudha “kcryptd_io” gus dàta fhaighinn bhon draibhear. Às deidh beagan ùine, bidh an dàta ri fhaighinn agus thèid a chuir anns a’ chiudha “kcryptd” airson dì-chrioptachadh.
Bidh Kcryptd a’ cur iarrtas chun Linux Crypto API, a bhios a’ dì-chrioptachadh an fhiosrachaidh gu neo-chinnteach. Cha bhith iarrtasan an-còmhnaidh a’ dol tro na ciudha gu lèir, ach anns an t-suidheachadh as miosa, bidh iarrtas sgrìobhaidh a’ tighinn gu crìch ann an ciudha suas ri 4 tursan, agus iarrtas leughaidh suas ri 3 tursan. Bidh gach buille don ciudha ag adhbhrachadh dàil, agus sin am prìomh adhbhar airson an lùghdachadh mòr ann an coileanadh dm-crypt.

Tha cleachdadh ciudha mar thoradh air an fheum a bhith ag obair ann an suidheachaidhean far a bheil brisidhean a’ tachairt. Ann an 2005, nuair a chaidh am modal obrachaidh gnàthach stèidhichte air ciudha dm-crypt a chuir an gnìomh, cha robh an Crypto API fhathast neo-chinnteach. Às deidh don Crypto API a bhith air a ghluasad gu modal cur gu bàs asyncronach, gu ìre mhòr thòisich dìon dùbailte air a chleachdadh. Chaidh ciudha a thoirt a-steach cuideachd gus caitheamh a’ chruach kernel a shàbhaladh, ach às deidh àrdachadh ann an 2014, chaill na optimizations sin am buntainneachd. Chaidh ciudha a bharrachd “kcryptd_io” a thoirt a-steach gus faighinn seachad air a’ bhotail a lean gu bhith a’ feitheamh ri riarachadh cuimhne nuair a thig àireamh mhòr de dh’ iarrtasan. Ann an 2015, chaidh ìre seòrsachaidh a bharrachd a thoirt a-steach, leis gum faodadh iarrtasan crioptachaidh air siostaman ioma-phròiseasar a bhith air an lìonadh a-mach à òrdugh (an àite ruigsinneachd sreath air an diosc, chaidh ruigsinneachd a dhèanamh ann an òrdugh air thuaiream, agus cha do dh’ obraich clàr-ama CFQ gu h-èifeachdach). An-dràsta, nuair a bhios tu a’ cleachdadh draibhearan SSD, tha an seòrsachadh air a chiall a chall, agus chan eil an clàr-ama CFQ air a chleachdadh tuilleadh anns an kernel.

Leis gu bheil draibhearan ùr-nodha air fàs nas luaithe agus nas buige, chaidh an siostam cuairteachaidh ghoireasan anns an kernel Linux ath-sgrùdadh agus chaidh cuid de fo-shiostaman ath-dhealbhadh, innleadairean Cloudflare air a chur ris tha modh obrachaidh ùr aig dm-crypt a chuireas às do chleachdadh ciudhaichean neo-riatanach agus fiosan asyncronach. Tha am modh air a chomasachadh le bratach air leth “force_inline” agus a ’toirt dm-crypt gu cruth neach-ionaid sìmplidh a bhios a’ cuairteachadh agus a ’dì-chrioptachadh iarrtasan a tha a’ tighinn a-steach. Chaidh eadar-obrachadh leis an Crypto API a bharrachadh le bhith a’ taghadh gu sònraichte algoirmean crioptachaidh a bhios ag obair ann am modh sioncronaich agus nach bi a’ cleachdadh ciudha iarrtas. Gus obrachadh gu sioncronaich leis an Crypto API bha air a mholadh modal a leigeas leat FPU / AES-NI a chleachdadh airson luathachadh agus a chuir air adhart gu dìreach iarrtasan crioptachaidh is dì-chrioptachaidh.

Mar thoradh air an sin, nuair a bhathas a’ dèanamh deuchainn air diosc RAM, bha e comasach barrachd air dùblachadh coileanadh dm-crypt - mheudaich coileanadh bho 294 MB / s (2 x 147 MB ​​/ s) gu 640 MB / s, a tha gu math faisg air. coileanadh crioptachadh lom (696 MB / s).

Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Nuair a chaidh deuchainn a dhèanamh air luchdan air fìor luchd-frithealaidh, sheall am buileachadh ùr coileanadh glè fhaisg air an rèiteachadh a bha a’ ruith gun chrioptachadh, agus cha robh buaidh sam bith aig crioptachadh air frithealaichean le tasgadan Cloudflare air astar freagairt. Anns an àm ri teachd, tha Cloudflare an dùil na pìosan ullaichte a ghluasad gu prìomh kernel Linux, ach roimhe sin feumaidh iad a bhith air an ath-obrachadh, leis gu bheil iad air an ùrachadh airson luchd sònraichte agus nach eil iad a’ còmhdach a h-uile raon tagraidh, mar eisimpleir, crioptachadh air ìosal. -power freumhaichte innealan.

Tha Cloudflare air pìosan ullachadh a luathaicheas gu mòr crioptachadh diosc ann an Linux

Source: fosgailtenet.ru

Cuir beachd ann