Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Devlopè ki soti nan Cloudflare te di sou pote soti nan travay yo optimize pèfòmans nan chifreman ki gen kapasite nan nwayo a Linux. Kòm yon rezilta, yo te prepare plak pou subsistèm dm-kripte ak Crypto API, ki te fè li posib pou plis pase double lekti ak ekri debi nan tès sentetik la, osi byen ke mwatye latansi. Lè yo teste sou pyès ki nan konpitè reyèl, anlè chifreman te redwi a prèske nivo yo obsève lè w ap travay ak yon disk san chifreman done.

Cloudflare sèvi ak dm-crypt pou ankripte done sou aparèy depo yo itilize pou kache kontni sou CDN la. Dm-crypt opere nan nivo aparèy blòk la epi ankripte demann I/O ekri epi dekripte demann lekti, aji kòm yon kouch ant aparèy blòk la ak chofè sistèm dosye a.

Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Pou evalye pèfòmans dm-crypt lè l sèvi avèk pake a Tester I/O fleksib Nou mezire vitès la nan travay ak patisyon chiffres ak non sou yon disk RAM ki sitiye nan RAM elimine fluctuations nan pèfòmans disk epi konsantre sou pèfòmans kòd. Pou patisyon ki pa chiffres, pèfòmans lekti ak ekriti rete nan 1126 MB/s, men vitès la diminye lè chifreman yo te pèmèt. 7 nan tan ak montan a 147 MB ​​/ s.

Okòmansman, sispèk te leve sou itilizasyon algoritm ki pa efikas nan sistèm kriptografik nwayo a. Men, tès yo te itilize algorithm ki pi rapid, aes-xts, ak 256 kle chifreman, ki gen pèfòmans lè w ap kouri "cryptsetup benchmark la" se plis pase de fwa pi wo pase rezilta a jwenn lè w teste yon disk RAM. Eksperyans ak drapo dm-crypt pou akor pèfòmans pa t 'bay rezilta: lè w ap itilize drapo "--perf-same_cpu_crypt", pèfòmans menm diminye a 136 MB/s, epi lè yo presize drapo "--perf-submit_from_crypt_cpus" li ogmante sèlman. jiska 166 MB/s.

Yon analiz pi fon nan lojik fonksyònman an te montre ke dm-crypt pa osi senp ke li sanble - lè yon demann ekri rive soti nan chofè FS la, dm-crypt pa trete li imedyatman, men mete l nan keu "kcryptd", ki. se pa parsed imedyatman, men lè pratik moman. Soti nan keu la, demann lan voye bay Linux Crypto API pou fè chifreman. Men, depi Crypto API a sèvi ak yon modèl ekzekisyon asynchrone, chifreman tou pa fèt imedyatman, men kontoune yon lòt keu. Apre chifreman an fini, dm-crypt ka eseye triye demann ekri annatant lè l sèvi avèk yon pye bwa rechèch wouj-nwa. Nan fen a, yon fil nwayo separe ankò, ak yon sèten reta, ranmase demann yo akimile I / O epi voye yo nan pil aparèy blòk la.

Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Lè w ap li, dm-crypt premye ajoute yon demann nan keu "kcryptd_io" pou resevwa done ki soti nan kondwi a. Apre kèk tan, done yo vin disponib epi yo mete yo nan keu "kcryptd" pou dechifre.
Kcryptd voye yon demann bay Linux Crypto API, ki dekripte enfòmasyon an asynchrone. Demann pa toujou ale nan tout moun kap kriye yo, men nan pi move senaryo a, yon demann ekri fini nan keu jiska 4 fwa, ak yon demann li jiska 3 fwa. Chak frape nan keu a lakòz reta, ki se rezon prensipal pou diminisyon enpòtan nan pèfòmans dm-crypt.

Itilizasyon ke moun kap kriye se akòz bezwen travay nan kondisyon kote entèripsyon rive. An 2005, lè dm-crypt aktyèl modèl fonksyone ki baze sou nat la te aplike, Crypto API a pa t 'ankò asynchrone. Apre yo te transfere API Crypto a nan yon modèl ekzekisyon asynchrone, esansyèlman doub pwoteksyon yo te kòmanse itilize. Yo te prezante ke moun kap kriye tou pou konsève pou konsomasyon nan pil nwayo a, men apre ogmantasyon li an 2014, optimize sa yo te pèdi enpòtans yo. Yon keu adisyonèl "kcryptd_io" te prezante pou simonte kou boutèy la ki lakòz ap tann pou alokasyon memwa lè yon gwo kantite demann rive. An 2015, yo te entwodui yon faz klasman adisyonèl, depi demann chifreman sou sistèm miltiprosesè yo te kapab ranpli nan lòd (olye pou aksè sekans nan disk la, aksè te fèt nan yon lòd o aza, ak orè CFQ la pa t travay avèk efikasite). Kounye a, lè w ap itilize kondui SSD, klasman an pèdi siyifikasyon li, epi pwogramasyon CFQ la pa itilize ankò nan nwayo a.

Lè nou konsidere ke kondui modèn yo te vin pi vit ak pi entelijan, yo te revize sistèm distribisyon resous nan nwayo Linux la ak kèk subsistèm yo te reamenaje, enjenyè Cloudflare. te ajoute dm-crypt gen yon nouvo mòd fonksyònman ki elimine itilizasyon moun kap kriye ki pa nesesè yo ak apèl asenkron. Mòd la pèmèt pa yon drapo separe "force_inline" epi li pote dm-crypt nan fòm yon prokurasyon senp ki ankripte ak dekripte demann fèk ap rantre yo. Entèraksyon ak API Crypto yo te optimize lè yo chwazi klèman algoritm chifreman ki opere nan mòd synchrone epi ki pa sèvi ak ke moun kap kriye demann. Pou travay synchrone ak Crypto API te gen pwopoze yon modil ki pèmèt ou sèvi ak FPU/AES-NI pou akselerasyon ak dirèkteman voye demann chifreman ak dechifre.

Kòm yon rezilta, lè w teste yon disk RAM, li te posib plis pase double pèfòmans nan dm-crypt - pèfòmans ogmante de 294 MB / s (2 x 147 MB ​​/ s) a 640 MB / s, ki se trè pre. pèfòmans nan chifreman fè (696 MB / s).

Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Lè tès chaj sou sèvè reyèl, nouvo aplikasyon an te montre pèfòmans trè pre konfigirasyon an kouri san chifreman, ak pèmèt chifreman sou sèvè ak Cloudflare kachèt pa te gen okenn efè sou vitès repons. Nan lavni an, Cloudflare planifye transfere plak yo prepare nan nwayo Linux prensipal la, men anvan sa yo pral bezwen retravay, paske yo optimize pou yon chaj espesifik epi yo pa kouvri tout domèn aplikasyon, pou egzanp, chifreman sou ba. -pouvwa entegre aparèy.

Cloudflare te prepare plak ki dramatikman akselere chifreman disk nan Linux

Sous: opennet.ru

Add nouvo kòmantè