Xen DOMU रूट फाइलसिस्टम iSCSI वर्चुअल IP फेलओवर पर केवल पढ़ने के लिए बन रहा है


9

मेरे एक्सईएन सर्वर के लिए हमारी iSCSI सैन क्लस्टर खुले iSCSI साथ openSUSE 11.1 है। सैन मॉड्यूल एक वर्चुअल आईपी के पीछे एक आईपी फेलओवर समूह में हैं, जो सर्जक कनेक्ट करते हैं।

इस घटना में कि प्राथमिक SAN सर्वर नीचे चला जाता है, द्वितीयक लक्ष्य के रूप में सेवा करने की भूमिका को चुनता है। यह सभी LeftHand SAN / iQ सॉफ्टवेयर द्वारा नियंत्रित किया जाता है और अधिकांश स्थितियों में अच्छी तरह से काम करता है।

मेरे पास समस्या यह है कि कभी-कभी मेरे कुछ एक्सएमओयू के पास अपने रूट फाइलसिस्टम को एक आईपी विफलता के बाद केवल पढ़ने के लिए जाना होगा। यह सुसंगत नहीं है, और हर बार एक असफल होने पर एक अलग सबसेट के लिए होता है। वे सभी एक ही खुले 11.1 सॉफ्टवेयर छवि को चला रहे हैं।

प्रत्येक DOMU के लिए रूट फाइलसिस्टम को DOM0 में ओपन-इस्की द्वारा माउंट किया जाता है और फिर एक्सएमयू को एक्सपोज करने के लिए मानक ब्लॉक डिवाइस ड्राइवर का उपयोग करता है।

सटीक लक्षण यह है कि रनिंग के रूप में रूट touch /test"रीड ओनली फाइलसिस्टम" त्रुटि देता है। हालाँकि, आउटपुट mountइसे शो-रीड-माउंटेड के रूप में दिखाता है। बेशक, डॉमू पर अन्य सभी I / O भी इस समय विफल हो रहे हैं, इसलिए मशीन मुश्किल से नीचे आती है। बस इसे xmISCSI सत्र को फिर से जोड़ने के बिना DOM0 से फिर से शुरू करने से सब कुछ फिर से काम हो जाता है।

DOM0 की ओर असफल-ओवर के दौरान syslog संदेश कुछ इस तरह हैं:

kernel: connection1:0: iscsi: detected conn error (1011)
iscsid: Kernel reported iSCSI connection 1:0 error (1011) state (3)
iscsid: connection1:0 is operational after recovery (1 attempts) 

मुझे इस समस्या को दूर करने के लिए एक कठिन समय मिल रहा है, क्या यह डोमु कर्नेल में कुछ है? या DOM0 या Xen स्तर पर? मुझे लगता है कि कहीं न कहीं कुछ पैरामीटर की संभावना है जो कि किसी प्रकार के टाइमआउट को बढ़ाने के लिए ट्विकिंग की आवश्यकता है, लेकिन मुझे यकीन नहीं है कि कहाँ देखना है।

मुझे नहीं लगता कि यह केवल ओपन-इस्की के साथ एक मुद्दा है क्योंकि कनेक्टेड ब्लॉक डिवाइस अभी भी DOM0 से पठनीय और उपलब्ध है।

जवाबों:


6

मैंने अंततः खुले-इस्की दस्तावेज़ से निम्न सलाह और सेटिंग्स का उपयोग करके इसे हल किया:

8.2 iSCSI settings for iSCSI root
---------------------------------

When accessing the root parition directly through a iSCSI disk, the
iSCSI timers should be set so that iSCSI layer has several chances to try to
re-establish a session and so that commands are not quickly requeued to
the SCSI layer. Basically you want the opposite of when using dm-multipath.

For this setup, you can turn off iSCSI pings by setting:

node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0

And you can turn the replacement_timer to a very long value:

node.session.timeo.replacement_timeout = 86400

जैसा कि ऊपर वर्णित प्रत्येक LUN से संबंध स्थापित करने के बाद, फेलओवर एक आकर्षण की तरह काम करता है, भले ही ऐसा होने में कई मिनट लग जाएं।


1
Icsi वॉल्यूम पर बैठे mysql prod db के साथ भी मुझे यही समस्या थी, साथ ही / var / log / मैसेज और फाइल सिस्टम में समान त्रुटियां रीड-ओनली मोड में थीं। इस टिप ने समस्या को हल कर दिया।
रेनडॉक्टर

2

यह ऐसा लगता है जैसे iSCSI सर्जक के डोम 0 पर चल रहा है। आरंभकर्ता को एससीएसआई विफलताओं को स्टैक तक नहीं भेजना चाहिए। आप शायद iscsi.conf में ConnFailTimeout सेट करना चाहते हैं। यह वह सेटिंग है जो यह निर्धारित करती है कि कनेक्शन विफलता को एक त्रुटि मानने से पहले और SCSI स्टैक को उस त्रुटि को कब तक भेजता है।

मैं यह भी देखूंगा कि फेलओवर वास्तव में कितना समय ले रहा है, यह आपकी अपेक्षा से अधिक समय ले सकता है। यदि ऐसा है तो हो सकता है कि एआरपी से संबंधित मुद्दों के कारण वीआईपी फेलओवर बहुत लंबा हो रहा है।


मुझे लगता है यह मैं वास्तव में क्या जरूरत है।
कामिल किसेल

0

विफलता के समय किसी भी तरह के रीड / राइट एरर या एससीआई त्रुटियों को इंगित करने वाले डोम 0 में कोई संदेश हैं? यदि ऐसा है, तो ऐसा लग रहा है कि यह लेखन त्रुटि डोमू तक जा रही है। DomU नहीं "पता" है कि यह एक iSCSI डिवाइस है, जैसे कि अंतर्निहित डिस्क दूर चला गया था तो यह व्यवहार कर और फाइल सिस्टम remounting केवल पढ़ने के लिए (माउंट देखना (1) मैनपेज - errors=continue / errors=remount-ro / errors=panic)

Dom0 के दृष्टिकोण से, यह केवल-पढ़ने के लिए परिवर्तित नहीं होगा - यह केवल-पढ़ने का व्यवहार एक फाइलसिस्टम शब्दार्थ है, न कि एक ब्लॉक डिवाइस अर्थ।

आप उल्लेख करते हैं कि इस समय "अन्य सभी I / O विफल हो रहे हैं" - क्या आप का मतलब डोम या डोम 0 से है?

आमतौर पर हा iSCSI समाधान स्थापित करते समय मैं वर्चुअल IP टेकओवर के बजाय मल्टीपाथिंग का उपयोग करता हूं - यह मेजबान को अधिक दृश्यता देता है और आपके पास iSCSI सत्र अचानक गायब नहीं होता है, फिर से शुरू करने की आवश्यकता होती है - यह हमेशा होता है, बस उनमें से दो हैं । क्या यह इस वातावरण में एक विकल्प है?


अपने प्रश्नों के उत्तर के साथ मूल विवरण अपडेट करें। मुझे लगता है कि मैं इसके बजाय गुणा करने के लिए देख सकता था, लेकिन सिस्टम अपने वर्तमान स्वरूप में वर्चुअल आईपी विफलता के लिए अधिक सक्षम है। मुझे यकीन नहीं है कि मल्टीप्थिंग के साथ खेलने के लिए ब्लॉक स्तर की प्रतिकृति कैसे आएगी, खासकर जब से सैन इकाइयों में से एक को मास्टर नामित करने की आवश्यकता होती है। फाइलसिस्टम के बारे में मुझे इंगित करने के लिए धन्यवाद। मुझे लगता है कि बहुत ज्यादा यह बताते हैं। मुझे लगता है कि मैं इसे 'जारी' मोड पर स्विच करने का प्रयास कर सकता हूं, या शायद XFS जैसी अधिक लचीला कुछ करने के लिए फाइल सिस्टम को बदल सकता हूं।
कामिल किसिल

1
Ext3 के बारे में स्वाभाविक रूप से कुछ भी बुरा नहीं है - आपको एक्सएफएस के साथ समान समस्याएं होंगी। और मैं onerror = Continue का उपयोग करने की अनुशंसा नहीं करूंगा - सिस्टम यह विश्वास करेगा कि ब्लॉक अपठनीय है और आप डेटा खो देंगे। मल्टीपाथिंग मिररिंग नहीं है - आपको मेजबान पर किसी भी प्रतिकृति के बारे में चिंता करने की आवश्यकता नहीं है। आप बस iSCSI के माध्यम से मास्टर और सेकेंडरी टारगेट दोनों से जुड़ेंगे और होस्ट को पता चल जाएगा कि यदि मास्टर फेल हो गया, तो स्टैक के ऊपर कोई त्रुटि नहीं है, लेकिन सेकंडरी टारगेट पर निर्देशित एक ही कमांड को आज़माने के लिए।
मिकीबी

प्रतिकृति पर मेरी टिप्पणी इस तथ्य के बारे में थी कि दो सैन सर्वरों को अपने डेटा को सिंक्रनाइज़ करने की आवश्यकता है। आंतरिक रूप से मुझे लगता है कि सिस्टम ड्रब के समान काम करता है, जिसमें से एक यूनिट (एक जो वर्तमान में वीआईपी है) मास्टर है। यह मल्टीपाथिंग के साथ काम कर सकता है, लेकिन मैं वास्तव में मौजूदा आर्किटेक्चर से दूर जाने के बिना इस समस्या को हल करना चाहूंगा। इस कार्य को करने का एक तरीका होना चाहिए अन्यथा, मेरे सिस्टम जो सीधे iSCSI वॉल्यूम को माउंट करते हैं, उन्हें केवल पढ़ने के लिए वॉल्यूम की समस्या नहीं होती है।
कामिल किसियल जूल

-1

उम ... समस्या का हिस्सा यह भी है कि आप आरओ के रूप में नहीं चल रहे हैं। सर्वोत्तम अभ्यास सुरक्षा वार राज्य आपके पास आरओ / माउंटेड आरओ होना चाहिए, और आरडब्ल्यू की जरूरत वाले किसी भी फाइल सिस्टम को अलग-अलग माउंट किया जाना चाहिए, (यानी, / var और / tmp)। यदि निर्देशिका के अंतर्गत / आदि हैं जिन्हें लिखने की आवश्यकता है, तो उन्हें / var / etc / पथ पर ले जाया जाना चाहिए और / etc से सहानुभूति रखनी चाहिए।

"/" केवल एकल उपयोगकर्ता मोड में आरडब्ल्यू को माउंट किया जाना चाहिए।

इस फैशन की स्थापना अन्य सुझावों के साथ संयुक्त स्थिति में सेगफॉल्ट को रोक सकती है।


2
क्या आप वाकई सही प्रश्न का उत्तर दे रहे हैं?
कामिल किसियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.