मरम्मत btrfs RAID? त्रुटि: डिवाइस के लिए अनुचित ioctl


1

मैं 8 डिस्क के साथ एक RAID5 btrfs है और एक हार्ड डिस्क मर गया और बस सूची से गायब हो गया।

अब मैंने इसे हटाने की कोशिश की लेकिन एक त्रुटि मिली:

ERROR: error removing the device '/dev/sdb' - Inappropriate ioctl for device

ऑटो-माउंटिंग को अक्षम करने के बाद /etc/fstab, मैंने सिस्टम को बंद कर दिया, दोषपूर्ण ड्राइव को बदल दिया और सिस्टम को रिसेट करने के लिए सिस्टम को रिबूट कर दिया, जब यह किसी अन्य त्रुटि से ट्रिप हो गया था, और मृत डिस्क अब अनुपस्थित थी, जिसके कारण अन्य सभी डिस्क फिर से हो गए थे- गणना करना, इसलिए प्रतिस्थापन डिस्क के /dev/sddबजाय बन गया sdb

यह चल रहा है btrfs fi show -d:

Label: 'store'  uuid: ...
        Total devices 8 FS bytes used 5.27TiB
        devid    2 size 1.36TiB used 784.63GiB path /dev/sdb
        devid    3 size 1.36TiB used 784.63GiB path /dev/sdc
        devid    4 size 1.36TiB used 784.63GiB path /dev/sde
        devid    5 size 1.36TiB used 784.63GiB path /dev/sdf
        devid    6 size 1.36TiB used 784.63GiB path /dev/sdg
        devid    7 size 1.36TiB used 784.63GiB path /dev/sdh
        devid    8 size 1.36TiB used 784.63GiB path /dev/sdi
        *** Some devices missing

Btrfs v3.12

अब मैंने कोशिश की btrfs device add /dev/sdd /mnt/x, लेकिन मिल गया

ERROR: error adding the device '/dev/sdd' - Inappropriate ioctl for device

अब क्या? मैं RAID को कैसे पुनर्स्थापित या माउंट कर सकता हूं?

मैं इसे माउंट भी नहीं कर सकता। कोशिश की mount [-t btrfs] -o degraded /dev/sdb /mnt/xऔर mount [-t btrfs] -o degraded,device=/dev/sdb,[...] /dev/sdb /mnt/x( [...]डिवाइस चश्मा हैं, निश्चित रूप से):

mount: wrong fs type, bad option, bad superblock on /dev/sdb,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

यह कर्नेल 3.13.0-36-जेनेरिक x64 के साथ एक Ubuntu 14.04 बॉक्स है।

जवाबों:


0

यह एक "पूर्ण" उत्तर नहीं है, लेकिन मेरे पास BTRFS RAID 10. के साथ एक ही मुद्दा था। आपको पूरी तरह से विफल डिवाइस को हटाने से पहले सरणी को ऑनलाइन अपमानित मोड में प्राप्त करना होगा

btrfs डिवाइस को हटाने का उपयोग ऑनलाइन उपकरणों को हटाने के लिए किया जाता है। यह फ़ाइल सिस्टम में अन्य उपकरणों के लिए निकाले जा रहे डिवाइस पर उपयोग में आने वाले किसी भी विस्तार को पुनर्वितरित करता है।

अन्यथा, आपको संदेश प्राप्त होता रहेगा:

त्रुटि: डिवाइस '/ dev / sdd' को जोड़ने में त्रुटि - डिवाइस के लिए अनुचित ioctl

मैं केवल यह आशा कर सकता हूं कि आपकी माउंट कमांड गलत है। तुम सिर्फ सूची है एक अपने सरणी और रास्ते में उपकरणों जहां आप इसे माउंट करने के लिए करना चाहते हैं। उदाहरण के लिए:

sudo mount -o degraded /dev/sda /raid10

... जहाँ /dev/sdaमेरे लिए सरणी में काम करने वाले उपकरणों में से एक था । जब मैंने सभी उपकरणों को सूचीबद्ध करने की कोशिश की तो:

sudo mount -o degraded -t btrfs\
/dev/sda \
/dev/sdb \
/dev/sdc1 \
/dev/sdd \
/dev/sde \
/dev/sdf \
/raid10

... आदेश विफल हो जाएगा।

एक बार जब आपके पास सरणी आरोहित हो जाती है, तो बस निष्पादित करें sudo btrfs device delete missing /raid10और लंबे समय तक प्रतीक्षा करें जब तक कि सरणी खुद को बाहर न कर ले। यदि आप अपने सरणी को माउंट नहीं कर सकते हैं, तो मुझे यकीन नहीं है कि कुछ भी आप कर सकते हैं। शायद दो ड्राइव वास्तव में सिर्फ एक के बजाय विफल रहे हैं, या (अधिक संभावना है) BTRFS RAID 5 के साथ अधिक समस्याएँ हैं क्योंकि यह BTRFS RAID 1/10 के आसपास नहीं है?


मुझे लगता है कि नए कर्नेल और नए btrfs टूल ने इस चिकन-या-अंडे की समस्या को अपमानित विन्यास में बढ़ते और हटाने वाले उपकरणों के साथ तय किया है, लेकिन मैंने इसकी जांच नहीं की है। मुझे बस कुछ याद है कि उन पंक्तियों के साथ बहुत कुछ कहा है। वैसे भी। मैंने ZFS के लिए एक व्यवहार्य विकल्प के रूप में btrfs में अपना विश्वास खो दिया। यह सिर्फ YAFS XP है: अभी तक एक और फाइल सिस्टम और दशकों के लिए प्रायोगिक।
आर्किमिडिक्स

@Archimedix अजीब बात है कि आपको कहना चाहिए। अपना उत्तर लिखने के दौरान मैं BTRFS की स्थिरता के बारे में बात करने जा रहा था और प्रत्येक के पेशेवरों / विपक्षों के साथ ZFS पर स्विच करने के लिए मेरे प्रलोभन के बारे में बात करता था, लेकिन इसे छोड़ने का फैसला किया क्योंकि यह संभवतः रचनात्मक नहीं पाया जाएगा। हालांकि मैं आप से सहमत हूं; यदि आप ZFS का उपयोग कर सकते हैं तो करें।
प्रोग्रामर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.