Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Mpamorona avy amin'ny Cloudflare nilaza momba ny fanatanterahana asa hanatsarana ny fampandehanana ny fanafenana kapila ao amin'ny kernel Linux. Vokany, niomana izy ireo tampina ho an'ny subsystem dm-crypt ary Crypto API, izay nahafahana nampitombo avo roa heny ny famakiana sy fanoratana tamin'ny andrana sintetika, ary koa ny fampihenana ny antsasany. Rehefa nosedraina tamin'ny fitaovana tena izy, dia nihena ho saika amin'ny ambaratonga hita maso ny overhead encryption rehefa miasa amin'ny kapila tsy misy encryption data.

Cloudflare dia mampiasa dm-crypt hanodinana angon-drakitra amin'ny fitaovana fitahirizana ampiasaina amin'ny cache votoaty ao amin'ny CDN. Ny Dm-crypt dia miasa amin'ny haavon'ny fitaovana fanakanana ary manoratra ny fangatahana I/O ary mamadika ny fangatahana famakiana, miasa toy ny sosona eo anelanelan'ny fitaovana fanakanana sy ny mpamily rafitra.

Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Mba hanombanana ny fahombiazan'ny dm-crypt amin'ny fampiasana ny fonosana Tester I/O azo flexible Norefesinay ny hafainganam-pandehan'ny fiasana amin'ny fizarazarana miafina sy tsy voafehy amin'ny kapila RAM hita ao amin'ny RAM mba hanafoanana ny fiovaovan'ny fampisehoana kapila ary hifantoka amin'ny fampisehoana kaody. Ho an'ny fizarazarana tsy misy encryption dia mijanona amin'ny 1126 MB/s ny fahaiza-mamaky sy manoratra, saingy nihena ny hafainganam-pandeha rehefa navela ny fanafenana. In-7 ary mahatratra 147 MB/s.

Tamin'ny voalohany, nipoitra ny ahiahy momba ny fampiasana algorithm tsy mahomby amin'ny kernel cryptosystem. Saingy ny fitsapana dia nampiasa ny algorithm haingana indrindra, aes-xts, miaraka amin'ny fanalahidin'ny encryption 256, izay ny fahombiazany amin'ny fampandehanana ny "benchmark cryptsetup" dia mihoatra ny avo roa heny noho ny vokatra azo tamin'ny fitsapana ny kapila RAM. Ny fanandramana miaraka amin'ny saina dm-crypt ho an'ny fanamafisam-peo dia tsy nahitam-bokatra: rehefa mampiasa ny saina "--perf-same_cpu_crypt", dia nihena ho 136 MB/s aza ny fampisehoana, ary rehefa nanondro ny saina "--perf-submit_from_crypt_cpus" dia nitombo ihany. hatramin'ny 166 MB/s.

Ny famakafakana lalindalina kokoa momba ny lojika miasa dia naneho fa ny dm-crypt dia tsy tsotra tahaka ny hita - rehefa tonga ny fangatahana fanoratana avy amin'ny mpamily FS, dm-crypt dia tsy manodina azy avy hatrany, fa mametraka azy ao amin'ny filaharana "kcryptd", izay tsy voavaha avy hatrany, fa amin'ny fotoana mety. Avy amin'ny filaharana, alefa any amin'ny Linux Crypto API ny fangatahana mba hanao encryption. Saingy satria ny Crypto API dia mampiasa modely famonoana asynchronous, ny encryption dia tsy atao avy hatrany, fa mandalo filaharana hafa. Rehefa vita ny fanafenana, dm-crypt dia mety hanandrana handamina ny fangatahana fanoratana miandry amin'ny alΓ lan'ny hazo fikarohana mena-mainty. Amin'ny farany, misy kofehy kernel misaraka indray, miaraka amin'ny fahatarana sasany, dia maka ny fangatahana I/O voaangona ary mandefa azy ireo any amin'ny stack fitaovana fanakanana.

Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Rehefa mamaky, dm-crypt aloha dia manampy fangatahana amin'ny filaharana "kcryptd_io" handraisana angona avy amin'ny fiara. Rehefa afaka kelikely, dia tonga ny angon-drakitra ary napetraka ao amin'ny filaharana "kcryptd" ho an'ny decryption.
Mandefa fangatahana any amin'ny Linux Crypto API i Kcryptd, izay mamadika ny fampahalalana tsy mifanaraka. Ny fangatahana dia tsy mandeha amin'ny filaharana rehetra, fa amin'ny tranga ratsy indrindra, ny fangatahana fanoratana dia miafara amin'ny filaharana hatramin'ny in-4, ary ny fangatahana famakiana hatramin'ny in-3. Ny fikapohana tsirairay amin'ny filaharana dia miteraka fahatarana, izany no antony lehibe amin'ny fihenan'ny fahombiazan'ny dm-crypt.

Ny fampiasana filaharana dia noho ny filΓ na miasa amin'ny toe-javatra misy ny fahatapahana. Tamin'ny taona 2005, rehefa nampiharina ny maodely fampandehanan-draharaha mifototra amin'ny filaharana an'ny dm-crypt ankehitriny, dia tsy mbola asynchronous ny Crypto API. Taorian'ny nafindran'ny Crypto API ho modely famonoana asynchronous, dia nanomboka nampiasaina ny fiarovana avo roa heny. Nampidirina ihany koa ny filaharana mba hitsitsiana ny fanjifana ny fitambaran'ny kernel, saingy taorian'ny fitomboany tamin'ny taona 2014, dia very ny lanjany ireo fanatsarana ireo. Nisy filaharana fanampiny "kcryptd_io" nampidirina mba handresena ny bottleneck ka niandry ny fanomezan-tadidy rehefa tonga ny fangatahana marobe. Tamin'ny taona 2015, nisy dingana fanasokajiana fanampiny nampidirina, satria ny fangatahana fanafenana amin'ny rafitra multiprocessor dia mety ho vita tsy misy filaminana (fa tsy ny fidirana amin'ny kapila, ny fidirana dia natao tamin'ny filaharana kisendrasendra, ary ny mpandrindra CFQ dia tsy niasa tsara). Amin'izao fotoana izao, rehefa mampiasa SSD drive dia very ny dikany, ary ny CFQ scheduler dia tsy ampiasaina amin'ny kernel intsony.

Raha jerena fa lasa haingana sy marani-tsaina kokoa ny fiara maoderina, dia nohavaozina ny rafitra fizarana loharano ao amin'ny kernel Linux ary navaozina ny subsystems sasany, injeniera Cloudflare. nanampy dm-crypt dia manana fomba fiasa vaovao izay manafoana ny fampiasana filaharana tsy ilaina sy antso tsy misy dikany. Ny maodely dia alefa amin'ny alΓ lan'ny saina manokana "force_inline" ary mitondra dm-crypt amin'ny endrika proxy tsotra izay manidy sy mamadika ny fangatahana miditra. Ny fifandraisana amin'ny Crypto API dia nohatsaraina tamin'ny alΓ lan'ny fisafidianana mazava ny algorithm encryption izay miasa amin'ny fomba synchronous ary tsy mampiasa filaharana fangatahana. Mba hiasa miaraka amin'ny Crypto API dia nisy AZO maody izay ahafahanao mampiasa FPU/AES-NI mba hanafainganana sy handefasana mivantana ny fangatahana encryption sy decryption.

Vokatr'izany, rehefa nanandrana ny kapila RAM, dia azo natao mihoatra ny avo roa heny ny fahombiazan'ny dm-crypt - nitombo ny fahombiazan'ny 294 MB / s (2 x 147 MB ​​/ s) ho 640 MB / s, izay tena akaiky. ny fahombiazan'ny fanafenana miboridana (696 MB / s).

Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Rehefa nanandrana enta-mavesatra amin'ny lohamilina tena izy, ny fampiharana vaovao dia nampiseho fampisehoana tena akaiky ny fanamafisam-peo mandeha tsy misy encryption, ary ny fampandehanana ny encryption amin'ny lohamilina misy Cloudflare cache dia tsy nisy fiantraikany tamin'ny hafainganan'ny valiny. Amin'ny ho avy, Cloudflare dia mikasa ny hamindra ireo patch voaomana amin'ny kernel Linux lehibe, fa alohan'izany dia mila averina averina izy ireo, satria izy ireo dia natao ho an'ny entana manokana ary tsy mandrakotra ny faritra rehetra amin'ny fampiharana, ohatra, ny encryption amin'ny ambany. - fitaovana misy herinaratra.

Cloudflare dia nanomana patch izay manafaingana ny encryption disk amin'ny Linux

Source: opennet.ru

Add a comment