आटोमाउंट एनएफएस: अविश्वसनीय सर्वरों के लिए ऑटोफोटो टाइमआउट सेटिंग्स - हैंगअप से कैसे बचें?


18

मैं हमारे फ्लैट शेयर के लिए एक छोटा सर्वर चला रहा हूं। यह ज्यादातर कुछ अतिरिक्त सेवाओं के साथ एक फ़ाइल सर्वर है । क्लाइंट लिनक्स मशीन हैं (ज्यादातर उबंटू, लेकिन कुछ अन्य डिस्ट्रोस भी) और कुछ मैक (-बुक) बीच में हैं (लेकिन वे सवाल के लिए महत्वपूर्ण नहीं हैं)। सर्वर Ubuntu 11.10 (Oneiric Ocelot) 'सर्वर संस्करण' चला रहा है, जिस सिस्टम से मैं अपना सेटअप करता हूं और परीक्षण 11.10 'डेस्कटॉप संस्करण' चलाता है। हम सांबा के साथ अपने शेयर (जहाँ हम अधिक परिचित हैं) को कुछ समय के लिए चला रहे हैं, लेकिन फिर NFS में माइग्रेट करते हैं (क्योंकि हमारे पास लैन में कोई विंडोज उपयोगकर्ता नहीं है और इसे आज़माना चाहते हैं) और अब तक सब कुछ ठीक काम करता है

अब मैं के साथ सेटअप ऑटो बढ़ते देखना चाहते autofs बातें (अप अब हर किसी के माउंट करने के लिए शेयरों को मैन्युअल जब जरूरत) सम करने के लिए। ऑटो-माउंटिंग भी काम करने लगता है। समस्या यह है कि हमारा "सर्वर" ऊर्जा को बचाने के लिए 24/7 नहीं चलता है (यदि किसी को सर्वर से सामान की आवश्यकता है / वह इसे चालू करता है और बाद में इसे बंद कर देता है, तो यह केवल प्रत्येक दिन कुछ घंटे चलाता है)। लेकिन जब से सर्वर चालू नहीं होता है तब से ऑटोफॉज सेटअप के बाद क्लाइंट अक्सर काम छोड़ देते हैं।

  • जब सर्वर नहीं चल रहा हो तब भी मैं सभी क्लाइंट्स को ठीक से शुरू कर सकता हूं।

  • लेकिन जब मैं एक निर्देशिका (टर्मिनल या नॉटिलस में) प्रदर्शित करना चाहता हूं, जिसमें /nfsसर्वर के न चलने के दौरान किसी शेयर का सांकेतिक लिंक होता है , तो यह कम से कम दो मिनट के लिए लटका रहता है (क्योंकि ऑटोफ़ सर्वर से कनेक्ट नहीं हो सकता है लेकिन रखता है कोशिश कर रहा है, मुझे लगता है)।

    • क्या इससे बचने का कोई तरीका है? ताकि माउंटिंग को निर्देशिका में बदलने तक देरी हो जाए या जब तक उस निर्देशिका की सामग्री एक्सेस न हो जाए? नहीं जब एक शेयर के तहत एक लिंक पर "देख" /nfs? मुझे लगता है कि नहीं, लेकिन शायद इतने लंबे समय तक इसे एक्सेस करने की कोशिश न करना संभव है? और बस मुझे एक खाली निर्देशिका दें या "उस डायर से कनेक्ट / कनेक्ट नहीं कर सकते" या ऐसा कुछ।
  • जब सर्वर चल रहा होता है, तो सब कुछ ठीक काम करता है।

  • लेकिन जब सर्वर बंद हो जाता है, इससे पहले कि कोई शेयर अनमाउंट हो जाए, टूल (जैसे dfया ll) हैंग हो जाते हैं (यह मानते हुए कि उन्हें लगता है कि शेयर अभी भी चालू है, लेकिन सर्वर अब जवाब नहीं देगा)।

    • क्या कनेक्शन खो जाने पर स्वचालित रूप से शेयरों को अनमाउंट करने का एक तरीका है?
  • इसके अलावा क्लाइंट्स सर्वर डाउन होने पर शटडाउन या रीस्टार्ट नहीं करेंगे और उनके पास अभी भी शेयर हैं। वे लटकाते हैं (असीम रूप से ऐसा लगता है) " शेष प्रक्रियाओं को मारना " और कुछ भी नहीं लगता है।

मुझे लगता है कि यह सब बढ़ते और अनमाउंटिंग के लिए नीट टाइमआउट मूल्यों के लिए आता है। और शायद सर्वर से कनेक्शन खो जाने पर सभी शेयरों को हटा दें।

तो मेरा सवाल है: इसे कैसे संभालना है? और एक बोनस के रूप में: क्या /nfsवास्तविक शेयरों को माउंट करने की आवश्यकता के बिना अंदर लिंक करने का एक अच्छा तरीका है (एक ऑटोफोकस विकल्प या शायद एक छद्म एफएस का उपयोग करना /nfsजिसके लिए जब माउंट होता है या ऐसा कुछ होता है)?

मेरा सेटअप

एनएफएस सेटिंग सुंदर बुनियादी है, लेकिन हमें अच्छी तरह से अब तक (का उपयोग कर कार्य किया NFSv4 ):

/ Etc / default / NFS-आम

NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=

/etc/idmapd.conf

[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup

/ Etc / निर्यात

/srv/   192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)

निर्यात रूट के तहत /srvहमें दो निर्देशिकाएं मिलीं bind:

/ etc / fstab (सर्वर)

...
/shared/shared/      /srv/shared/      none    bind  0 0
/home/Upload/        /srv/upload/      none    bind  0 0

पहली बार ज्यादातर केवल पढ़ा जाता है (लेकिन मैं एनएफएस सेटिंग्स के बजाय फ़ाइल विशेषताओं और स्वामित्व के माध्यम से लागू करता हूं) और 2 सभी के लिए आरडब्ल्यू है। नोट: उनके पास / etc / निर्यातों में कोई अतिरिक्त प्रविष्टियाँ नहीं हैं , उन्हें अलग से बढ़ते हुए काम करता है।

क्लाइंट की ओर से उन्हें आवश्यकतानुसार सेटअप मिलता है /etc/fstabऔर मैन्युअल रूप से माउंट किया जाता है ( mortonसर्वर का नाम है और यह ठीक हल करता है)।

/ etc / fstab (ग्राहक)

morton:/shared  /nfs/shared nfs4    noauto,users,noatime,soft,intr,rsize=8192,wsize=8192    0   0
morton:/upload  /nfs/upload nfs4    noauto,users,noatime,soft,intr,rsize=8192,wsize=8192    0   0

के लिए autofs सेटअप मैं से हटाई गई प्रविष्टियां /etc/fstabग्राहकों पर है और इस तरह आराम सेट करें:

/etc/auto.master

/nfs    /etc/auto.nfs

पहले मैंने आपूर्ति करने योग्य निष्पादन योग्य को बांधा /etc/auto.net(आप इसे यहां देख सकते हैं ) लेकिन यह स्वचालित रूप से मेरे लिए कुछ भी माउंट नहीं करेगा। फिर मैं /etc/auto.nfsकुछ हॉवट्स पर आधारित लिखता हूं जो मुझे ऑनलाइन मिले:

/etc/auto.nfs

shared  -fstype=nfs4  morton:/shared
upload  -fstype=nfs4  morton:/upload

और यह थोड़े काम करता है ... या सर्वर 24/7 चलेगा तो काम करेगा। इसलिए हमें हैंगअप तब मिलता है जब कोई क्लाइंट बिना सर्वर के चल रहा होता है या जब शेयर जहां भी जुड़ा होता है वहां सर्वर डाउन हो जाता है।

जवाबों:


2

किसी भी माउंट सिस्टम का उपयोग करते हुए, आप उन परिस्थितियों से बचना चाहते हैं जहां Nautilus एक माउंट वाले निर्देशिका को सूचीबद्ध करता है जो माउंट नहीं किया जा सकता है या नहीं। इसलिए, ऑटोफोंस के साथ, उदाहरण के लिए, / nfs में माउंट नहीं बनाते हैं। यदि आप ऐसा करते हैं, जब आप 'फाइल सिस्टम' को सूचीबद्ध करने के लिए Nautilus का उपयोग करते हैं, तो यह बनाने की कोशिश करेगा कि जो भी mounts / nfs में मौजूद होना चाहिए, और यदि वे माउंट प्रयास विफल होते हैं तो इसे छोड़ने में मिनट लगते हैं।

इसलिए मैंने जो किया वह था ऑटो /मास्टर को / mfs / mnt में mounts बनाने के लिए बदलना।

इससे मेरे लिए समस्या ठीक हो गई। मुझे केवल एक लंबा विलंब मिलता है यदि मैं / nfs / mnt की सामग्री को सूचीबद्ध करने का प्रयास करता हूं, जिसे मैं आसानी से टाल सकता हूं।


20

माउंट-विकल्प "बीजी, इंट्रा, हार्ड" का उपयोग करके क्लाइंट पर एनएफएस-शेयर माउंट करें।

आपके मामले में सबसे महत्वपूर्ण पृष्ठभूमि के लिए "बीजी" है - जो सिस्टम को तब उपलब्ध नहीं होने के लिए कहता है जब सर्वर उपलब्ध नहीं है।

इंटरट्रप्टेबल के लिए "इंट्र" - ताकि आप क्लाइंट पर हैंग कमांड को मार कमांड के साथ मार सकें।

"हार्ड" "सॉफ्ट" के विपरीत है। अंतर यह है कि "हार्ड" सर्वर के उपलब्ध नहीं होने पर "नरम" तेजी से वापस ले जाएगा, जब सर्वर उपलब्ध नहीं होगा।


जवाब के लिए धन्यवाद। मैं अभी परीक्षण नहीं कर सकता क्योंकि मैं घर पर नहीं हूं, लेकिन मैन पेज (फिर से) प्राप्त करने के लिए बांधने के बाद, मुझे कुछ और प्रश्न मिले: hardऔर bgपहली बार में मुझे सहज लगता है। मैं चाहता हूं कि माउंट पीछे हटे और अगर बेल हो जाए तो तुरंत वापस आ जाए? intrठीक लगता है, लेकिन यह भी काम नहीं करता है कि लगता है: " इंट्र / nointr आरोह विकल्प को २.५.२.५५ के बाद हटा दिया गया है। केवल सर्गिल इन कर्नेल पर लंबित एनएफएस ऑपरेशन को बाधित कर सकता है, और यदि निर्दिष्ट किया गया है, तो इस माउंट विकल्प को पीछे की ओर संगतता प्रदान करने के लिए अनदेखा किया गया है। पुरानी गुठली के साथ। "
ब्रूटस

2
यदि माउंट अभी संभव नहीं है, तो हार्ड अंतहीन रूप से पुन: प्रयास करेगा - बीजी ब्लॉक नहीं करेगा। परिणाम यह होगा कि यह उपलब्ध होने पर मुहिम शुरू की जाती है, लेकिन अन्य सभी ऑपरेशन चलेंगे। INTR अब डिफ़ॉल्ट रूप से प्रतीत होता है - जो बहुत अच्छा है। शुरुआत में आपको अपने एनएफएस-सर्वर की मृत्यु होने पर फांसी देने वाले ग्राहक को रिबूट करना पड़ता था ...
निल्स

मैं सिर्फ यह परीक्षण किया है, लेकिन जोड़ने के hard,bgलिए /etc/auto.masterकुछ भी नहीं बदलने के लिए लगता है। A time ls -l ~(मेरे उपयोगकर्ता dir में एक सिमलिंक शामिल है /nfs/upload) को अभी भी दो मिनट लगते हैं, जब सर्वर नहीं चल रहा होता है।
Brutus

क्या आपने ऑटोफ़ॉ को पुनः आरंभ किया? केवल उप-परिवर्तन-परिवर्तन ऑटोफोंस को पुनः आरंभ किए बिना प्रचारित करेंगे।
निल्स

मैंने किया:sudo reload autofs && sudo restart autofs
ब्रुतस

7

मैन पेज से कुछ विकल्पों के साथ मैंने कुछ और के आसपास खेला। सभी की bg,hard, bg,soft, fg,hardऔर fg,softमुझे दो से अधिक minuets के समय वापसी दे।

सेटिंग retrans=1,retry=0(उपरोक्त में से किसी के साथ संयुक्त) हालांकि, मुझे लगभग तीन सेकंड का समय मिलता है। बहुत अच्छा। हालांकि मुझे यकीन नहीं है कि प्रत्येक संयोजन का क्या मतलब है। आगे और खुदाई करेंगे।

इसके अलावा मैं autofs विकल्पों में आया था MOUNT_WAITऔर UMOUNT_WAIT। मैं उनके साथ कुछ अलग परिणाम प्राप्त करने में सक्षम नहीं हूं, लेकिन मैं कोशिश करता रहूंगा। लगता है कि "अधिक सुरक्षित" (उर्फ और रिट्रीट, आदि उर्फ) एनएफएस विकल्प का उपयोग करने का एक अच्छा तरीका है, लेकिन ऑटोफोंस के लिए त्वरित वापसी समय, या नहीं?


1
अन्य विकल्प भी प्रतीत होते हैं, जैसे rsize=32768,wsize=32768,noatimeकि यहाँ उल्लेख किया गया है: techrepublic.com/blog/opensource/…
Ehtesh Choudhury

-1

जब आप अपने Red Hat Linux सिस्टम को शुरू करते हैं तो हर बार स्वचालित रूप से माउंट करने के लिए एक NFS फाइल सिस्टम सेट करने के लिए, आपको उस NFS फाइल सिस्टम के लिए / etc / fstab फाइल में एक प्रविष्टि जोड़ने की आवश्यकता होती है। / Etc / fstab फ़ाइल में आपके Red Hat Linux सिस्टम के लिए विभिन्न प्रकार के माउंटेड (और उपलब्ध होने के लिए उपलब्ध) फ़ाइल सिस्टम की जानकारी होती है। EX:: nfs फ़ाइल सिस्टम को निर्यात करने वाले सर्वर के होस्टनाम, आईपी पते या पूरी तरह से योग्य डोमेन नाम से मेल खाती है। निर्यात निर्देशिका के लिए रास्ता है। निर्यात निर्देशिका को माउंट करने के लिए स्थानीय फ़ाइल सिस्टम पर निर्दिष्ट करता है। / Etc / fstab पढ़ने से पहले यह माउंट बिंदु मौजूद होना चाहिए या माउंट विफल हो जाएगा क्षेत्र फ़ाइल सिस्टम के लिए माउंट विकल्प निर्दिष्ट करता है। उदाहरण के लिए, यदि विकल्प क्षेत्र rw, suid बताता है, निर्यातित फ़ाइल सिस्टम को रीड-राइट माउंट किया जाएगा और सर्वर द्वारा सेट किए गए उपयोगकर्ता और समूह का उपयोग किया जाएगा। ध्यान दें कि कोष्ठक का उपयोग यहां नहीं किया जाना है

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