mdadm और 4k क्षेत्र (उन्नत प्रारूप)


10

4k सेक्टर डिस्क को संरेखित करने के बारे में सर्वरफॉल्ट पर कई सवाल हैं, लेकिन एक चीज मेरे लिए अभी तक स्पष्ट नहीं है।

मैंने अपने RAID1 + LVM को सफलतापूर्वक गठबंधन किया है। मेरे द्वारा की गई चीजों में से एक का उपयोग किया गया था mdadm सुपरब्लॉक संस्करण 1.0 (जो डिस्क के अंत में सुपरब्लॉक को संग्रहीत करता है)।

मैनपेज यह कहता है:

विभिन्न उप-संस्करण डिवाइस पर अलग-अलग स्थानों पर सुपरब्लॉक को स्टोर करते हैं, या तो अंत में (1.0 के लिए), शुरुआत में (1.1 के लिए) या शुरुआत से 4K (1.2 के लिए)। "1" "1.0" के बराबर है। "डिफ़ॉल्ट" "1.2" के बराबर है।

क्या 1.2 संस्करण, जो डिफ़ॉल्ट है, 4k सेक्टर ड्राइव के लिए बनाया गया है? जिस तरह से मैं इसे देखता हूं, वह नहीं है, क्योंकि शुरू से 4k + सुपरब्लॉक की लंबाई 4k की भीड़ नहीं है (सुपरब्लॉक लगभग 200 बाइट्स लंबा है, अगर मुझे सही याद है)।

इसमें किसी भी जानकारी का स्वागत है।

संपादित करें:

नीचे उत्तर दिया गया था कि mdadm सुपरब्लॉक 1.1 और 1.2 4k संरेखण के लिए हैं। मैंने अभी-अभी एक पूरी-युक्ति छापी है:

mdadm --create /dev/md4 -l 1 -n 2 /dev/sdb /dev/sdd

फिर मैंने इसमें एक तार्किक आयतन जोड़ा:

vgcreate universe2 /dev/md4

सरणी 16 MB / s पर सिंक्रनाइज़ हो रही है:

md4 : active raid1 sdd[1] sdb[0]
      1465137424 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.8% (13100352/1465137424) finish=1471.6min speed=16443K/sec

इसलिए मुझे संदेह है कि यह ठीक से संरेखित है।

(डिस्क 1.5 टीबी डब्ल्यूडी ईएआरएस हैं। मेरे पास उनके डेस्कटॉप पीसी में हैं और उन्होंने लगभग 80 एमबी / सेकंड में सिंक किया है।)

EDIT2:

यहाँ --examine आउटपुट है:

# mdadm --examine /dev/sdb
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 79843828:7d939cce:1c8f0b32:cf339870
           Name : brick:4  (local to host brick)
  Creation Time : Sat Jul  9 10:47:33 2011
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 2930275120 (1397.26 GiB 1500.30 GB)
     Array Size : 2930274848 (1397.26 GiB 1500.30 GB)
  Used Dev Size : 2930274848 (1397.26 GiB 1500.30 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : dd2e3b5f:33214b96:1cb88169:25deb050

    Update Time : Sat Jul  9 10:49:06 2011
       Checksum : 4f7cd785 - correct
         Events : 1


   Device Role : Active device 0
   Array State : AA ('A' == active, '.' == missing)

डेटा ऑफसेट 2048 सेक्टर है, जो 8 से विभाजित है, इसलिए कोई भी इसे ठीक समझेगा। वॉल्यूम समूह का भौतिक सीमा आकार 4 MiB है, जो 8. से विभक्त है। लेकिन इससे भी कोई फर्क नहीं पड़ेगा, क्योंकि डिवाइस में क्या है, इस से संबंधित है।

एक और संपादन: यह एक संरेखण मुद्दा प्रतीत नहीं होता है; चूंकि hdparm -t एक डिस्क (30 एमबी / एस) में से एक के लिए बहुत कम पढ़ने की गति दिखाता है। कुछ और है एमिस।

Edit2: जब मुझे उत्तर मिला तो मुझे इस पोस्ट को अपडेट करना याद नहीं है। सभी अच्छी तरह से संरेखित है। एक डिस्क टूट गई थी। जाहिरा तौर पर यह अपने आखिरी पैर पर था और यहां तक ​​कि कुछ बिंदु पर टूट गया। एक प्रतिस्थापन डिस्क ने ठीक काम किया।

जवाबों:


13

हां, इसे 4k सेक्टर अलाइनमेंट के लिए बनाया गया है।

1.1 और 1.2 सुपरब्लॉक के साथ, प्रत्येक डिस्क की शुरुआत में स्थान आरक्षित होता है ताकि सुपरब्लॉक रौंद न जाए। सुपरब्लॉक निर्माण कोड इस आरक्षित स्थान को 4kB का गुणक होने के लिए बाध्य करता है। सभी भौतिक रीड्स इस आरक्षित स्थान के अंत से ऑफसेट होते हैं , सुपरब्लॉक के अंत से नहीं। इसलिए यह किसी भी सेक्टर आकार के लिए संरेखण को संरक्षित करता है जो समान रूप से 4kB में विभाजित होता है।

यदि आप रुचि रखते हैं, तो यहाँ mdadm स्रोत कोड से प्रमाण है ( super1.c):

/* force 4K alignment */
reserved &= ~7ULL;
sb->data_offset = __cpu_to_le64(reserved);

और इस data_offsetपैरामीटर का उपयोग RAID1 कोड द्वारा कर्नेल में शारीरिक रीड ऑफ़, जैसे पठित पथ को ऑफ़सेट करने के लिए किया जाता है:

read_bio->bi_sector = r1_bio->sector + mirror->rdev->data_offset

यदि 1.1 और 1.2 दोनों 4k संरेखण के लिए उपयुक्त हैं, तो 1.2 संस्करण किसके लिए अच्छा है? मेरा मतलब है, मैं क्यों शुरू से ही सुपरकॉक 4k शुरू करना चाहता हूं?
हाफगैर

2
ऐसा है इसलिए डिस्क की शुरुआत बूट ब्लॉक के लिए आरक्षित की जा सकती है, जिससे डिस्क को बूट डिस्क के रूप में उपयोग किया जा सकता है।
टॉम शॉ

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