सवाल उबंटू का उन्नयन, एक ज़पूल में सभी ड्राइव अनुपलब्ध चिह्नित हैं


मैंने अभी उबंटू 14.04 को अपग्रेड किया है, और मेरे पास सर्वर पर दो जेएफएस पूल थे। मेरे साथ जेएफएस ड्राइवर और कर्नेल संस्करण के साथ लड़ने के साथ कुछ मामूली समस्या थी, लेकिन अब यह काम कर रहा है। एक पूल ऑनलाइन आया, और ठीक लगाया। दूसरा नहीं था। उपकरण के बीच मुख्य अंतर एक डिस्क का एक पूल था (वीडियो / संगीत भंडारण), और दूसरा एक RAID सेट (दस्तावेज, आदि) था

मैंने पहले ही पूल का निर्यात और पुन: आयात करने का प्रयास किया है, इसका कोई फायदा नहीं हुआ है, आयात करने का प्रयास मुझे यह प्राप्त करता है:

root@kyou:/home/matt# zpool import -fFX -d /dev/disk/by-id/
   pool: storage
     id: 15855792916570596778
  state: UNAVAIL
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
 config:

        storage                                      UNAVAIL  insufficient replicas
          raidz1-0                                   UNAVAIL  insufficient replicas
            ata-SAMSUNG_HD103SJ_S246J90B134910       UNAVAIL
            ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523  UNAVAIL
            ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969  UNAVAIL

उन लोगों के लिए सिम्लिंक /dev/disk/by-id यह भी मौजूद है:

root@kyou:/home/matt# ls -l /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910* /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51*
lrwxrwxrwx 1 root root  9 May 27 19:31 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910 -> ../../sdb
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part9 -> ../../sdb9
lrwxrwxrwx 1 root root  9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523 -> ../../sdd
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part9 -> ../../sdd9
lrwxrwxrwx 1 root root  9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969 -> ../../sde
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1 -> ../../sde1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part9 -> ../../sde9

विभिन्न का निरीक्षण /dev/sd* सूचीबद्ध डिवाइस, वे सही होते हैं (3 1TB ड्राइव जो RAIDड्स सरणी में थे)।

मैंने भाग लिया zdb -l प्रत्येक ड्राइव पर, इसे एक फ़ाइल में डंप कर, और एक diff चल रहा है। 3 पर केवल अंतर ही मार्गदर्शक फ़ील्ड हैं (जो मुझे लगता है)। प्रत्येक पर सभी 3 लेबल मूल रूप से समान हैं, और निम्नानुसार हैं:

version: 5000
name: 'storage'
state: 0
txg: 4
pool_guid: 15855792916570596778
hostname: 'kyou'
top_guid: 1683909657511667860
guid: 8815283814047599968
vdev_children: 1
vdev_tree:
    type: 'raidz'
    id: 0
    guid: 1683909657511667860
    nparity: 1
    metaslab_array: 33
    metaslab_shift: 34
    ashift: 9
    asize: 3000569954304
    is_log: 0
    create_txg: 4
    children[0]:
        type: 'disk'
        id: 0
        guid: 8815283814047599968
        path: '/dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1'
        whole_disk: 1
        create_txg: 4
    children[1]:
        type: 'disk'
        id: 1
        guid: 18036424618735999728
        path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1'
        whole_disk: 1
        create_txg: 4
    children[2]:
        type: 'disk'
        id: 2
        guid: 10307555127976192266
        path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1'
        whole_disk: 1
        create_txg: 4
features_for_read:

बेवकूफ, मेरे पास इस पूल का हालिया बैकअप नहीं है। हालांकि, रीबूट से पहले पूल ठीक था, और लिनक्स डिस्क को ठीक देखता है (मेरे पास स्मार्टक्लॉग अब डबल चेक करने के लिए चल रहा है)

तो, संक्षेप में:

  • मैंने उबंटू को अपग्रेड किया, और मेरे दो ज़पूल में से एक तक पहुंच खो दी।
  • पूल के बीच का अंतर वह है जो जेबीओडी था, दूसरा ज़ेड था।
  • अनगिनत ज़ूमपूल में सभी ड्राइव को दूषित डेटा के लिए कोई नोट नहीं होने के साथ, UNAVAIL चिह्नित किया गया है
  • पूल दोनों को संदर्भित डिस्क के साथ बनाया गया था /dev/disk/by-id/
  • से सिम्लिंक /dev/disk/by-id विभिन्न के लिए /dev/sd डिवाइस सही लगता है
  • zdb ड्राइव से लेबल पढ़ सकते हैं।
  • पूल को पहले ही निर्यात / आयात करने का प्रयास किया जा चुका है, और फिर से आयात करने में सक्षम नहीं है।

क्या इन डिस्क को उचित सरणी में लाने के लिए ज़ूमपूल / जेएफएस के माध्यम से कुछ प्रकार का काला जादू है? क्या मैं दौड़ सकता हूँ zpool create zraid ... मेरा डेटा खोए बिना? क्या मेरा डेटा किसी भी तरह से चला गया है?


8
2018-05-28 00:49


मूल




जवाब:


इस विशिष्ट त्रुटि संदेश पर बहुत सारे और बहुत अधिक Googling के बाद मुझे मिल रहा था:

root@kyou:/home/matt# zpool import -f storage
cannot import 'storage': one or more devices are already in use

(यहां पोस्टरिटी और सर्च इंडेक्स के लिए शामिल) मुझे यह मिला:

https://groups.google.com/a/zfsonlinux.org/forum/#!topic/zfs-discuss/VVEwd1VFDmc

यह एक ही विभाजन का उपयोग कर रहा था और जेएफएस लोड होने से पहले किसी भी बूट के दौरान उन्हें mdraid में जोड़ रहा था।

मुझे याद है कि कुछ एमडीएडीएम लाइनें देख रही हैं dmesg और निश्चित रूप से पर्याप्त:

root@kyou:/home/matt# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md126 : active raid5 sdd[2] sdb[0] sde[1]
      1953524992 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

ये ड्राइव एक समय पर एक सॉफ्टवेयर RAID5 सरणी का हिस्सा थे। कुछ कारणों से, अपग्रेड के दौरान, उसने ड्राइव को पुन: स्कैन करने का निर्णय लिया, और पाया कि ड्राइव एक बार एमडी सरणी का हिस्सा थे, और इसे फिर से बनाने का फैसला किया। इसके साथ सत्यापित किया गया था:

root@kyou:/storage# mdadm --examine /dev/sd[a-z]

उन तीन ड्राइवों ने जानकारी का एक गुच्छा दिखाया। अभी के लिए, सरणी रोकना:

root@kyou:/home/matt# mdadm --stop /dev/md126
mdadm: stopped /dev/md126

और फिर से चल रहा आयात:

root@kyou:/home/matt# zpool import -f storage

सरणी वापस ऑनलाइन लाया है।

अब मैं बैकअप के लिए उस पूल का स्नैपशॉट करता हूं, और चलाता हूं mdadm --zero-superblock उन पर।


4
2018-05-28 02:02





उबंटू कुछ लगता है परेशान udev मुद्दों कि हम Red Hat / CentOS पक्ष पर नहीं देखते हैं। यदि आप कर सकते हैं, तो मैं डब्ल्यूडब्ल्यूएन-आधारित डिवाइस नामों का उपयोग करने की सलाह दूंगा, क्योंकि वे इस पर कम संवेदनशील लगते हैं।

दिखाई दिया: रिबूटिंग ने मेरे जेएफएस दर्पण के एक तरफ संयुक्त राष्ट्र बनने का कारण क्यों बनाया?


4
2018-05-28 01:18



मैंने उनको देखा है, और एक में जुड़े थ्रेड को पढ़ते हुए, ऐसा लगता है कि समस्या udev डिवाइस पर सभी विभाजनों के लिए सिम्लिंक नहीं बना रही है। मैंने बस तीनों ड्राइव की जांच की। उनमें से प्रत्येक में विभाजन संख्या 1 और 9 होती है, और उनमें सिमलिंक होते हैं /dev/disk/by-id उन ड्राइव के लिए, और एक डिवाइस के लिए सभी सिम्लिंक एक ही बिंदु पर इंगित करते हैं /dev/sd* चलाना। और सबसे नज़दीकी चीज जो मैं समाधान में पा सकता हूं (zpool प्रतिस्थापित करें), मैं ऐसा नहीं कर सकता क्योंकि मैं पूल को फिर से आयात नहीं कर सकता। - Matt Sieker


मैं डेबियन व्हीजी पर 3.13 श्रृंखला कर्नेल में अपग्रेड करने की कोशिश कर रहा लगभग इस सटीक समस्या में भाग गया। आप अपनी टिप्पणी में सही हैं; यह एक udev बग है। मैंने दुर्भाग्यवश इसे हल नहीं किया है, लेकिन ज़ोल के 0.6.2 संस्करण के साथ संगतता के लिए अन्य कर्नेल, विशेष रूप से 3.11 श्रृंखला की खोज करना उचित है। बस 0.6.3 बाहर आने तक पुराने कर्नेल का उपयोग करें।


2
2018-05-28 02:00



यह बहुत अस्वीकार्य है कि udev इस तरह से टूट जाएगा। मैं उबंटू का उपयोग नहीं करता, लेकिन इस तरह की चीजें आरएचईएल प्रसाद की तुलना में वास्तव में अप्रकाशित लगती हैं। - ewwhite