Mikuláš Patočka, LVM యొక్క డెవలపర్లలో ఒకరు మరియు అనేక రచయితలు Red Hat వద్ద పని చేస్తున్న స్టోరేజ్ సిస్టమ్ల ఆప్టిమైజేషన్కు సంబంధించినది, కెర్నల్ డెవలపర్స్ మెయిలింగ్ జాబితాలో Linux కొత్త ఫైల్ సిస్టమ్ , అస్థిరత లేని మెమరీ చిప్ల (NVM, నాన్-వోలటైల్ మెమరీ, ఉదాహరణకు NVDIMM) కోసం కాంపాక్ట్ మరియు వేగవంతమైన FSని సృష్టించడం లక్ష్యంగా ఉంది, కంటెంట్ని శాశ్వతంగా నిల్వ చేసే సామర్థ్యంతో RAM పనితీరును కలపడం.
NVFSని అభివృద్ధి చేస్తున్నప్పుడు FS యొక్క అనుభవం పరిగణనలోకి తీసుకోబడింది 2017లో ప్రత్యేకంగా NVM మెమరీ కోసం సృష్టించబడింది, కానీ కెర్నల్లోకి ఆమోదించబడలేదు Linux и కెర్నల్ మద్దతు Linux 4.13 నుండి 5.1 వరకు.
ప్రతిపాదిత FS NVFS NOVA (4972 లైన్ల కోడ్ వర్సెస్ 21459) కంటే చాలా సరళమైనది, fsck యుటిలిటీని అందిస్తుంది, అధిక పనితీరును కలిగి ఉంది, పొడిగించిన అట్రిబ్యూట్లు (xattrs), సెక్యూరిటీ లేబుల్లు, ACLలు మరియు కోటాలకు మద్దతు ఇస్తుంది, కానీ స్నాప్షాట్లకు మద్దతు ఇవ్వదు. NVFS దగ్గరగా ఉంది
Ext4 ఫైల్ సిస్టమ్ VFS సబ్సిస్టమ్ ఆధారంగా ఫైల్ సిస్టమ్ల మోడల్కి బాగా సరిపోతుంది, ఇది పొరల సంఖ్యను తగ్గించడానికి మరియు కెర్నల్కు ప్యాచ్లు అవసరం లేని మాడ్యూల్తో చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
NVFS కెర్నల్ ఇంటర్ఫేస్ని ఉపయోగిస్తుంది పేజీ కాష్ను దాటవేస్తూ, నిరంతర మెమరీ పరికరాలకు ప్రత్యక్ష ప్రాప్యత కోసం. బైట్-అడ్రెస్డ్ NVM మెమరీ యొక్క ఆపరేషన్ను ఆప్టిమైజ్ చేయడానికి, డ్రైవు యొక్క కంటెంట్లు సాంప్రదాయ బ్లాక్ పరికర లేయర్ మరియు ఇంటర్మీడియట్ కాష్ని ఉపయోగించకుండా కెర్నల్ యొక్క లీనియర్ అడ్రస్ స్పేస్కు మ్యాప్ చేయబడతాయి. డైరెక్టరీ కంటెంట్లను నిల్వ చేయడానికి ఉపయోగించబడుతుంది (radix tree) దీనిలో ప్రతి ఫైల్ పేరు హ్యాష్ చేయబడింది మరియు చెట్టును శోధిస్తున్నప్పుడు హాష్ విలువ ఉపయోగించబడుతుంది.
"ని ఉపయోగించి డేటా సమగ్రత నిర్ధారించబడుతుంది"(FreeBSD నుండి UFS మరియు OpenBSD నుండి FFS వలె) జర్నలింగ్ ఉపయోగించకుండా. NVFSలో ఫైల్ అవినీతిని నివారించడానికి, క్రాష్ బ్లాక్లు లేదా ఐనోడ్ల నష్టానికి దారితీయని విధంగా డేటా మార్పు కార్యకలాపాలు సమూహం చేయబడతాయి మరియు fsck యుటిలిటీని ఉపయోగించి నిర్మాణాల సమగ్రత పునరుద్ధరించబడుతుంది. fsck యుటిలిటీ మల్టీ-థ్రెడ్ మోడ్లో పనిచేస్తుంది మరియు సెకనుకు 1.6 మిలియన్ ఐనోడ్ల బ్రూట్-ఫోర్స్ పనితీరును అందిస్తుంది.
В NVFS కెర్నల్ సోర్స్ ట్రీ కాపీ ఆపరేషన్ను నిర్వహించింది. Linux NVM మెమరీపై, NOVA సుమారుగా 10% వేగవంతమైనది, ext4 30% వేగవంతమైనది మరియు XFS 37% వేగవంతమైనది. ఫైల్ సిస్టమ్ డేటా సెర్చ్ పరీక్షలో, NVFS, NOVA కంటే 3% వేగవంతమైనది, మరియు ext4, XFS రెండూ 15% వేగవంతమైనవి (కానీ డిస్క్ కాష్ యాక్టివ్గా ఉన్నప్పుడు, NOVA 15% నెమ్మదిగా ఉంది).
మిలియన్ డైరెక్టరీ ఆపరేషన్స్ టెస్ట్లో, NVFS NOVA కంటే 40%, ext4 22% మరియు XFS 46% కంటే మెరుగైన పనితీరును కనబరిచింది. DBMS కార్యకలాపాన్ని అనుకరిస్తున్నప్పుడు, NVFS ఫైల్ సిస్టమ్ NOVA కంటే 20%, ext4ని 18 సార్లు మరియు XFS కంటే 5 రెట్లు అధిగమించింది. fs_mark పరీక్షలో, NVFS మరియు NOVA పనితీరు సుమారుగా అదే స్థాయిలో ఉన్నట్లు తేలింది, అయితే ext4 మరియు XFS దాదాపు 3 రెట్లు వెనుకబడి ఉన్నాయి.
NVM మెమొరీపై సాంప్రదాయ ఫైల్ సిస్టమ్ల లాగ్ కారణంగా అవి బైట్ అడ్రసింగ్ కోసం రూపొందించబడలేదు, ఇది సాధారణ RAM వలె కనిపించే నాన్-వోలటైల్ మెమరీలో ఉపయోగించబడుతుంది. సాంప్రదాయిక డ్రైవ్ల నుండి చదవడం సెక్టార్ రీడ్/రైట్ స్థాయిలో ఆపరేషన్ యొక్క పరమాణుత్వాన్ని నిర్ధారిస్తుంది, అయితే NVM మెమరీ వ్యక్తిగత యంత్ర పదాల స్థాయిలో యాక్సెస్ను అందిస్తుంది. అదనంగా, సాంప్రదాయ ఫైల్ సిస్టమ్లు మీడియాకు యాక్సెస్ తీవ్రతను తగ్గించడానికి ప్రయత్నిస్తాయి, ఇది RAM కంటే నిదానంగా పరిగణించబడుతుంది మరియు హార్డ్ డ్రైవ్లు, ప్రాసెస్ అభ్యర్థన క్యూలను ఉపయోగిస్తున్నప్పుడు, ఫ్రాగ్మెంటేషన్ను ఎదుర్కోవడం మరియు వేరు చేయడం వంటి వాటిని ఉపయోగిస్తున్నప్పుడు సీక్వెన్షియల్ రీడింగ్ని నిర్ధారించడానికి సమూహ కార్యకలాపాలను ప్రయత్నించండి. వివిధ కార్యకలాపాల ప్రాధాన్యతలు. . NVM మెమరీ కోసం, అటువంటి సమస్యలు అనవసరం, ఎందుకంటే డేటా యాక్సెస్ వేగం RAMతో పోల్చబడుతుంది మరియు యాక్సెస్ ఆర్డర్ పట్టింపు లేదు.
మూలం: opennet.ru
