RAID -1 में एक असफल Btrfs ड्राइव को लाइव बदला जा सकता है?


15

मैं एक फाइलसिस्टम पर निर्णय लेने की कोशिश कर रहा हूं और यह जानना चाहूंगा कि क्या डाउनटाइम के बिना btrfs RAID में एक विफल ड्राइव को बदलना संभव है।

  1. मान लीजिए कि मैं कमांड का उपयोग करके एक नया btrfs फाइल सिस्टम बनाता हूं

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. अब मान लीजिए कि एक दिन /dev/sdcअसफल हो जाता है। दो संभावनाएँ हैं: यह धीरे-धीरे विफल हो सकता है, स्मार्ट त्रुटियों को दिखा रहा है - इस स्थिति में मैं एक नया उपकरण जोड़ सकता हूं btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntऔर फिर पुराने को हटा सकता हूं btrfs device delete /dev/sdc /mnt

  3. लेकिन अगर यह अचानक विफल हो जाता है, तो अपठनीय बन जाता है ... एक वेब खोज इस स्थिति में कहती है कि मुझे पहले फाइलसिस्टम को अनमाउंट करना होगा, अपमानित मोड में माउंट करना होगा, एक नया उपकरण जोड़ना होगा, फिर लापता डिवाइस को हटाना होगा।

    umount /mnt
    mount -o degraded /dev/sdb /mnt
    btrfs device add /dev/sdf /mnt 
    btrfs device delete missing /mnt
    

एक अनमाउंट स्पष्ट रूप से एक विघटनकारी ऑपरेशन है इसलिए डाउनटाइम होगा - फाइलसिस्टम का उपयोग करने वाले किसी भी एप्लिकेशन को I / O त्रुटि मिलेगी। लेकिन btrfs पर इस तरह के "ट्यूटोरियल्स" आउटडेटेड दिखते हैं, यह देखते हुए कि btrfs भारी विकास के अधीन है।

प्रश्न यह है: btrfs की वर्तमान स्थिति को देखते हुए, क्या यह ऑनलाइन करना संभव है, अर्थात बिना सोचे-समझे?

यदि नहीं, तो एक सॉफ़्टवेयर-एकमात्र समाधान है जो इस आवश्यकता को पूरा कर सकता है?


1
एक ड्राइव आग लग जाती है, तो अपने सिस्टम के बाकी शायद आग पर भी है
जर्नीमैन गीक

1
@JourneymanGeek फनी यू .. :) मैं बस यह बहुत स्पष्ट करना चाहता था कि मेरा मतलब एक भयावह, अचानक और अप्रत्याशित असफलता है - ड्राइव बस काम करना बंद कर देती है। यह बल्कि असामान्य है, हार्ड डिस्क आमतौर पर धीरे-धीरे विफल हो जाती है और प्रभावी निगरानी के साथ मैं ऐसा होने से पहले उन्हें बदल सकता हूं, लेकिन क्या होगा ...
NothingsImpossible संभव

2
लिनक्स में 3.8 btrfs replace mountpoint old_disk new_diskजोड़ा गया था।
ब्रायन

@ ब्रायन वाह ... यही जवाब है। मैं "btrfs प्रतिस्थापित" के लिए googled और इसने lwn.net/Articles/524589 को दिखाया । यह _exactly_ मैं क्या देख रहा था। कृपया इसे उत्तर के रूप में पोस्ट करें ताकि मैं इसे स्वीकार कर सकूं।
NothingsImpossible संभव

जवाबों:


11

लिनक्स 3.8 में, btrfs replace mountpoint old_disk new_diskजोड़ा गया था। यदि आप हाल ही में कर्नेल चला रहे हैं, तो यह वह कार्यक्षमता प्रदान करेगा जिसकी आप तलाश कर रहे हैं।


4
यह अब होगा btrfs replace start /dev/old /dev/new /mountpoint( प्रारंभ जोड़ा गया है)। यह भी देखें man btrfs-replace
बेसिक 6

1

छोटा सुधार, वर्तमान सिंटैक्स है:

btrfs, OLDDEV NEWDEV MOUNTPOINT शुरू करते हैं

जो तब पृष्ठभूमि।

आप के साथ स्थिति की जाँच कर सकते हैं

btrfs स्थिति MOUNTPOINT को प्रतिस्थापित करते हैं

जो आपको बदले हुए ऑपरेशन की निरंतर अद्यतन स्थिति दिखाएगा।


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