क्या लिनक्स पर ZFS कई उपकरणों पर बूट विभाजन को फैलाता है?


2

विषय के बारे में Im पढ़ना अगर लिनक्स पर ZFS का उपयोग रूट फाइल सिस्टम के लिए ही किया जा सकता है और एक दिलचस्प विकि लेख उपलब्ध है। लेकिन उदाहरण में विभाजन लेआउट मेरे लिए स्पष्ट नहीं है।

# sgdisk     -n1:0:0      -t1:BF01 /dev/disk/by-id/scsi-SATA_disk1
Run this if you need legacy (BIOS) booting:
# sgdisk -a1 -n2:34:2047  -t2:EF02 /dev/disk/by-id/scsi-SATA_disk1
Run this for UEFI booting (for use now or in the future):
# sgdisk     -n3:1M:+512M -t3:EF00 /dev/disk/by-id/scsi-SATA_disk1
Run this in all cases:
# sgdisk     -n9:-8M:0    -t9:BF07 /dev/disk/by-id/scsi-SATA_disk1

इस उदाहरण में मुझे जो समझ में नहीं आया वह पहला विभाजन है। Sgdisk के मैन पेज के माध्यम से पढ़ना मेरे लिए स्पष्ट नहीं है यदि पहला विभाजन केवल एक ब्लॉक का आकार है या यदि यह अनिवार्य रूप से पूरे डिवाइस को कवर करता है। बाद के मामले में इसका मतलब यह होगा कि अन्य सभी निर्मित विभाजन पहले एक के भीतर बने हैं? मुझे आश्चर्य होता है कि मैन पेज में निम्नलिखित वाक्य है:

0 का प्रारंभ या अंतिम मान डिफ़ॉल्ट मान को निर्दिष्ट करता है, जो प्रारंभ क्षेत्र के लिए सबसे बड़े उपलब्ध ब्लॉक की शुरुआत है और अंत क्षेत्र के लिए उसी ब्लॉक का अंत है।

"एक ही ब्लॉक" भौतिक डिवाइस के एक ब्लॉक की तरह लगता है, इसलिए या तो 512 बाइट या डेटा की 4k बाइट? या अंत में कई तार्किक / भौतिक ब्लॉकों को फैलाते हुए, इसका मतलब है कि कुछ सन्निहित राशि का भंडारण है?

विकी में निम्नलिखित वाक्य के कारण मेरे लिए इसे समझना महत्वपूर्ण है:

रूट पूल में एक डिस्क नहीं होना चाहिए; यह एक दर्पण या छापा टोपोलॉजी हो सकता है। उस स्थिति में, सभी डिस्क के लिए विभाजन कमांड को दोहराएं जो पूल का हिस्सा होगा। फिर, ज़ूल क्रिएट का उपयोग करके पूल बनाएं ... रैंप मिरर / देव / डिस्क / बाय-आईडी / एससीआई- SATA_disk1-part1 / देव / डिस्क / बाय-आईडी / scsi-SATA_disk2-part1 (या raidz, raidz2 के साथ दर्पण बदलें) या raidz3 और अतिरिक्त डिस्क से विभाजन को सूचीबद्ध करें)।

जैसा कि आप पढ़ सकते हैं, केवल पहले विभाजन को पूल में रखा गया है, ऊपर बनाए गए अन्य का उल्लेख बिल्कुल नहीं है। मैं यह नहीं समझ पा रहा हूं कि क्या अन्य विभाजन का हिस्सा है part1और इसलिए पूल में निहित है या पूल के लिए बिल्कुल भी उपयोग नहीं किया गया है। उदाहरण के लिए, GRUB को अन्य विभाजन में से एक में स्थापित किया गया है, इस मामले में ZFS पूल का कोई संदर्भ नहीं:

# mkdosfs -F 32 -n EFI /dev/disk/by-id/scsi-SATA_disk1-part3
[...]
# echo PARTUUID=$(blkid -s PARTUUID -o value \
      /dev/disk/by-id/scsi-SATA_disk1-part3) \
      /boot/efi vfat nofail,x-systemd.device-timeout=1 0 1 >> /etc/fstab

मेरे लिए यह पसंद part3है कि ZFS पूल का हिस्सा नहीं है और इसलिए इसे व्यक्तिगत रूप से उपयोग किया जाता है। लेकिन यह कैसे आकार के लिए फिट बैठता है part1? केवल एक ब्लॉक का एक विभाजन बहुत मायने नहीं रखता है, जबकि अगर किसी तरह part3से निहित है part1, तो इसका मतलब यह होगा कि यह ZFS पूल का हिस्सा है, लेकिन इसके बिना भी संबोधित किया गया है?

मुझे यह समझने की आवश्यकता है कि उपर्युक्त उदाहरण में कई उपकरणों और विभाजन के साथ सेटअप में बूट विभाजन के लिए कैसे अतिरेक प्रदान किया जाता है। की तुलना में mdadm, कुल लक्ष्य एक RAID10 सेटअप है, जहां हमेशा दो उपकरणों को प्रतिबिंबित किया जाता है और उन उपकरणों के विभाजन को फिर सभी दर्पणों पर धारीदार किया जाता है। अंत में, 6 डिस्क्स के साथ एक बूट विभाजन और रूट पूल के लिए 3 गुना भंडारण होगा। ZFS सामान्य रूप से ऐसा करने में सक्षम है, मुझे यकीन नहीं है कि पूल का हिस्सा क्या है और यदि अतिरेक बूट विभाजन को भी कवर करता है।

मेरी वर्तमान भावना यह है कि ऐसा नहीं है और मुझे mdadmबूट विभाजन को निरर्थक बनाने की आवश्यकता होगी । केवल इसलिए कि ऊपर GRUB उदाहरण कुछ विशिष्ट डिस्क और विभाजन तक पहुँचता है, एक भौतिक उपकरण, ZFS द्वारा निर्मित कुछ तार्किक दर्पण नहीं। इसके अतिरिक्त, उस विभाजन को ZFS के बजाय FAT32 के साथ स्वरूपित किया गया है। यह नहीं पढ़ता है जैसे कि ZFS उन सभी विभाजनों की परवाह कर रहा है।

तो अंत में, क्या ZFS एक RAID10 सेटअप का समर्थन करता है जो mdadmसभी बूट विभाजन, रूट और इस तरह, वास्तव में सब कुछ सहित संभव है ?

जवाबों:


2

प्रत्येक डिस्क (कम से कम दो, वैसे भी) को एक बूट विभाजन की आवश्यकता होगी जो हार्डवेयर विफलता की स्थिति में अतिरेक प्रदान करने के लिए ZFS पूल का हिस्सा नहीं है

ऊपर दिए गए निर्देशों में यह भविष्य में होने वाले बदलावों के खिलाफ एक प्रकार के सक्रिय उपाय के रूप में एक EFI बूट विभाजन का निर्माण कर रहा है (EFI बूट विभाजन FAT छोटे-ish FAT वसा फ़ाइल सिस्टम हैं जो मूल रूप से ड्राइवर को चेनलोड करते हैं)।

किसी भी मामले में, उन पहले तीन विभाजनों में से कोई भी ज़ूलप से संबंधित नहीं है - बस आखिरी (सबसे बड़ा) एक है।

फ्रीबीएसडी के लिए रूट पर ZFS के लिए यह HOWTO इसे और अधिक विस्तार से बताता है। (लेकिन अलग-अलग कमांड सिर्फ इसे और अधिक भ्रमित कर सकते हैं ...)

निम्नलिखित को धयान मे रखते हुए:

  • आपका फ़र्मवेयर (BIOS, EFI, जो भी हो) एक बूट को खोजने के अलावा और कुछ नहीं जानता है
  • JBOD (डिस्क का सिर्फ एक गुच्छा) के अलावा कुछ भी नहीं है

आप सीधे ZFS से बूट नहीं कर सकते क्योंकि आपके फर्मवेयर को पता नहीं है कि ZFS क्या है। इसलिए गैर-जेडएफएस विभाजन होने की आवश्यकता है फर्मवेयर से बूट हो सकता है, और चूंकि यह जेडएफएस अतिरेक द्वारा संरक्षित नहीं होगा, यह कई स्थानों पर इसकी प्रतियां होने के लिए समझ में आता है।


यदि पहले तीन विभाजन में से कोई भी नहीं है, तो क्यों -पार्ट 1 को इसमें जोड़ा गया है? नहीं होना चाहिए कि -9 के बजाय और बस एक त्रुटि है? यही मुझे भ्रमित कर रहा है, अन्यथा आपका स्पष्टीकरण उस चीज़ पर पूरी तरह से फिट बैठता है जो मैंने पहले ही सोचा था। धन्यवाद।
थोरस्टेन शॉनिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.