Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

Cloudflare నుండి డెవలపర్లు చెప్పారు Linux కెర్నల్‌లో డిస్క్ ఎన్‌క్రిప్షన్ పనితీరును ఆప్టిమైజ్ చేయడానికి పనిని నిర్వహించడం గురించి. ఫలితంగా, వారు సిద్ధమయ్యారు పాచెస్ ఉపవ్యవస్థ కోసం dm- క్రిప్ట్ మరియు క్రిప్టో API, ఇది సింథటిక్ పరీక్షలో రీడ్ మరియు రైట్ త్రూపుట్‌ను రెట్టింపు కంటే ఎక్కువ చేయడం సాధ్యపడింది, అలాగే జాప్యాన్ని సగానికి తగ్గించింది. నిజమైన హార్డ్‌వేర్‌పై పరీక్షించినప్పుడు, డేటా ఎన్‌క్రిప్షన్ లేకుండా డిస్క్‌తో పని చేస్తున్నప్పుడు గమనించిన దాదాపు స్థాయికి ఎన్‌క్రిప్షన్ ఓవర్‌హెడ్ తగ్గించబడింది.

CDNలో కంటెంట్‌ను కాష్ చేయడానికి ఉపయోగించే నిల్వ పరికరాలలో డేటాను గుప్తీకరించడానికి Cloudflare dm-cryptని ఉపయోగిస్తుంది. Dm-crypt బ్లాక్ పరికర స్థాయిలో పనిచేస్తుంది మరియు I/O అభ్యర్థనలను గుప్తీకరిస్తుంది మరియు రీడ్ రిక్వెస్ట్‌లను డీక్రిప్ట్ చేస్తుంది, బ్లాక్ పరికరం మరియు ఫైల్ సిస్టమ్ డ్రైవర్ మధ్య పొరగా పనిచేస్తుంది.

Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

ప్యాకేజీని ఉపయోగించి dm-crypt పనితీరును అంచనా వేయడానికి ఫ్లెక్సిబుల్ I/O టెస్టర్ డిస్క్ పనితీరులో హెచ్చుతగ్గులను తొలగించడానికి మరియు కోడ్ పనితీరుపై దృష్టి పెట్టడానికి RAMలో ఉన్న RAM డిస్క్‌లో ఎన్‌క్రిప్టెడ్ మరియు ఎన్‌క్రిప్ట్ చేయని విభజనలతో పని చేసే వేగాన్ని మేము కొలిచాము. ఎన్‌క్రిప్ట్ చేయని విభజనల కోసం, చదవడం మరియు వ్రాయడం పనితీరు 1126 MB/s వద్ద ఉంటుంది, అయితే ఎన్‌క్రిప్షన్ ప్రారంభించబడినప్పుడు వేగం తగ్గింది 7 సార్లు మరియు మొత్తం 147 MB/s.

మొదట, కెర్నల్ క్రిప్టోసిస్టమ్‌లో అసమర్థమైన అల్గారిథమ్‌ల ఉపయోగం గురించి అనుమానం వచ్చింది. కానీ పరీక్షలు 256 ఎన్‌క్రిప్షన్ కీలతో వేగవంతమైన అల్గోరిథం, aes-xtsని ఉపయోగించాయి, "క్రిప్ట్‌సెట్‌అప్ బెంచ్‌మార్క్"ని అమలు చేస్తున్నప్పుడు దీని పనితీరు RAM డిస్క్‌ను పరీక్షించేటప్పుడు పొందిన ఫలితం కంటే రెండు రెట్లు ఎక్కువ. పనితీరు ట్యూనింగ్ కోసం dm-crypt ఫ్లాగ్‌లతో చేసిన ప్రయోగాలు ఫలితాలను ఇవ్వలేదు: “--perf-same_cpu_crypt” ఫ్లాగ్‌ని ఉపయోగిస్తున్నప్పుడు, పనితీరు 136 MB/sకి తగ్గింది మరియు “--perf-submit_from_crypt_cpus” ఫ్లాగ్‌ను పేర్కొన్నప్పుడు అది మాత్రమే పెరిగింది. 166 MB/s వరకు.

ఆపరేటింగ్ లాజిక్ యొక్క లోతైన విశ్లేషణలో dm-క్రిప్ట్ అనిపించినంత సులభం కాదని తేలింది - FS డ్రైవర్ నుండి వ్రాత అభ్యర్థన వచ్చినప్పుడు, dm-crypt దానిని వెంటనే ప్రాసెస్ చేయదు, కానీ దానిని “kcryptd” క్యూలో ఉంచుతుంది. తక్షణమే అన్వయించబడదు, కానీ అనుకూలమైన క్షణం ఉన్నప్పుడు. క్యూ నుండి, గుప్తీకరణను నిర్వహించడానికి అభ్యర్థన Linux Crypto APIకి పంపబడుతుంది. కానీ క్రిప్టో API అసమకాలిక అమలు నమూనాను ఉపయోగిస్తుంది కాబట్టి, ఎన్క్రిప్షన్ కూడా వెంటనే నిర్వహించబడదు, కానీ మరొక క్యూను దాటవేస్తుంది. ఎన్‌క్రిప్షన్ పూర్తయిన తర్వాత, శోధన ట్రీని ఉపయోగించి పెండింగ్‌లో ఉన్న వ్రాత అభ్యర్థనలను క్రమబద్ధీకరించడానికి dm-crypt ప్రయత్నించవచ్చు ఎరుపు-నలుపు. ముగింపులో, ఒక ప్రత్యేక కెర్నల్ థ్రెడ్ మళ్లీ, కొంత ఆలస్యంతో, సేకరించబడిన I/O అభ్యర్థనలను ఎంచుకుని, వాటిని బ్లాక్ డివైజ్ స్టాక్‌కు పంపుతుంది.

Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

చదివేటప్పుడు, డ్రైవ్ నుండి డేటాను స్వీకరించడానికి dm-crypt ముందుగా “kcryptd_io” క్యూకి అభ్యర్థనను జోడిస్తుంది. కొంత సమయం తర్వాత, డేటా అందుబాటులోకి వస్తుంది మరియు డిక్రిప్షన్ కోసం “kcryptd” క్యూలో ఉంచబడుతుంది.
Kcryptd Linux Crypto APIకి అభ్యర్థనను పంపుతుంది, ఇది సమాచారాన్ని అసమకాలికంగా డీక్రిప్ట్ చేస్తుంది. అభ్యర్థనలు ఎల్లప్పుడూ అన్ని క్యూల గుండా వెళ్లవు, కానీ చెత్త సందర్భంలో, వ్రాత అభ్యర్థన 4 సార్లు వరకు క్యూలలో ముగుస్తుంది మరియు 3 సార్లు చదివే అభ్యర్థన వరకు ఉంటుంది. క్యూకి ప్రతి హిట్ ఆలస్యంలకు కారణమవుతుంది, ఇది dm-క్రిప్ట్ పనితీరు గణనీయంగా తగ్గడానికి ప్రధాన కారణం.

అంతరాయాలు ఏర్పడే పరిస్థితుల్లో పని చేయాల్సిన అవసరం కారణంగా క్యూల ఉపయోగం. 2005లో, dm-crypt యొక్క ప్రస్తుత క్యూ-ఆధారిత ఆపరేటింగ్ మోడల్ అమలు చేయబడినప్పుడు, Crypto API ఇంకా అసమకాలికంగా లేదు. క్రిప్టో API అసమకాలిక ఎగ్జిక్యూషన్ మోడల్‌కు బదిలీ చేయబడిన తర్వాత, తప్పనిసరిగా డబుల్ ప్రొటెక్షన్ ఉపయోగించడం ప్రారంభమైంది. కెర్నల్ స్టాక్ వినియోగాన్ని ఆదా చేయడానికి క్యూలు కూడా ప్రవేశపెట్టబడ్డాయి, అయితే 2014లో దాని పెరుగుదల తర్వాత, ఈ ఆప్టిమైజేషన్‌లు వాటి ఔచిత్యాన్ని కోల్పోయాయి. అడ్డంకిని అధిగమించడానికి "kcryptd_io" అదనపు క్యూ పరిచయం చేయబడింది, ఫలితంగా పెద్ద సంఖ్యలో అభ్యర్థనలు వచ్చినప్పుడు మెమరీ కేటాయింపు కోసం వేచి ఉంటుంది. 2015లో, మల్టీప్రాసెసర్ సిస్టమ్‌లపై ఎన్‌క్రిప్షన్ అభ్యర్థనలు క్రమం తప్పినందున (డిస్క్‌కు సీక్వెన్షియల్ యాక్సెస్‌కు బదులుగా, యాక్సెస్ యాదృచ్ఛిక క్రమంలో నిర్వహించబడుతుంది మరియు CFQ షెడ్యూలర్ సమర్థవంతంగా పని చేయలేదు) అదనపు సార్టింగ్ దశ ప్రవేశపెట్టబడింది. ప్రస్తుతం, SSD డ్రైవ్‌లను ఉపయోగిస్తున్నప్పుడు, సార్టింగ్ దాని అర్థాన్ని కోల్పోయింది మరియు CFQ షెడ్యూలర్ ఇకపై కెర్నల్‌లో ఉపయోగించబడదు.

ఆధునిక డ్రైవ్‌లు వేగంగా మరియు తెలివిగా మారాయని పరిగణనలోకి తీసుకుంటే, Linux కెర్నల్‌లోని వనరుల పంపిణీ వ్యవస్థ సవరించబడింది మరియు కొన్ని ఉపవ్యవస్థలు పునఃరూపకల్పన చేయబడ్డాయి, Cloudflare ఇంజనీర్లు జోడించారు dm-crypt కొత్త ఆపరేటింగ్ మోడ్‌ను కలిగి ఉంది, ఇది అనవసరమైన క్యూలు మరియు అసమకాలిక కాల్‌ల వినియోగాన్ని తొలగిస్తుంది. మోడ్ ప్రత్యేక ఫ్లాగ్ “force_inline” ద్వారా ప్రారంభించబడింది మరియు ఇన్‌కమింగ్ అభ్యర్థనలను గుప్తీకరించే మరియు డీక్రిప్ట్ చేసే సాధారణ ప్రాక్సీ రూపానికి dm-క్రిప్ట్‌ని తీసుకువస్తుంది. సింక్రోనస్ మోడ్‌లో పనిచేసే మరియు అభ్యర్థన క్యూలను ఉపయోగించని ఎన్‌క్రిప్షన్ అల్గారిథమ్‌లను స్పష్టంగా ఎంచుకోవడం ద్వారా క్రిప్టో APIతో పరస్పర చర్య ఆప్టిమైజ్ చేయబడింది. క్రిప్టో APIతో సమకాలికంగా పని చేయడానికి ఉంది ప్రతిపాదించారు త్వరణం కోసం FPU/AES-NIని ఉపయోగించడానికి మరియు ఎన్‌క్రిప్షన్ మరియు డిక్రిప్షన్ అభ్యర్థనలను నేరుగా ఫార్వార్డ్ చేయడానికి మిమ్మల్ని అనుమతించే మాడ్యూల్.

ఫలితంగా, RAM డిస్క్‌ను పరీక్షిస్తున్నప్పుడు, dm-crypt పనితీరు కంటే రెట్టింపు సాధ్యమైంది - పనితీరు 294 MB/s (2 x 147 MB/s) నుండి 640 MB/sకి పెరిగింది, ఇది చాలా దగ్గరగా ఉంటుంది బేర్ ఎన్‌క్రిప్షన్ పనితీరు (696 MB/s).

Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

నిజమైన సర్వర్‌లపై లోడ్‌ను పరీక్షించేటప్పుడు, కొత్త అమలు ఎన్‌క్రిప్షన్ లేకుండా నడుస్తున్న కాన్ఫిగరేషన్‌కు చాలా దగ్గరగా పనితీరును చూపుతుంది మరియు క్లౌడ్‌ఫ్లేర్ కాష్‌తో సర్వర్‌లపై ఎన్‌క్రిప్షన్‌ను ప్రారంభించడం ప్రతిస్పందన వేగంపై ప్రభావం చూపలేదు. భవిష్యత్తులో, క్లౌడ్‌ఫ్లేర్ సిద్ధం చేసిన ప్యాచ్‌లను ప్రధాన లైనక్స్ కెర్నల్‌కు బదిలీ చేయాలని యోచిస్తోంది, అయితే అంతకు ముందు అవి తిరిగి పని చేయాల్సి ఉంటుంది, ఎందుకంటే అవి నిర్దిష్ట లోడ్ కోసం ఆప్టిమైజ్ చేయబడ్డాయి మరియు అప్లికేషన్ యొక్క అన్ని రంగాలను కవర్ చేయవు, ఉదాహరణకు, తక్కువ గుప్తీకరణ -పవర్ ఎంబెడెడ్ పరికరాలు.

Cloudflare Linuxలో డిస్క్ ఎన్‌క్రిప్షన్‌ను నాటకీయంగా వేగవంతం చేసే ప్యాచ్‌లను సిద్ధం చేసింది

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి