Linux 0.8.0పై ZFS విడుదల, Linux కెర్నల్ కోసం ZFS అమలు

దాదాపు రెండేళ్ల అభివృద్ధి తర్వాత సమర్పించారు విడుదల Linux 0.8.0లో ZFS, Linux కెర్నల్ కోసం మాడ్యూల్‌గా ప్యాక్ చేయబడిన ZFS ఫైల్ సిస్టమ్ అమలు. మాడ్యూల్ Linux కెర్నల్స్‌తో 2.6.32 నుండి 5.1 వరకు పరీక్షించబడింది. సిద్ధంగా ఉన్న ఇన్‌స్టాలేషన్ ప్యాకేజీలు త్వరలో రానున్నాయి సిద్ధం అవుతుంది Debian, Ubuntu, Fedora, RHEL/CentOSతో సహా ప్రధాన Linux పంపిణీల కోసం. Linux మాడ్యూల్‌లోని ZFS ఇప్పటికే Debian, Ubuntu, Gentoo, Sabayon Linux మరియు ALT Linux పంపిణీలలో చేర్చబడింది.

Linuxలో ZFSలో భాగంగా, ఫైల్ సిస్టమ్ యొక్క ఆపరేషన్ మరియు వాల్యూమ్ మేనేజర్ పనితీరు రెండింటికి సంబంధించిన ZFS భాగాల అమలు సిద్ధం చేయబడింది. ప్రత్యేకించి, కింది భాగాలు అమలు చేయబడతాయి: SPA (స్టోరేజ్ పూల్ అలోకేటర్), DMU (డేటా మేనేజ్‌మెంట్ యూనిట్), ZVOL (ZFS ఎమ్యులేటెడ్ వాల్యూమ్) మరియు ZPL (ZFS POSIX లేయర్). అదనంగా, ప్రాజెక్ట్ ZFSని లస్టర్ క్లస్టర్ ఫైల్ సిస్టమ్‌కు బ్యాకెండ్‌గా ఉపయోగించగల సామర్థ్యాన్ని అందిస్తుంది. ప్రాజెక్ట్ యొక్క పని OpenSolaris ప్రాజెక్ట్ నుండి దిగుమతి చేయబడిన అసలైన ZFS కోడ్‌పై ఆధారపడి ఉంటుంది మరియు Illumos సంఘం నుండి మెరుగుదలలు మరియు పరిష్కారాలతో మెరుగుపరచబడింది. US డిపార్ట్‌మెంట్ ఆఫ్ ఎనర్జీతో ఒప్పందం ప్రకారం లివర్‌మోర్ నేషనల్ లాబొరేటరీ ఉద్యోగుల భాగస్వామ్యంతో ప్రాజెక్ట్ అభివృద్ధి చేయబడుతోంది.

కోడ్ ఉచిత CDDL లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది, ఇది GPLv2కి అనుకూలంగా లేదు, ఇది Linuxలో ZFSని Linux కెర్నల్ యొక్క ప్రధాన శాఖలో విలీనం చేయడానికి అనుమతించదు, GPLv2 మరియు CDDL లైసెన్స్‌ల క్రింద కోడ్ కలపడం అనుమతించబడదు. ఈ లైసెన్స్ అననుకూలతను తప్పించుకోవడానికి, CDDL లైసెన్స్ క్రింద మొత్తం ఉత్పత్తిని విడిగా లోడ్ చేయగల మాడ్యూల్‌గా పంపిణీ చేయాలని నిర్ణయించబడింది, ఇది కోర్ నుండి విడిగా సరఫరా చేయబడుతుంది. Linux కోడ్‌బేస్‌పై ZFS యొక్క స్థిరత్వం Linux కోసం ఇతర ఫైల్ సిస్టమ్‌లతో పోల్చదగినదిగా రేట్ చేయబడింది.

ప్రధాన మార్పులు:

  • ఫైల్ సిస్టమ్ మరియు విభజనల స్థాయిలో నిల్వ చేయబడిన డేటా ఎన్క్రిప్షన్ కోసం అంతర్నిర్మిత మద్దతు జోడించబడింది. డిఫాల్ట్ ఎన్‌క్రిప్షన్ అల్గోరిథం aes-256-ccm. ఎన్క్రిప్షన్ కీలను లోడ్ చేయడానికి "zfs లోడ్-కీ" ఆదేశం ప్రతిపాదించబడింది;
  • 'zfs send' మరియు 'zfs రిసీవ్' ఆదేశాలను అమలు చేస్తున్నప్పుడు గుప్తీకరించిన డేటాను బదిలీ చేయగల సామర్థ్యాన్ని అమలు చేసింది. “-w” ఎంపికను పేర్కొనేటప్పుడు, పూల్‌లో ఇప్పటికే ఎన్‌క్రిప్ట్ చేయబడిన డేటా ఇంటర్మీడియట్ డిక్రిప్షన్ లేకుండా మరొక పూల్‌కి బదిలీ చేయబడుతుంది. అటువంటి కాపీ చేయడంతో, డేటా పంపినవారి కీ ద్వారా రక్షించబడుతుంది, ఇది నమ్మదగని సిస్టమ్‌లకు బ్యాకప్ చేయడానికి ఈ మోడ్‌ను ఉపయోగించడానికి అనుమతిస్తుంది (గ్రహీత రాజీపడి ఉంటే, దాడి చేసే వ్యక్తి కీ లేకుండా డేటాను యాక్సెస్ చేయలేరు);
  • స్టోరేజ్ పూల్ నుండి ప్రాథమిక డ్రైవ్‌లను తీసివేయడానికి మద్దతు జోడించబడింది, వ్యక్తిగతంగా మరియు మిర్రర్‌లో భాగంగా కనెక్ట్ చేయబడింది. "zpool remove" ఆదేశంతో తొలగింపు జరుగుతుంది. తొలగింపు ప్రక్రియ మినహాయించబడిన డ్రైవ్ నుండి పూల్‌లోని మిగిలిన ప్రాథమిక డ్రైవ్‌లకు డేటాను కాపీ చేస్తుంది;
  • పూల్ యొక్క ప్రస్తుత స్థితిని సేవ్ చేయడానికి "zpool చెక్‌పాయింట్" కమాండ్ జోడించబడింది, అలాగే సేవ్ చేయబడిన పాయింట్‌కి తదుపరి మార్పులను తిరిగి పొందగల సామర్థ్యంతో (మొత్తం పూల్ యొక్క స్నాప్‌షాట్ సృష్టించబడుతుంది). ప్రమాదకరమైన సంక్లిష్టమైన పరిపాలనా పనిని నిర్వహించే ప్రక్రియలో ఈ ఫీచర్ ఉపయోగపడుతుంది, ఇది సాధారణ పరిస్థితుల్లో కోలుకోలేని మార్పులకు దారితీస్తుంది (ఉదాహరణకు, కొత్త ZFS కార్యాచరణ కోసం ఫ్లాగ్‌లను యాక్టివేట్ చేయడం లేదా డేటాను క్లియర్ చేయడం);
  • పూల్‌లో ఉపయోగించిన డ్రైవ్‌లకు ఉపయోగంలో లేని సెక్టార్‌ల గురించి తెలియజేయడానికి "zpool ట్రిమ్" కమాండ్ జోడించబడింది. TRIM ఆపరేషన్ యొక్క ఉపయోగం SSDల సామర్థ్యాన్ని పెంచడం మరియు వాటి పనితీరు క్షీణించకుండా నిరోధించడం సాధ్యం చేస్తుంది. TRIM ఆదేశాలను ప్రసారం చేసే నిరంతర నేపథ్య ప్రక్రియను ప్రారంభించడానికి కొత్త "ఆటోట్రిమ్" ప్రాపర్టీ ప్రతిపాదించబడింది;
  • మొదటి యాక్సెస్‌లో పనితీరు క్షీణత లేకుండా (ఉదాహరణకు, VMware VMDK వంటి వర్చువలైజ్డ్ స్టోరేజీలను హోస్ట్ చేస్తున్నప్పుడు) కేటాయించబడని మొత్తం డిస్క్ స్థలాన్ని ప్రారంభించేందుకు "zpool initialize" ఆదేశం జోడించబడింది, ఇది ఉపయోగం కోసం తక్షణమే సిద్ధంగా ఉండటానికి అనుమతిస్తుంది.
  • గతంలో అందుబాటులో ఉన్న వినియోగదారు మరియు సమూహ-స్థాయి కోటాలకు అదనంగా అకౌంటింగ్ మరియు ప్రాజెక్ట్-స్థాయి కోటాలకు మద్దతు జోడించబడింది. సారాంశంలో, ప్రాజెక్ట్‌లు ప్రత్యేక ఐడెంటిఫైయర్ (ప్రాజెక్ట్ ID)తో అనుబంధించబడిన వస్తువుల యొక్క ప్రత్యేక స్థలం. బైండింగ్ అనేది 'chattr -p' ఆపరేషన్ ద్వారా లేదా అట్రిబ్యూట్ హెరిటెన్స్ ద్వారా నిర్వచించబడింది. ప్రాజెక్ట్ నిర్వహణ కోసం, “zfs ప్రాజెక్ట్” మరియు “zfs ప్రాజెక్ట్‌స్పేస్” ఆదేశాలు ప్రదర్శించబడతాయి, ఇది ప్రాజెక్ట్‌ల సృష్టిని నిర్వహించడానికి మరియు వాటి కోసం డిస్క్ స్థల పరిమితులను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది;
  • ZFSతో వివిధ వర్క్‌లను ఆటోమేట్ చేయడానికి లువా స్క్రిప్ట్‌లను సృష్టించే సామర్థ్యం జోడించబడింది. "zpool ప్రోగ్రామ్" ఆదేశాన్ని ఉపయోగించి స్క్రిప్ట్‌లు ప్రత్యేక ఐసోలేటెడ్ ఎన్విరాన్‌మెంట్‌లలో అమలు చేయబడతాయి;
  • కొత్త లైబ్రరీ అమలు చేయబడింది pyzfs, ఇది పైథాన్ అప్లికేషన్‌ల నుండి ZFSని నిర్వహించడం కోసం స్థిరమైన APIని అందిస్తుంది. లైబ్రరీ అనేది libzfs_core చుట్టూ ఒక రేపర్ మరియు ఒకే విధమైన ఫంక్షన్‌లను అందిస్తుంది, కానీ దగ్గరగా ఉండే పైథాన్ రకాలను ఉపయోగిస్తుంది;
  • arcstat, arcsummary మరియు dbufstat యుటిలిటీలు పైథాన్ 3కి అనుకూలంగా చేయబడ్డాయి. arcstat.py, arc_summary.py మరియు dbufstat.py యుటిలిటీలు ".py" పొడిగింపు లేకుండా సంస్కరణలకు పేరు మార్చబడ్డాయి;
  • Linux Direct IO (O_DIRECT) కెర్నల్ ఇంటర్‌ఫేస్‌కు మద్దతు జోడించబడింది, ఇది బఫరింగ్ లేకుండా మరియు కాష్‌ని దాటవేయకుండా డేటాను యాక్సెస్ చేయడానికి అనుమతిస్తుంది;
  • పనితీరు ఆప్టిమైజేషన్లు ప్రవేశపెట్టబడ్డాయి:
    • రెండు దశలుగా విభజించడం వల్ల “స్క్రబ్” మరియు “రిసిల్వర్” కమాండ్‌ల పని వేగవంతం చేయబడింది (మెటాడేటాను స్కాన్ చేయడానికి మరియు డిస్క్‌లోని డేటాతో బ్లాక్‌ల స్థానాన్ని నిర్ణయించడానికి ప్రత్యేక దశ కేటాయించబడింది, ఇది సీక్వెన్షియల్ డేటాను ఉపయోగించి తదుపరి ధృవీకరణను అనుమతిస్తుంది. పఠనం);
    • కేటాయింపు తరగతులకు మద్దతు జోడించబడింది,
      సాపేక్షంగా చిన్న SSDలను పూల్ చేయడానికి మరియు మెటాడేటా, DDT డేటా మరియు చిన్న ఫైల్ బ్లాక్‌ల వంటి సాధారణంగా ఉపయోగించే కొన్ని రకాల బ్లాక్‌లను మాత్రమే నిల్వ చేయడానికి ఉపయోగించబడుతుంది;

    • వంటి అడ్మిన్ ఆదేశాల మెరుగైన పనితీరు
      "zfs జాబితా" మరియు "zfs గెట్", వాటి ఆపరేషన్‌కు అవసరమైన మెటాడేటాను కాష్ చేయడం ద్వారా;

    • ప్రతి మెటాస్లాబ్ సమూహం కోసం ప్రత్యేక కేటాయింపు ప్రక్రియలను అమలు చేయడం ద్వారా బ్లాక్ కేటాయింపు కార్యకలాపాల సమాంతరీకరణకు మద్దతు జోడించబడింది. సాంప్రదాయిక వ్యవస్థలలో, 5-10% పనితీరు పెరుగుదల ఉంది, కానీ పెద్ద వాటిపై (8 128 GB SSD, 24 కోర్ NUMA, 256 GB RAM), బ్లాక్ కేటాయింపు కార్యకలాపాల పెరుగుదల 25%కి చేరుకుంటుంది;
    • "రెసిల్వర్" కమాండ్ ఆలస్యంగా అమలు అయ్యే అవకాశం జోడించబడింది (డ్రైవ్‌ల కాన్ఫిగరేషన్‌లో మార్పులను పరిగణనలోకి తీసుకుని డేటా పంపిణీని పునర్నిర్మించడం) - కొత్త ఆపరేషన్‌ను ప్రారంభించేటప్పుడు మునుపటిది ఇంకా పూర్తి చేయకపోతే, కొత్త హ్యాండ్లర్ ఆ తర్వాత మాత్రమే అమలు చేయడం ప్రారంభిస్తుంది. మునుపటిది పూర్తయింది;
    • నిల్వ ద్వారా ఇప్పటికీ ప్రాసెస్ చేయబడే బ్లాక్‌ల సమక్షంలో బ్లాక్‌లను సృష్టించడానికి మరియు ప్రాసెస్ చేయడానికి అనుమతించడానికి ZIL (ZFS ఇంటెంట్ లాగ్)కి ఆప్టిమైజేషన్‌లు జోడించబడ్డాయి;
    • సిస్టమ్‌లోని విభజనల (zvol) నమోదు సమయం తగ్గించబడింది. పూల్ పెద్ద సంఖ్యలో విభజనలను కలిగి ఉన్నప్పుడు, అవి "zpool దిగుమతి" చేసిన వెంటనే అందుబాటులో ఉంటాయి;
    • ఇంటెల్ QAT (క్విక్ అసిస్ట్ టెక్నాలజీ) చిప్‌లను ఉపయోగించి SHA256 హ్యాష్‌లు మరియు AES-GSM ఎన్‌క్రిప్షన్ కార్యకలాపాల యొక్క హార్డ్‌వేర్ వేగవంతమైన గణనకు మద్దతు జోడించబడింది. Intel C62x చిప్‌సెట్ మరియు CPU Atom C3000 హార్డ్‌వేర్ త్వరణం కోసం మద్దతు జోడించబడింది.

మూలం: opennet.ru

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