विभाजन का उपयोग कर एक उन्नत प्रारूप HDD पर विभाजन का उचित संरेखण


15

पहले मैं एक नए GPT तालिका में एक ठीक से संरेखित विभाजन बनाकर विभाजन के प्रारंभ और अंत के लिए प्रतिशत निर्दिष्ट करके भाग का उपयोग करता हूं:

# parted -a optimal /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Y
(parted) mkpart primary 0% 1%
(parted) p
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary

(parted) quit

ध्यान दें कि यह डिस्क उन्नत प्रारूप का उपयोग कर रही है, लेकिन 4096Bपार्टेड के भौतिक क्षेत्र के आकार की सही रिपोर्ट करती है । आइए इसे फिर से देखें, यूनिट के रूप में क्षेत्रों का उपयोग करते हुए:

# parted -a optimal /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) p
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdb: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End    Size   File system  Name     Flags
 1      2048s  4095s  2048s               primary

(parted) quit
  • इसने विभाजन की शुरुआत क्यों की 2048sऔर यह 34sसंभव नहीं है कि पहला क्षेत्र कौन सा है ?
  • 34sयदि भौतिक क्षेत्र का आकार सही है 4096Bऔर तार्किक (जो कि आपके द्वारा निर्दिष्ट एक है) सेक्टर आकार है, तो ठीक से संरेखित प्रारंभ क्षेत्र नहीं है 512B। ठीक से संरेखित प्रारंभ क्षेत्र 8(भौतिक क्षेत्र आकार / तार्किक क्षेत्र आकार = 8) के बाद से विभाजन योग्य है । लेकिन इसका मतलब 40sहै कि यह पहली बार ठीक से शुरू किया गया सेक्टर है, फिर भी इसका उपयोग नहीं किया गया है। क्यों?

यदि हम एक नए GPT विभाजन तालिका में 100MiBशुरू होने वाली क्षमता का ठीक से संरेखित विभाजन बनाने का प्रयास करते हैं 40s:

# parted -a optimal /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Y
(parted) mkpart primary 40s 204839s
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted) unit MiB
(parted) p
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdb: 2861588MiB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start    End     Size    File system  Name     Flags
 1      0.02MiB  100MiB  100MiB  fat32        primary

(parted)
(parted) unit s
(parted) p
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdb: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End      Size     File system  Name     Flags
 1      40s    204839s  204800s  fat32        primary

(parted)
  • हम अभी भी Warning: The resulting partition is not properly aligned for best performance.चेतावनी प्राप्त करते हैं , भले ही 40sऔर 204840 ( 204839s+ 1) दोनों द्वारा विभाजन योग्य हो 8। क्यों?

जवाबों:


23

पक्षपाती केवल अत्यधिक रूढ़िवादी हो रहा है। इन दिनों सामान्य अभ्यास 1MiB (2048-सेक्टर) सीमाओं पर विभाजनों को संरेखित करना है क्योंकि यह उन्नत प्रारूप डिस्क पर, कुछ विशेष प्रकार के RAID सेटअपों पर काम करता है जिनमें संरेखण की आवश्यकता होती है, और अधिकांश एसएसडी पर। उन्नत प्रारूप डिस्क के लिए, जब तक कि संरेखण 8 के कई पर होता है, तब तक आप ठीक हैं, और 2048 से अधिक 8 हैं। खोई हुई डिस्क स्थान पुंगी है - आपके कुल डिस्क स्थान का 0.0000336%, अगर मैंने किया गणित सही है और कुछ भी गलत नहीं किया है। तो इसके बारे में चिंता मत करो; बस 1MiB संरेखण का उपयोग करें।


हां, डिस्क की खोई हुई जगह मेरे लिए कोई मायने नहीं रखती। मैं बस यह जानना चाहता था कि मैं चीजों को सही ढंग से समझ रहा हूं। मैं इस समय पार्टेड के सोर्स कोड की जांच कर रहा हूं, लेकिन मेरे पास जितना समय है, उससे थोड़ा अधिक समय लगता है। इसलिए मैं अभी आगे जाऊंगा और 1MiB- अलाइनमेंट का उपयोग करूंगा। फिर से मदद करने के लिए धन्यवाद!
नष्ट कर दिया

1
यह उल्लेख के लायक है कि यह केवल विभाजन की रूढ़िवादिता नहीं है, बल्कि लिनक्स ब्लॉक परत की एक सीमा है। एटीए ड्राइव optimal_io_sizeसंकेत प्रदान नहीं करते हैं। इसलिए, "विरासत" एटीए उपकरणों के बीच अंतर करने का कोई तरीका नहीं है जो प्रदान नहीं करते हैं alignment_offsetऔर alignment_offset0 और उन लोगों के लिए चूक हैं जो हैं alignment_offset=0। ऐसी ड्राइव के लिए fdisk / parted उपयोग 1MB पार्टीशन संरेखण
रूलेबो

1
और स्वयं संख्या - 1MB विभाजन संरेखण विंडोज विस्टा व्यवहार से आता है , जैसा कि भाग की प्रतिबद्ध में संदर्भित है ।
रूलेबो

1

मैं शायद जोड़ दूंगा कि लिनक्स पर एक ऐसी स्थिति में आ partedसकता है जहां एक ही समय में एक इष्टतम और न्यूनतम संरेखण की जांच कभी नहीं हो सकती ।

इसका कारण यह है कि parted(कम से कम संस्करण 3.2 के रूप में) पर निर्भर करता है libblkid, जो बदले में मूल्यों से रिपोर्ट करता है /sys/block/<disk>/queue/minimum_io_sizeऔर /sys/block/<disk>/queue/optimal_io_size( io-limit.txt देखें )।

इसलिए जबकि एक उन्नत प्रारूप डिस्क के लिए पूर्व 4k की तरह कुछ होने की संभावना है, बाद वाले का कुछ पागल मूल्य हो सकता है - जैसे 65535 * 512 == 33553920

अब यदि हम स्रोत कोड को देखते हैं - "उचित", या "सबसे अच्छा प्रदर्शन" संरेखण को parted.c में सूत्र द्वारा परिभाषित किया गया है :: पार्टीशन_का_का_चेक () :

part->geom.start % pa->grain_size == pa->offset, 

जहां grain_sizeI / O ब्लॉक आकार ऊपर से आता है, geom.startक्या हमारा विभाजन ऑफसेट है, और संरेखण ऑफसेट pa->offsetकाफी अक्सर शून्य है।

डिफ़ॉल्ट रूप से, पक्षपातपूर्ण 1 MiB को एक इष्टतम माना जाएगा, और ~ 4k न्यूनतम होने के लिए (बिल्कुल नहीं, यह थोड़ा सा सरलीकरण है) ब्लॉक आकार, इसलिए ये मान सहसंबंधी होंगे; हालाँकि, यदि यह libblkidअन्यथा निर्णय लेता है , तो partedउस पर भरोसा करने के लिए जाता है, और उस डिफ़ॉल्ट मान को 1 MiB के स्थान पर पाया जाता है /sys/block/<disk>/queue/optimal_io_size। (एक ही समय में, /sys/block/<disk>/queue/minimum_io_sizeसंभावना है कि आप वही 4096 बी देंगे)

उस मामले में, जुदा इष्टतम जांच करेंगे कभी नहीं के साथ एक साथ पारित न्यूनतम जांच, क्या संभवतः एक छोटे से भ्रमित हो सकता है।

कि ध्यान में रखते - संदेह में हैं, एक नज़र में है queue/optimal_io_sizeऔर queue/minimum_io_size, और यदि पूर्व उत्तरार्द्ध, बस जुदा ignore 'चेतावनी से विभाज्य नहीं है, और खुद के लिए तय करें कि आप एक साथ जाना चाहते हो इष्टतम या कम से कम की जांच ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.