क्या लिनक्स के अंतर्गत SSD डिस्क के लिए डिफ़ॉल्ट 512 बाइट भौतिक क्षेत्र आकार उपयुक्त है?


11

GSmartControl और किसी भी अन्य कमांड लाइन टूल (जैसे fdisk, smartctl, cat /sys/block/sd*/queue/hw_sector_size, cat /sys/block/sd*/queue/physical_block_size) मैं रिपोर्ट मेरी डिस्क दोनों के लिए एक ही इस्तेमाल किया था:

Sector Size: 512 bytes logical/physical

यह एक डिफ़ॉल्ट उबंटू 18.10 (बाद में 19.04 में अपग्रेड किया गया) इंस्टॉलेशन है। हालाँकि, stat -fदोनों डिस्क रिपोर्ट पर कमांड:

Block size: 4096       Fundamental block size: 4096

मेरे दोनों डिस्क SSDs हैं और AFAIK SSD डिस्क को 4K के सेक्टर आकार की आवश्यकता है । क्या यह ठीक है या मुझे कुछ याद आ रहा है? क्या stat(= 4K) द्वारा दी गई जानकारी यह सुनिश्चित करती है कि OS हमेशा 4K के मल्टीपल में IOs को डिस्क पर भेजेगा और ये ब्लॉक कभी 4K सीमाओं को पार नहीं करेगा (IO ब्लॉक हमेशा 4K के साथ संरेखित किया जाएगा)?

कृपया निम्नलिखित आउटपुट पर ध्यान दें ( sdb2मेरा रूट विभाजन है , sdaमेरी /homeडिस्क है):

# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....

Device       Start       End   Sectors  Size Type
/dev/sdb1     2048   1050623   1048576  512M EFI System
/dev/sdb2  1050624 500117503 499066880  238G Linux filesystem

# df / /home
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb2      244568380  17799136 214276188   8% /
/dev/sda       479670976 129685112 325550152  29% /home

हाँ। इसमें सहायक जानकारी होती है। लेकिन, मुझे इस प्रश्न का आधिकारिक उत्तर नहीं मिला है: क्या स्टेटमेंट (4K) द्वारा दी गई जानकारी यह सुनिश्चित करती है कि OS हमेशा 4K के कई में डिस्क में IOs भेजेगा और ये ब्लॉक कभी भी 4K सीमाओं को पार नहीं करेगा (IO ब्लॉक हमेशा होगा) 4K में संरेखित किया जाए)?
फेडोनकादिफ़ेली

मुझे नहीं पता कि "स्टेट (4K)" क्या है। लेकिन अधिकांश आधुनिक ओएस को पता है कि मूल 4K I / O स्थानान्तरण से कैसे निपटना है। और नहीं, इसका मतलब यह नहीं है कि ब्लॉक डिस्क पर 4K सीमाओं को कभी भी पार नहीं करेंगे जब तक कि विभाजन ठीक से गठबंधन नहीं किए जाते हैं। fdisk -lसंरेखण मुद्दों के लिए जाँच करने के लिए उपयोग करें । और जाहिरा तौर पर एसएसडी का काम उनके भौतिक निर्माण के कारण थोड़ा अलग है, लेकिन मैं उस क्षेत्र का विशेषज्ञ नहीं हूं।
हेयनेमा

जवाबों:


7

पुराने दिनों में, 512 बाइट सेक्टर डिस्क के लिए आदर्श थे। यह प्रणाली एक समय में केवल एक सेक्टर को पढ़ने / लिखने के लिए उपयोग की जाती थी, और यह सबसे अच्छा था जो पुरानी हार्ड ड्राइव कर सकती थी।

अब, आधुनिक ड्राइव के साथ इतना घना, और इतना तेज, और इतना स्मार्ट, पढ़ने / लिखने के क्षेत्रों में एक समय में केवल एक सेक्टर वास्तव में कुल थ्रूपुट को धीमा कर देता है।

चाल थी ... आप कुल थ्रूपुट को कैसे गति देते हैं, लेकिन फिर भी पुराने / मानक डिस्क सबसिस्टम के साथ संगतता बनाए रखते हैं? आप एक 4096 ब्लॉक आकार बनाते हैं जो आठ 512 बाइट भौतिक क्षेत्रों से बना होता है। 4096 अब डिस्क से / के लिए न्यूनतम रीड / राइट ट्रांसफर है, लेकिन यह ओएस से संगत 512 बाइट चक में बंद है।

इसका मतलब यह है कि भले ही सिस्टम को केवल 512 बाइट सेक्टर की जानकारी की आवश्यकता हो, ड्राइव इसे प्राप्त करने के लिए आठ 512 बाइट सेक्टर पढ़ता है। यदि फिर भी, सिस्टम को अगले सात क्षेत्रों की आवश्यकता है, तो यह पहले से ही उन्हें पढ़ा है, इसलिए कोई डिस्क I / O होने की आवश्यकता नहीं है ... इसलिए कुल थ्रूपुट में एक गति बढ़ जाती है।

आधुनिक ऑपरेटिंग सिस्टम पूरी तरह से आधुनिक ड्राइव के मूल 4K ब्लॉक आकारों का लाभ उठा सकते हैं।


+1 लेकिन 4096/512 = 8, इसलिए मुझे लगता है कि 4096 b के एक भौतिक क्षेत्र में 512 b के 8 (तार्किक) क्षेत्र होने चाहिए। मैं partedतार्किक और भौतिक दोनों प्रकार के आकार दिखाने के लिए उपयोग करता हूं ।
सूडोडस

@sudodus अच्छा कैच। संपादित किया गया।
हेयनेमा

यही कारण है कि अपने विभाजनों को 4k सीमा में संरेखित करना महत्वपूर्ण है, अन्यथा हर 4k ब्लॉक लोड / स्टोर वास्तव में दो हार्डवेयर क्षेत्रों को छूता है। (विभाजन के अंदर फाइलसिस्टम अक्सर विभाजन की शुरुआत के लिए संरेखित 4k ब्लॉकों का उपयोग करते हैं)। कुछ स्वरूपण उपकरण 1MiB द्वारा पहले विभाजन को संरेखित करते हैं, विभाजन तालिका को छोड़कर पूरे MiB को अप्रयुक्त करते हैं। आधुनिक ड्राइव करते 4k के रूप में उनकी शारीरिक क्षेत्र आकार की रिपोर्ट, उनके तार्किक सेक्टर आकार जो अभी भी 512B है से अलग।
पीटर कॉर्ड्स

@PeterCordes, न केवल बूट सेक्टर और विभाजन तालिका (पहले 512 बाइट्स में) पहले Mibibyte में संग्रहीत हैं। MSDOS विभाजन तालिका में, grubBIOS मोड में बूट करने के लिए पहले Mibibyte में अतिरिक्त कोड डालता है। (जीपीटी में, BIOS कोड में उस कोड को बूट करने के लिए ध्वज के grubसाथ एक छोटे से विभाजन की आवश्यकता होती bios_grubहै)।
सुदोदुस

4

विकिपीडिया के अनुसार "उन्नत प्रारूप (AF) डिस्क ड्राइव में डेटा को संग्रहीत करने के लिए उपयोग किया जाने वाला कोई भी डिस्क सेक्टर प्रारूप है, जो प्रति सेक्टर 512, 520 या 528 बाइट्स से अधिक है, जैसे कि उन्नत प्रारूप ड्राइव (AFD) के 4096-बाइट सेक्टर।" उन्नत प्रारूप (एएफ) एक डिस्क प्रारूप है जो 512 बाइट्स के बजाय 4,096 बाइट्स के सेक्टर आकार का उपयोग करता है। विरासत प्रणालियों के साथ संगतता बनाए रखने के लिए, AF डिस्क 512 बाइट्स के सेक्टर आकार का अनुकरण करता है।

मुझे वही परिणाम मिले जो आपको दौड़ने stat -fऔर smartctlदो SSDs पर मिले थे। जब वे स्थापित किए गए थे और शून्य कॉन्फ़िगरेशन की आवश्यकता थी, तो एसएसडी दोनों ओएस द्वारा स्वचालित रूप से पहचाने गए थे, इसलिए ऐसा प्रतीत होता है कि आपके द्वारा प्राप्त डेटा ब्लॉक आकार और सेक्टर आकार के लिए डिफ़ॉल्ट सेटिंग्स है।


@heynnema "4096-बाइट सेक्टर" के बारे में मैं कुछ नहीं कर सकता क्योंकि यह विकिपीडिया से कॉपी किया गया है, इसलिए मुझे इसे वैसा ही छोड़ना होगा जैसा कि यह विकिपीडिया में है।
1919

2
@heynnema: भौतिक आकार कहीं बड़ा है। SSD का निर्माण NAND फ़्लैश मेमोरी से किया गया है, जो कि तथाकथित "मिटा ब्लॉक" में शारीरिक रूप से विभाजित है। वे अधिक बड़े हो सकते हैं, 4MB निश्चित रूप से संभव है।
MSalters

1

क्या लिनक्स के अंतर्गत SSD डिस्क के लिए डिफ़ॉल्ट 512 बाइट भौतिक क्षेत्र आकार उपयुक्त है?

मेरे दोनों डिस्क SSDs हैं और AFAIK SSD डिस्क को 4K के सेक्टर आकार की आवश्यकता है। क्या यह ठीक है या मुझे कुछ याद आ रहा है?

पुराने हार्डवेयर और ऑपरेटिंग सिस्टम ने 512 बाइट सेक्टर का इस्तेमाल किया, 2011 से (लगभग) सभी स्टोरेज हार्डवेयर में 4096 (या बड़ा ) बाइट सेक्टर हैं; लेकिन कुछ हार्डवेयर विरासत प्रणालियों के लिए 512 बाइट क्षेत्रों के अनुकरण का समर्थन करते हैं। अपवाद हैं, सैमसंग 840 ईवीओ एसएसडी के आकार 2048 केबी के ब्लॉक हैं ।

एक त्रुटि सुधार कोड (ईसीसी) की गणना प्रत्येक 512 बाइट चंक के लिए की जाती है, और जैसा कि आप कल्पना कर सकते हैं, ईसीसी डेटा संग्रहण स्थान भी है। यह बिना कहे चला जाता है कि एक 4096 बाइट सेक्टर के लिए ईसीसी की आठ आठ बाइट की तुलना में कम ईसीसी जानकारी की आवश्यकता होती है अगर ईसीसी एल्गोरिदम अपरिवर्तित रहे। अंत में, हार्ड ईसीसी डेटा ओवरहेड के परिणामस्वरूप हार्ड ड्राइव की कुल भंडारण क्षमता बढ़ जाती है।

4K क्षेत्रों का उपयोग करना एक वास्तुशिल्प दृष्टिकोण से समझ में आता है, क्योंकि अन्य प्रमुख आंकड़े (जैसे x86 मेमोरी पेज और कई फाइल सिस्टम क्लस्टर) भी 4 केबी आकार को रोजगार देते हैं। उन्नत प्रारूप अधिक मजबूत ईसीसी एल्गोरिदम की अनुमति देता है, जो कि बढ़ती क्षमता के प्रकाश में महत्वपूर्ण है। नियंत्रकों ने NAND फ़्लैश मेमोरी एरर विशेषताओं और वर्कलोड व्यवहार की समझ के माध्यम से त्रुटि सुधार से परे अतिरिक्त तकनीकों को नियुक्त किया है।

उन्नत प्रारूप (AF) किसी भी डिस्क क्षेत्र का प्रारूप है जिसका उपयोग हार्ड डिस्क ड्राइव (HDDs) में चुंबकीय डिस्क पर डेटा को संग्रहीत करने के लिए किया जाता है, जो कि प्रति क्षेत्र 512, 520, या 528 बाइट्स से अधिक है, जैसे कि 4096, 4112, 4160, और 4224-बाइट ( 4 KB) एक उन्नत प्रारूप ड्राइव (AFD) के क्षेत्र। बड़े क्षेत्र उच्च भंडारण घनत्व पर डेटा अखंडता बनाए रखने के लिए मजबूत त्रुटि सुधार एल्गोरिदम के एकीकरण को सक्षम करते हैं।

SCSI (SAS) डिस्क के लिए RAID ब्लॉक आकार SCB T10 मानकीकृत डेटा अखंडता फ़ील्ड के साथ-साथ प्रत्येक ब्लॉक पर संग्रहीत डेटा के साथ तार्किक खराब ब्लॉक जाँच के कारण JBOD ब्लॉक आकार से बड़ा है । SAS RAID एडेप्टर 512 बाइट्स डेटा या 4K बाइट्स डेटा के आधार पर डिस्क ब्लॉक का समर्थन करता है। 512 डिस्क के लिए RAID ब्लॉक का आकार प्रति सेक्टर 528 बाइट्स है और 4K डिस्क के लिए RAID ब्लॉक का आकार प्रति सेक्टर 4224 बाइट्स है।

क्योंकि आप मेमोरी में लिख रहे हैं और कताई डिस्क भौतिक क्षेत्र के आकार को यह सुनिश्चित करने से कम प्रभाव नहीं है कि आपके विभाजन मिटा ब्लॉक आकार के साथ संरेखित हैं । यहां तक ​​कि सॉफ्टवेयर और हार्डवेयर को अद्यतित करना और 4K सेक्टर आकार का उपयोग करना सबसे अच्छा है।

इंटेल द्वारा बड़े क्षेत्र आकार की सिफारिश की जाती है - " एसएसडी भौतिक क्षेत्र के आकार में परिवर्तन द्वारा इष्टतम प्रदर्शन "।

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