पहचान
उबंटू 16.04 पर समान मुद्दे वाले किसी भी व्यक्ति के लिए सबसे पहले, यह वर्तमान में एक बग है और अभी तक, मेरी जानकारी के अनुसार, तय नहीं किया गया है। मैं जिस बग का हवाला दे रहा हूं, उसे देखने के लिए आप यहां गितुब वार्तालाप देख सकते हैं। दूसरे मैं इस पोस्ट को एक उत्साही और मध्यवर्ती लिनक्स उपयोगकर्ता के रूप में लिख रहा हूं, मैं एक डेवलपर नहीं हूं या वर्तमान में एक पेशे के रूप में लिनक्स पर काम करता हूं। कहा जा रहा है कि मैं इस मुद्दे पर मिली जानकारी को अपने सर्वोत्तम ज्ञान को प्रदान करूँगा।
समस्या:
zfsonlinuxपैकेज में निर्मित हॉट स्पेयर कार्यक्षमता वर्तमान में मैन पेज में बताए अनुसार काम नहीं करती है। zpoolआदमी पृष्ठ:
Hot Spares
ZFS allows devices to be associated with pools as "hot spares".
These devices are not actively used in the pool, but when an active
device fails, it is automatically replaced by a hot spare.
नोट: कोल्ड स्पेयर (स्वचालित रूप से प्रतिस्थापित नहीं किया गया एक अतिरिक्त) कार्यक्षमता काम कर रही है, लेकिन केवल mirrorsया किसी से मिलकर कॉन्फ़िगरेशन में raidz's। यदि आपके पास फॉलिंग की तरह एक कॉन्फ़िगरेशन है:
NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
spares
sdd AVAIL
एक ड्राइव की विफलता पर आप pool I/O is currently suspendedत्रुटि के कारण इसे स्पेयर के साथ बदलने में असमर्थ होंगे ।
प्रयास किए गए समाधान:
यह उन हल किए गए समाधानों की एक सूची है, जिनसे मैं गुजरा हूँ और परिणाम प्राप्त हुए हैं:
ZFS ऑटो को प्रतिस्थापित करता है: यह पता चलता है कि zpoolमैन पेज और मेरी समझ के अनुसार , autoreplaceकार्यक्षमता क्षतिग्रस्त ड्राइव को स्पेयर के साथ बदलने के लिए नहीं है, बल्कि क्षतिग्रस्त ड्राइव को अपने स्थान पर पाए गए किसी भी नए डिवाइस से बदलने के लिए है। zpoolआदमी पृष्ठ:
If set to "on", any new device, found in the same physical location
as a device that previously belonged to the pool, is automatically
formatted and replaced.
autoreplaceपर होना अच्छा है, लेकिन एक गर्म अतिरिक्त की कार्यक्षमता को प्राप्त करने के लिए मुझे विश्वास नहीं है कि इसकी आवश्यकता है। मैं इस आदमी पृष्ठ के अलावा अन्य की पुष्टि करने में सक्षम नहीं है क्योंकि मैं काम करने के लिए अतिरिक्त प्राप्त करने में असमर्थ था।
ZED.rc: मैं बाद में वार्तालाप में से पाया GitHub कि ZED_SPARE_ON_CHECKSUM_ERRORSऔर ZED_SPARE_ON_IO_ERRORSझंडे की जरूरत में सेट करने zed.rc। जैसा कि @ user121391 ने इस पोस्ट के उत्तर में कहा, जेड सेवा / डेमॉन वह है जो पूल की स्थिति को निर्धारित करता है और उस स्थिति के आधार पर क्या किया जाना आवश्यक है। आप zed.d को काम करके देख सकते हैं zpool events। यहाँ linux पर zed.d पर अधिक । झंडे सेट करने, रिबूट करने और, नए पूल को सिर्फ मामले में समेटने के बाद, हॉट स्पेयर का मेरा परीक्षण फिर से नकारात्मक हो गया।
ZED.d स्क्रिप्ट: @Michael Kjörling की टिप्पणी में उन्होंने ZED के साथ पैक की गई कुछ लिपियों का उल्लेख किया है जो कि गर्म स्पेयर परिदृश्य के साथ मदद करने के लिए लिखी गई हैं। मैं वास्तव में अंदर स्थित लिपियों को ढूंढता था /etc/zfs/zed.d। आप इन लिपियों को यहाँ github पृष्ठ पर देख सकते हैं । Zed.d की मेरी समझ से, जब एक घटना को ट्रिगर किया जाता है ZED डेमॉन अपनी स्थिति के आधार पर इनमें से एक स्क्रिप्ट चलाता है। कहा जा रहा है कि मैंने io-spare.shऔर checksum-spare.shमैन्युअल रूप से चलाने की कोशिश की थी और जब तक वे पूल की अपरिवर्तित स्थिति को निष्पादित करने के लिए समय लेते हैं, तब तक वे सही तरीके से नहीं चल रहे थे। शायद यह मुद्दे का एक संभावित स्रोत है।
मेरी योजनाएँ
मेरे ज्ञान के लिए, ZFS के Ubuntu 16.04 उपयोगकर्ताओं के लिए, वर्तमान में इस समस्या का कोई समाधान नहीं है। मेरी योजना है कि परीक्षण में मुझे मिलने वाले प्रदर्शन के आधार पर ( mirroredया raidzRAID5) के विन्यास के साथ ZFS का उपयोग जारी रखना चाहिए। (आईना तेज होगा लेकिन मैं इसकी गति देखना चाहता हूं raidz) एक गर्म स्पेयर इन दोनों विन्यासों के अतिरेक को बढ़ाएगा। लेकिन दुर्भाग्य से हमें zfsonlinuxपरियोजना के आगे विकास तक इंतजार करना होगा ।
sddइतना बड़ा? इसके अलावा, स्पेयर के साथ दो-तरफा दर्पण होने का कोई मतलब नहीं है। बस इसे तीन तरह से दर्पण बनाओ। इसलिए जब तक आप केवल अतिरिक्त प्रतिस्थापन का परीक्षण नहीं कर रहे हैं, आपका कॉन्फ़िगरेशन समझ में नहीं आता है।