Linux 0.8.0 पर ZFS की रिलीज़, Linux कर्नेल के लिए ZFS का कार्यान्वयन

लगभग दो साल के विकास के बाद प्रस्तुत релиз Linux 0.8.0 पर ZFS, लिनक्स कर्नेल के लिए एक मॉड्यूल के रूप में पैक किए गए ZFS फाइल सिस्टम का कार्यान्वयन। मॉड्यूल का 2.6.32 से 5.1 तक लिनक्स कर्नेल के साथ परीक्षण किया गया है। तैयार स्थापना पैकेज जल्द ही आ रहे हैं तैयार किया जाएगा डेबियन, उबंटू, फेडोरा, आरएचईएल/सेंटोस सहित प्रमुख लिनक्स वितरण के लिए। Linux मॉड्यूल पर ZFS पहले से ही Debian, Ubuntu, Gentoo, Sabayon Linux और ALT Linux वितरण में शामिल है।

लिनक्स पर ZFS के हिस्से के रूप में, फाइल सिस्टम के संचालन और वॉल्यूम मैनेजर के कामकाज दोनों से संबंधित ZFS घटकों का कार्यान्वयन तैयार किया गया है। विशेष रूप से, निम्नलिखित घटक लागू किए गए हैं: एसपीए (स्टोरेज पूल एलोकेटर), डीएमयू (डेटा मैनेजमेंट यूनिट), जेडवीओएल (जेडएफएस एमुलेटेड वॉल्यूम) और जेडपीएल (जेडएफएस पॉसिक्स लेयर)। इसके अतिरिक्त, परियोजना लस्टर क्लस्टर फ़ाइल सिस्टम के लिए बैकएंड के रूप में ZFS का उपयोग करने की क्षमता प्रदान करती है। परियोजना का कार्य ओपनसोलारिस परियोजना से आयातित मूल जेडएफएस कोड पर आधारित है और इलुमोस समुदाय से सुधारों और सुधारों के साथ बढ़ाया गया है। अमेरिकी ऊर्जा विभाग के साथ एक अनुबंध के तहत लिवरमोर नेशनल लेबोरेटरी के कर्मचारियों की भागीदारी के साथ परियोजना विकसित की जा रही है।

कोड एक मुफ्त सीडीडीएल लाइसेंस के तहत वितरित किया गया है, जो जीपीएलवी2 के साथ असंगत है, जो लिनक्स पर जेडएफएस को लिनक्स कर्नेल की मुख्य शाखा में एकीकृत करने की अनुमति नहीं देता है, क्योंकि जीपीएलवी2 और सीडीडीएल लाइसेंस के तहत कोड को मिलाने की अनुमति नहीं है। इस लाइसेंस असंगतता को दरकिनार करने के लिए, सीडीडीएल लाइसेंस के तहत पूरे उत्पाद को एक अलग लोड करने योग्य मॉड्यूल के रूप में वितरित करने का निर्णय लिया गया, जिसे कोर से अलग से आपूर्ति की जाती है। लिनक्स कोडबेस पर ZFS की स्थिरता को लिनक्स के लिए अन्य फाइल सिस्टम की तुलना में रेट किया गया है।

मुख्य परिवर्तन:

  • फ़ाइल सिस्टम और विभाजन के स्तर पर संग्रहीत डेटा के एन्क्रिप्शन के लिए अंतर्निहित समर्थन जोड़ा गया। डिफ़ॉल्ट एन्क्रिप्शन एल्गोरिथम aes-256-ccm है। एन्क्रिप्शन कुंजियों को लोड करने के लिए "zfs लोड-की" कमांड प्रस्तावित किया गया है;
  • 'zfs सेंड' और 'zfs रिसीव' कमांड को निष्पादित करते समय एन्क्रिप्टेड डेटा ट्रांसफर करने की क्षमता को लागू किया। "-w" विकल्प निर्दिष्ट करते समय, पूल में पहले से एन्क्रिप्ट किए गए डेटा को इंटरमीडिएट डिक्रिप्शन के बिना दूसरे पूल में स्थानांतरित कर दिया जाता है। इस तरह की नकल के साथ, डेटा प्रेषक की कुंजी द्वारा संरक्षित रहता है, जो इस मोड को अविश्वसनीय सिस्टम के बैकअप के लिए उपयोग करने की अनुमति देता है (प्राप्तकर्ता के समझौता होने की स्थिति में, हमलावर कुंजी के बिना डेटा तक पहुंचने में सक्षम नहीं होगा);
  • भंडारण पूल से प्राथमिक ड्राइव को हटाने के लिए जोड़ा गया समर्थन, व्यक्तिगत रूप से और एक दर्पण के हिस्से के रूप में जुड़ा हुआ है। निष्कासन "ज़ूलप रिमूव" कमांड के साथ किया जाता है। विलोपन प्रक्रिया डेटा को बहिष्कृत ड्राइव से पूल में शेष प्राथमिक ड्राइव में कॉपी करती है;
  • पूल की वर्तमान स्थिति को बचाने के लिए "ज़पूल चेकपॉइंट" कमांड जोड़ा गया है, जो समय में सहेजे गए बिंदु पर और परिवर्तन वापस करने की क्षमता रखता है (पूरे पूल का एक स्नैपशॉट बनाया गया है)। प्रस्तुत सुविधा संभावित खतरनाक जटिल प्रशासनिक कार्य करने की प्रक्रिया में उपयोगी हो सकती है, जो सामान्य परिस्थितियों में अपरिवर्तनीय परिवर्तनों की ओर ले जाती है (उदाहरण के लिए, नई ZFS कार्यक्षमता या समाशोधन डेटा के लिए झंडे को सक्रिय करना);
  • "zpool trim" कमांड को उन क्षेत्रों के बारे में पूल में उपयोग की जाने वाली ड्राइव को सूचित करने के लिए जोड़ा गया है जो अब उपयोग में नहीं हैं। टीआरआईएम ऑपरेशन के उपयोग से एसएसडी की दक्षता में वृद्धि करना और उनके प्रदर्शन में गिरावट को रोकना संभव हो जाता है। TRIM कमांड ट्रांसमिट करने की सतत पृष्ठभूमि प्रक्रिया को सक्षम करने के लिए एक नया "ऑटोट्रिम" गुण प्रस्तावित किया गया है;
  • सभी असंबद्ध डिस्क स्थान को प्रारंभ करने के लिए "ज़पूल इनिशियलाइज़" कमांड जोड़ा गया, जो इसे पहली बार उपयोग करने पर प्रदर्शन में गिरावट के बिना उपयोग के लिए तुरंत तैयार होने की अनुमति देता है (उदाहरण के लिए, जब VMware VMDK जैसे वर्चुअलाइज्ड स्टोरेज की मेजबानी करता है);
  • पहले से उपलब्ध उपयोगकर्ता और समूह-स्तरीय कोटा के अलावा लेखांकन और परियोजना-स्तरीय कोटा के लिए समर्थन जोड़ा गया। संक्षेप में, परियोजनाएं एक अलग पहचानकर्ता (प्रोजेक्ट आईडी) से जुड़ी वस्तुओं का एक अलग स्थान है। बाइंडिंग को 'चैटर-पी' ऑपरेशन या विशेषता विरासत के माध्यम से परिभाषित किया गया है। प्रोजेक्ट प्रबंधन के लिए, "zfs प्रोजेक्ट" और "zfs प्रोजेक्टस्पेस" कमांड प्रस्तुत किए जाते हैं, जो आपको प्रोजेक्ट्स के निर्माण का प्रबंधन करने और उनके लिए डिस्क स्थान सीमा निर्धारित करने की अनुमति देते हैं;
  • ZFS के साथ विभिन्न कार्यों को स्वचालित करने के लिए Lua स्क्रिप्ट बनाने की क्षमता जोड़ी गई। लिपियों को "ज़ूलप प्रोग्राम" कमांड का उपयोग करके विशेष पृथक वातावरण में चलाया जाता है;
  • नया पुस्तकालय लागू किया गया pzfs, जो पायथन अनुप्रयोगों से ZFS को प्रशासित करने के लिए एक स्थिर API प्रदान करता है। पुस्तकालय libzfs_core के चारों ओर एक आवरण है और कार्यों का एक समान सेट प्रदान करता है, लेकिन करीबी पायथन प्रकारों का उपयोग करता है;
  • आर्कस्टैट, आर्कसमरी और डीबीफस्टैट उपयोगिताओं को पायथन 3 के साथ संगत बनाया गया है। आर्कस्टैट.पी, आर्क_समरी.पी, और डीबीफस्टैट.पी यूटिलिटीज को ".पीई" एक्सटेंशन के बिना संस्करणों में बदल दिया गया है;
  • Linux डायरेक्ट IO (O_DIRECT) कर्नेल इंटरफ़ेस के लिए जोड़ा गया समर्थन, जो बिना बफ़रिंग और कैश को बायपास किए डेटा तक पहुँचने की अनुमति देता है;
  • प्रदर्शन अनुकूलन पेश किया गया:
    • "स्क्रब" और "रेसिल्वर" कमांड का काम दो चरणों में विभाजित होने के कारण तेज हो गया है (मेटाडेटा को स्कैन करने और डिस्क पर डेटा के साथ ब्लॉक के स्थान का निर्धारण करने के लिए एक अलग चरण आवंटित किया गया है, जो अनुक्रमिक डेटा का उपयोग करके आगे सत्यापन की अनुमति देता है। अध्ययन);
    • आवंटन वर्गों के लिए जोड़ा गया समर्थन,
      अपेक्षाकृत छोटे एसएसडी को पूल करने की अनुमति देता है और केवल कुछ प्रकार के सामान्य रूप से उपयोग किए जाने वाले ब्लॉक, जैसे मेटाडेटा, डीडीटी डेटा और छोटे फ़ाइल ब्लॉक को स्टोर करने के लिए उपयोग किया जाता है;

    • व्यवस्थापक आदेशों का बेहतर प्रदर्शन जैसे
      उनके संचालन के लिए आवश्यक मेटाडेटा को कैश करके "zfs सूची" और "zfs प्राप्त करें";

    • प्रत्येक मेटास्लैब समूह के लिए अलग आवंटन प्रक्रिया चलाकर समानांतर ब्लॉक आवंटन संचालन के लिए समर्थन जोड़ा गया। पारंपरिक प्रणालियों पर, प्रदर्शन में 5-10% की वृद्धि होती है, लेकिन बड़े लोगों (8 128 GB SSD, 24 कोर NUMA, 256 GB RAM) पर, ब्लॉक आवंटन संचालन में वृद्धि 25% तक पहुँच सकती है;
    • "रेसिल्वर" कमांड के विलंबित निष्पादन की संभावना को जोड़ा गया (ड्राइव के कॉन्फ़िगरेशन में परिवर्तन को ध्यान में रखते हुए डेटा वितरण का पुनर्निर्माण) - यदि नया ऑपरेशन शुरू करते समय पिछला एक अभी तक पूरा नहीं हुआ है, तो नया हैंडलर केवल बाद में निष्पादित करना शुरू करेगा पिछला समाप्त हो गया है;
    • स्टोरेज द्वारा अभी भी संसाधित किए जा रहे ब्लॉक की उपस्थिति में ब्लॉक बनाने और प्रसंस्करण की अनुमति देने के लिए ZIL (ZFS इंटेंट लॉग) में अनुकूलन जोड़ा गया है;
    • सिस्टम में विभाजन (zvol) के लिए कम पंजीकरण समय। जब एक पूल में बड़ी संख्या में विभाजन होते हैं, तो वे "ज़ूल आयात" करने के तुरंत बाद उपलब्ध होते हैं;
    • Intel QAT (क्विक असिस्ट टेक्नोलॉजी) चिप्स का उपयोग करके SHA256 हैश और AES-GSM एन्क्रिप्शन संचालन की हार्डवेयर त्वरित गणना के लिए समर्थन जोड़ा गया। Intel C62x चिपसेट और CPU एटम C3000 के हार्डवेयर त्वरण के लिए समर्थन जोड़ा गया।

स्रोत: opennet.ru

एक टिप्पणी जोड़ें