मेरे पास ज्यादातर लोगों की एक ही समस्या है: इस तथ्य के साथ एक विश्वसनीय व्यक्तिगत भंडारण समाधान कैसे बनाया जाए:
- नियमितता के साथ हार्ड ड्राइव विफल हो जाते हैं। फ़ाइलों को खोना अस्वीकार्य है।
- मैं समय-समय पर एक नया एचडीडी खरीदूंगा। अनिवार्य रूप से, सबसे अच्छी कीमत / जीबी पिछले एचडीडी खरीद की तुलना में एक अलग आकार है।
2 का मतलब है कि समय के साथ मेरे पास डिस्क का विषम संग्रह है। मैं उन सभी का उपयोग करना चाहता हूं, और असफल डिस्क को आम तौर पर बड़ी डिस्क द्वारा प्रतिस्थापित किया जाएगा।
- डेटा अखंडता और विश्वसनीयता मेरे लिए गति से अधिक महत्वपूर्ण है।
तो कुछ दिनों के लिए इस समस्या के खिलाफ मेरे सिर को पीटने के बाद (और वर्षों के लिए मेरे सिर के पीछे) मैं निम्नलिखित समाधान का प्रस्ताव करता हूं। मैं एक समाधान का वर्णन करूंगा, जिसे मैंने देशी लिनक्स ZFS के आधार पर परीक्षण किया है जो एक Ubuntu PPA में उपलब्ध है , लेकिन LVM, MD, और btrfs को इसे प्राप्त करने के लिए इस्तेमाल किया जा सकता है। इसके लिए मैं RAID1 (ZFS दर्पण vdevs) का उपयोग करूंगा।
- ड्राइव के आपके सेट को देखते हुए, उन्हें डिस्क के दो सेट में समूहित करें, जैसे कि प्रत्येक सेट की क्षमता संभव के रूप में दूसरे के पास है।
- विभाजन बड़े डिस्क जैसे कि एक विभाजन होता है, जो दूसरे समूह में छोटे डिस्क में से एक के समान होता है।
- मिरर vdevs ऐसे बनाएं कि प्रत्येक डिस्क का दर्पण किसी अन्य डिस्क पर हो।
उदाहरण के लिए, नए 2TB ड्राइव के डिस्क सेट पर विचार करें, पुराने 750GB ड्राइव, 2 पुराने 400GB ड्राइव और पुराने 500GB ड्राइव पर। इष्टतम प्रतिबिंबित विभाजन में 2TB प्रयोग करने योग्य स्थान होता है और इसे निम्नलिखित आरेख में वर्णित किया जाता है जहां ':' अलग-अलग स्थितियों और '' डिस्क को अलग करता है:
+------------------------------------------------------------------+
| 2TB (sda1) : (sda2) : (sda3) : (sda4) |
+------------------------------------------------------------------+--+
| 750 GB (sdb) | 400 GB (sdc) | 400 GB (sdd) | 500 GB (sde1) :XX|
+---------------------------------------------------------------------+
के रूप में अपने zpool बनाएँ
zpool create archive mirror /dev/sda1 /dev/sdb mirror /dev/sda2 /dev/sdc mirror /dev/sda3 /dev/sdd mirror /dev/sda4 /dev/sde1
यह 4 प्रतिबिंबित दर्पण बनाता है। यदि डिस्क में से कोई भी विफल हो गया, तो इसे (किसी भी आकार की डिस्क के साथ) बदला जा सकता है और लापता विभाजन को फिर से बनाने के लिए विभाजित किया जा सकता है। यह महत्वपूर्ण है कि ZFS vdevs को एक पूल में जोड़ा जा सकता है लेकिन हटाया नहीं गया । इसलिए यदि संभव हो, जब कोई नया ड्राइव खरीदता है, तो आप मौजूदा vdevs को पुनर्व्यवस्थित करना चाहते हैं। मान लीजिए कि अगली खरीद 3TB ड्राइव थी। आपका इष्टतम विन्यास 3.5TB प्रयोग करने योग्य है, जैसा कि निम्नलिखित चित्र में वर्णित है। यह अब 5 vdev जोड़े है। यह उचित विभाजन और क्रमिक रूप से विफल होने और ड्राइव को पुन: प्रारंभ करने के द्वारा प्राप्त किया जा सकता है।
+--------------------------------------------------------------+-------------+
| 3 TB (sdf1) : (sdf2) : (sdf3) : (sdf4) | 500GB (sde) |
+--------------------------------------------------------------+-------------+-+
| 2TB (sda1) | 400GB (sdb) | 400GB (sdc) | 750GB (sdd1) : (sdd2) :X|
+------------------------------------------------------------------------------+
मिरर किए गए ड्राइव की इस जोड़ी को बनाए रखना LVM के साथ या MD RAID के साथ भी किया जा सकता है, यह सुनिश्चित करने के लिए कि प्रत्येक ड्राइव में हमेशा मिरर ड्राइव या पारेशन होता है। क्योंकि सब कुछ स्पष्ट है, हम ड्राइव को जोड़ने या हटाने पर ड्राइव को विफल करने और विभाजन को पुनर्व्यवस्थित करने के लिए स्वतंत्र हैं। LVM या MD के उपयोग से BTRFS की तुलना में ZFS में कम परिष्कृत रिकवरी टूल की कीमत पर ड्राइव को हटाना और सरणी को सिकोड़ना संभव होगा।
इस प्रक्रिया पर कोई टिप्पणी? एक अच्छी स्क्रिप्ट ड्राइव के दोषरहित आवंटन और पुनर्व्यवस्थापन को संभाल सकती है। LVM बनाम MD बनाम ZFS पर कोई टिप्पणी? परिणामी अजीब विभाजन सरणी के प्रदर्शन पर कोई टिप्पणी? क्या एक ही ड्राइव पर कई विभाजनों में डेटा की व्यवस्था के कारण अत्यधिक सिर की मांग और शुरुआती विफलता होगी?
BTRFS देव: हर कोई यह चाहता है और LVM या MD तकनीकी रूप से आवश्यक नहीं है (और मेरी राय में, उप-इष्टतम)। एक निरर्थक विषम सरणी को बनाए रखना आसान बनाने के लिए btrfs के लिए एक हत्यारा सुविधा होगी। यह LVM / MD / ZFS पर एक हैक है। रिस्लीवर / रेसक्यू को कम करना बड़े पैमाने पर वांछनीय है।
हाँ, यह स्पष्ट रूप से एक गरीब आदमी का ड्रोबो है। उस के लिए एक समर्पित हार्डवेयर की आवश्यकता नहीं होनी चाहिए ...