Devlopè ki soti nan Cloudflare
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.
Pou evalye pèfòmans dm-crypt lè l sèvi avèk pake a
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
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.
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).
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.
Sous: opennet.ru