रीबूटिंग ने मेरे ZFS दर्पण के एक तरफ को UNAVAIL क्यों बनाया?


13

मैंने अभी हाल ही में एक सिंगल-डिवाइस vdev कॉन्फिगरेशन से दो-तरफा मिरर vdev कॉन्फिगरेशन से एक बल्क डेटा स्टोरेज पूल (ZFS on Linux 0.6.2, Debian Wheezy) माइग्रेट किया।

पिछला पूल कॉन्फ़िगरेशन था:

    NAME                     STATE     READ WRITE CKSUM
    akita                    ONLINE       0     0     0
      ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0

सब कुछ ठीक हो गया था जब रेसिल्वर पूरा हो गया (मैंने एक स्क्रब की शुरुआत की, जो कि रिसिल्वर पूरा होने के बाद, बस सिस्टम एक बार फिर से सब कुछ खत्म हो गया और सुनिश्चित करें कि यह सब अच्छा था):

  pool: akita
 state: ONLINE
  scan: scrub repaired 0 in 6h26m with 0 errors on Sat May 17 06:16:06 2014
config:

        NAME                       STATE     READ WRITE CKSUM
        akita                      ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0
            ST4000NM0033-Z1Z333ZA  ONLINE       0     0     0

errors: No known data errors

हालाँकि, रिबूट करने के बाद मुझे एक ईमेल मिला जिसमें मुझे इस तथ्य की सूचना दी गई थी कि पूल ठीक नहीं था और बांका नहीं था। मेरी नज़र थी और यही मैंने देखा:

   pool: akita
  state: DEGRADED
 status: One or more devices could not be used because the label is missing or
         invalid.  Sufficient replicas exist for the pool to continue
         functioning in a degraded state.
 action: Replace the device using 'zpool replace'.
    see: http://zfsonlinux.org/msg/ZFS-8000-4J
   scan: scrub in progress since Sat May 17 14:20:15 2014
     316G scanned out of 1,80T at 77,5M/s, 5h36m to go
     0 repaired, 17,17% done
 config:

         NAME                       STATE     READ WRITE CKSUM
         akita                      DEGRADED     0     0     0
           mirror-0                 DEGRADED     0     0     0
             ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0
             ST4000NM0033-Z1Z333ZA  UNAVAIL      0     0     0

 errors: No known data errors

स्क्रब की उम्मीद है; रिबूट पर एक पूर्ण सिस्टम स्क्रब आरंभ करने के लिए क्रोन जॉब सेटअप है। हालाँकि, मैं निश्चित रूप से नए HDD के दर्पण से बाहर आने की उम्मीद नहीं कर रहा था।

मैं ऐसे उपनामों को परिभाषित करता हूं जो / dev / डिस्क / by-id / wwn- * नामों से मैप करते हैं, और इन दोनों डिस्क के मामले में ZFS को पूर्ण डिस्क का उपयोग करने के लिए मुक्त शासन दिया है, जिसमें विभाजन को शामिल करना शामिल है:

# zpool history akita | grep ST4000NM0033
2013-09-12.18:03:06 zpool create -f -o ashift=12 -o autoreplace=off -m none akita ST4000NM0033-Z1Z1A0LQ
2014-05-15.15:30:59 zpool attach -o ashift=12 -f akita ST4000NM0033-Z1Z1A0LQ ST4000NM0033-Z1Z333ZA
# 

ये /etc/zfs/vdev_id.conf (मैं अब नोटिस करता हूं कि Z1Z333ZA जुदाई के लिए एक टैब वर्ण का उपयोग करता है, जबकि Z1Z1A0LQ लाइन केवल रिक्त स्थान का उपयोग करती है, लेकिन ईमानदारी से यह कैसे प्रासंगिक हो सकता है यह नहीं देखते हैं) :

alias ST4000NM0033-Z1Z1A0LQ             /dev/disk/by-id/wwn-0x5000c500645b0fec
alias ST4000NM0033-Z1Z333ZA     /dev/disk/by-id/wwn-0x5000c50065e8414a

जब मैंने देखा, /dev/disk/by-id/wwn-0x5000c50065e8414a*उम्मीद के मुताबिक /dev/disk/by-vdev/ST4000NM0033-Z1Z333ZA*थे , लेकिन नहीं थे।

sudo udevadm triggerसिम्बलिंक को / देव / डिस्क / बाय-वीदेव में दिखाने के कारण जारी करना। हालाँकि, ZFS को यह महसूस नहीं होता है कि वे वहां हैं (Z1Z333ZA अभी भी दिखाता है UNAVAIL)। मुझे लगता है कि बहुत उम्मीद की जा सकती है।

मैंने संबंधित उपकरण को बदलने की कोशिश की, लेकिन कोई वास्तविक भाग्य नहीं था:

# zpool replace akita ST4000NM0033-Z1Z333ZA
invalid vdev specification
use '-f' to override the following errors:
/dev/disk/by-vdev/ST4000NM0033-Z1Z333ZA-part1 is part of active pool 'akita'
# 

दोनों डिस्क बूट प्रक्रिया के दौरान पाए जाते हैं (प्रासंगिक ड्राइव दिखाते हुए dmesg लॉग आउटपुट):

[    2.936065] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.936137] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.937446] ata4.00: ATA-9: ST4000NM0033-9ZM170, SN03, max UDMA/133
[    2.937453] ata4.00: 7814037168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    2.938516] ata4.00: configured for UDMA/133
[    2.992080] ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    3.104533] ata6.00: ATA-9: ST4000NM0033-9ZM170, SN03, max UDMA/133
[    3.104540] ata6.00: 7814037168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    3.105584] ata6.00: configured for UDMA/133
[    3.105792] scsi 5:0:0:0: Direct-Access     ATA      ST4000NM0033-9ZM SN03 PQ: 0 ANSI: 5
[    3.121245] sd 3:0:0:0: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
[    3.121372] sd 3:0:0:0: [sdb] Write Protect is off
[    3.121379] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    3.121426] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.122070] sd 5:0:0:0: [sdc] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
[    3.122176] sd 5:0:0:0: [sdc] Write Protect is off
[    3.122183] sd 5:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[    3.122235] sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

दोनों ड्राइव सीधे मदरबोर्ड से जुड़े हुए हैं; इसमें कोई ऑफ-बोर्ड कंट्रोलर शामिल नहीं है।

आवेग पर, मैंने किया:

# zpool online akita ST4000NM0033-Z1Z333ZA

जो काम किया प्रतीत होता है; Z1Z333ZA अब कम से कम ONLINEऔर लचीला है। लगभग एक घंटे के रेज़िवर में यह 180G स्कैन किया गया और 24G को 9.77% के साथ रिवाइवल किया गया, जो इसे पूर्ण रेज़लवर न करने का संकेत देता है, बल्कि केवल डेटासेट डेल्टा को स्थानांतरित करता है।

मुझे पूरी तरह से यकीन नहीं है कि अगर यह मुद्दा ZFS ऑन लिनक्स या udv से संबंधित है (यह udev की तरह थोड़ा बदबू आ रही है, लेकिन फिर एक ड्राइव को सिर्फ ठीक क्यों पता लगाया जाएगा, लेकिन अन्य नहीं), लेकिन मेरा सवाल यह है कि मैं कैसे बनाऊं यकीन है कि एक ही बात अगले रिबूट पर फिर से नहीं होता है?

यदि आवश्यक हो तो सेटअप पर अधिक डेटा प्रदान करने में मुझे खुशी होगी; बस मुझे पता है कि क्या जरूरत है।

जवाबों:


10

यह एक udv मुद्दा है जो डेबियन और उबंटू वेरिएंट के लिए विशिष्ट लगता है । लिनक्स कार्य पर मेरे अधिकांश ZFS CentOS / RHEL के साथ हैं।

जेडएफएस चर्चा सूची में इसी तरह के धागे ने इसका उल्लेख किया है।

देखें:
/ हार्ड / डिस्क / बाय-आईडी
और लिनक्स / उबंटू पर ZFS के तहत समान हार्ड ड्राइव के लिए scsi और ata प्रविष्टियाँ
: उबंटू को 13.04 से 13.10 तक अपग्रेड करने के बाद, एक आईडी आयात करने में मदद करें, डिवाइस आईडी बदल गए हैं

मुझे यकीन नहीं है कि डेबियन / उबंटू सिस्टम के लिए सबसे निर्धारक पूल डिवाइस दृष्टिकोण क्या है। आरएचईएल के लिए, मैं सामान्य पूल उपकरणों पर डिवाइस डब्ल्यूडब्ल्यूएन का उपयोग करना पसंद करता हूं। लेकिन अन्य बार, डिवाइस का नाम / सीरियल उपयोगी है, भी। लेकिन udv को इस सब को रोक कर रखने में सक्षम होना चाहिए

# zpool status
  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h32m with 0 errors on Sun Feb 16 17:34:42 2014
config:

        NAME                        STATE     READ WRITE CKSUM
        vol1                        ONLINE       0     0     0
          mirror-0                  ONLINE       0     0     0
            wwn-0x500000e014609480  ONLINE       0     0     0
            wwn-0x500000e0146097d0  ONLINE       0     0     0
          mirror-1                  ONLINE       0     0     0
            wwn-0x500000e0146090c0  ONLINE       0     0     0
            wwn-0x500000e01460fd60  ONLINE       0     0     0

1
नंगे wwn-*नामों के प्रवास के बाद , पूल स्थिर प्रतीत होता है।
एक CVn

1
@ माइकलकॉर्लिंग क्या आप विस्तार कर सकते हैं कि आप wwn- * नामों से कैसे पलायन कर गए?
कोडकॉबॉय

1
@codecowboy कुछ भी नहीं फैंसी। zpool detach akita ST4000NM0033-Z1Z333ZAतो zpool attach -o ashift=12 -f akita ST4000NM0033-Z1Z1A0LQ wwn-0x5000c50065e8414aफिर zpool detach akita ST4000NM0033-Z1Z1A0LQतो zpool attach akita wwn-0x5000c50065e8414a wwn-0x5000c500645b0fec, हर कदम के बीच में की पुष्टि करने के पूल स्थिर था। मैं बहुत पहले एक अच्छी तरह से रगडें की सलाह देता हूं। आप शायद साथ zpool replaceही दूर हो सकते हैं, लेकिन चूंकि उपनाम wwn नामों पर इंगित किया गया था और मेरे पास अतिरेक प्लस बैकअप थे, यह सुरक्षित महसूस हुआ। कुछ दिन लगे लेकिन मैं हड़बड़ी में नहीं था।
बजे एक CVn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.