পুনরায় আরম্ভ না করে এনএফএস ক্লায়েন্ট পুনরায় চালু করুন


10

আমি আমার সার্ভারে কাজ করছি, যা থেকে আমি এনএফএস ব্যবহার করে একটি ডিরেক্টরি রফতানি করি। অবশ্যই সপ্তাহে বা তার বেশি সার্ভার রিবুট করার পরে, আমি একাধিকবার umountআমার ওয়ার্কস্টেশনে রফতানি ফাইল সিস্টেমকে ভুলে গিয়েছি (যা /etc/fstabবুট থেকে মাউন্ট হয়ে যায়)। এর মধ্যে আমি umountসত্য এবং পুনরায় গণমাধ্যমের পরে সক্ষম হয়েছি (আমি ব্যবহার করছি নাautofs ):

umount -fl /data0
mount /data0

তবে এটি আর কাজ করে না।

আমি না পারেন, একটি ভিন্ন ডিরেক্টরি (হ্যাং মাউন্ট) এ সার্ভার থেকে এক্সপোর্ট ডিরেক্টরির মাউন্ট, কিন্তু আমি করতে NFS একটি ভার্চুয়াল আমার ওয়ার্কস্টেশন চলমান মেশিনে যে রপ্তানি Dir মাউন্ট।

আমি যা চেষ্টা করেছি তা হ'ল ( rmmod) nfsএবং nfsv3মডিউলটি (যা কাজ করবে না Resource temporarily unavailable)। lsofহ্যাং। mountমাউন্ট করা কিছু দেখায় না nfs। এটি সম্ভবত 'umount -l' একাধিকবার ব্যবহারের ফলাফল, তবে প্রথমবার দু'বার এটি কোনও সমস্যা ছাড়াই কাজ করেছে।

কোনও পার্থক্য না করে মাউন্ট করতে সক্ষম না হওয়ার পরে আমি গড় সময়ে সার্ভারটি পুনরায় চালু করেছি। আমি ব্যবহার service nfs-kernel-server restart। আমি সন্দেহ করি যদি আমি ক্লায়েন্ট ওয়ার্কস্টেশনটি পুনরায় চালু করি তবে সবকিছু স্বাভাবিক অবস্থায় ফিরে আসবে।

এটি থেকে পুনরুদ্ধার করার এবং পুনরায় বুট না করে আমার ওয়ার্কস্টেশনে এনএফএস ক্লায়েন্টের পক্ষ পুনরায় পুনর্নিবিষ্ট করার কোনও উপায় আছে?
যদি আমি এটি পুনরায় বুট না করেই ঠিক করতে না পারি, যদি আমি ব্যবহার শুরু করি তবে তা কি পুনরুদ্ধার হবে না autofs?

lsof -b শেষ লাইনের সাথে ঝুলন্ত:

lsof: avoiding readlink(/run/user/1001/gvfs): -b was specified.
lsof: avoiding stat(/run/user/1001/gvfs): -b was specified.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfs
      Output information may be incomplete.

পূর্ববর্তী লাইনে, নেই /data0

এন্ট্রি /etc/fstab:

192.168.0.2:/data0 /data0  nfs  defaults,auto,nolock,user 0 2

"তবে প্রথমবার দু'বার এটি কোনও সমস্যা ছাড়াই কাজ করেছে" ... আমাকে রাশিয়ান রুলেটকে মনে করিয়ে দেয়। নেই lsof -bHang?
মুড়ু

@ মুরু হ্যাঁ এটি ঝুলছে, আমি আউটপুট দিয়ে কিউ আপডেট করেছি। বিটিডাব্লু, রাশিয়ান রুলেটকে হারানোর অভিযোগ কারও কাছে শুনিনি, তাই এটি অবশ্যই উইন-উইন গেম হওয়া উচিত। আমি সাধারণত প্রত্যাশা করি যে জিনিসগুলি কখনই, একবার বা সর্বদা কিছু গণ্য হয় না এক্স এক্স বার নয়, তবে পরিস্থিতি অন্যরকম ছিল।
অ্যান্থন

আপনি কোন ডিস্ট্রো ব্যবহার করছেন? প্রক্রিয়া অনেক পরিবর্তিত হয়।
গ্রামীণ

@ গ্রেমে এটি লিনিক্স পুদিনা 17.1 (রেবেকা)
অ্যান্থন

উবুন্টুতে upstartএবং কীভাবে এটি কাজ করে তা নিশ্চিত নয়। আপনি সম্ভবত nfs-commonপ্যাকেজে সমস্ত পরিষেবা পুনরায় চালু করতে চান , দেখে মনে হচ্ছে কয়েকটি আছে। অর্ডার সম্ভবত গুরুত্বপূর্ণ বিষয়গুলিও, তাই নির্ভরতার ক্রমে শুরু করে তারপর থামার চেষ্টা করুন। আপনি সম্ভবত rpcbindআপনার শেষ স্টপ / প্রথম শুরু হিসাবে করতে চান । আমি এটি আগে দেবিয়ানে করেছি, তবে এটির একটি দুর্দান্ত nfs-commonপরিষেবা রয়েছে।
গ্রামীণ

উত্তর:


5

@ পেপারমনকি মন্তব্যে যেমন পরামর্শ দিয়েছেন, আপনি স্ক্রু হতে পারেন কারণ আপনি ডিফল্ট মাউন্ট বিকল্পগুলি ব্যবহার করেছেন, এর মধ্যে চিরতরে পুনরায় চেষ্টা করা অন্তর্ভুক্ত রয়েছে।

intrআই / ও-তে আটকে থাকা এনএফএস মাউন্টে আটকা পড়ে থাকা জিনিসগুলিকে বাধাগ্রস্ত করা সহজ করার উপায় হিসাবে ব্যবহৃত হত, তবে এখন এটি কোনও অপসারণ নয়। SIGKILLএনএফএসের আটকে থাকা প্রক্রিয়াগুলিকে এখনও বাধা দিতে পারে, কমপক্ষে nfs(5)দাবি। মাউন্ট বিকল্পগুলির জন্য সেই ম্যান পৃষ্ঠাটি দেখুন।

আপনি যদি এনএফএস চিরতরে আবার চেষ্টা না করতে চান তবে softডিফল্ট পরিবর্তে ব্যবহার করুন hard

আমি অটোমোন্টার ব্যবহার করারও পরামর্শ দিচ্ছি। আপনি চাইলে কোথাও / নেট / হোস্ট / ফু / বারে সিমলিংক তৈরি করুন।

প্রায়শই এটি কেবল পুনরায় বুট করা সহজ, তবে আমি মনে করি তাত্ত্বিকভাবে আপনাকে এনএফএসে আটকে থাকা কোনও প্রক্রিয়া করতে kill -9(যেমন kill -KILL) সক্ষম করতে হবে । অতঃপর সর্বমোট কাজ করতে পারে। ট্যাব-সমাপ্তি যাতে এনএফএস মাউন্টে আরও প্রক্রিয়া আটকে না যায় সেদিকে খেয়াল রাখুন।


তাত্ত্বিকভাবে, তবে যখন lsof স্তব্ধ থাকে তখন এই প্রক্রিয়াগুলি খুঁজে পাওয়া শক্ত।
কুমারশ

@ কেমার্শ: Dপিএস / শীর্ষে অবস্থিত যেকোন প্রক্রিয়া (ডিস্ক-স্লিপ) সম্ভবত এনএফএসে আটকে আছে।
পিটার কর্ডেস

1
দয়া করে নোট করুন যে "হার্ড" এর পরিবর্তে "সফট" ব্যবহার করার সময় এনএফএস সার্ভার অস্থায়ীভাবে অনুপলব্ধ থাকাকালীন প্রতিটি সময় ডেটা হারাতে পারে।
Marki555

4

নীচে একটি RPM ভিত্তিক ডিস্ট্রোতে এই সমস্যাটি ঠিক করার জন্য চালানো কমান্ডগুলির একটি তালিকা রয়েছে।

service rpcbind stop
service nfslock stop
rm -rf /var/lib/nfs/statd/sm/*
rm -rf /var/lib/nfs/statd/sm.bak/*

তারপর:

umount -f /share

1

ব্যবহার autofsভবিষ্যতে এই সমস্যা এড়াতে সহায়তা করবে। এর সবচেয়ে বড় সুবিধা autofsহ'ল ডিরেক্টরিটি এটি ব্যবহার করার চেষ্টা না করা পর্যন্ত এটি মাউন্ট করার চেষ্টা করে না, এর অর্থ আপনি ভাঙ্গা মাউন্ট পয়েন্টগুলি এড়িয়ে চলে এবং এটি অনির্দিষ্টকালের জন্য মাউন্ট করার চেষ্টা করবে না, আপনি আনমাউন্ট করার জন্য একটি সময়সীমা নির্ধারণ করতে পারেন (যা সাধারণত সংক্ষিপ্ত)। আমি নিশ্চিত নই যে এই প্রিমিয়ামআউট পিরিয়ড চলাকালীন অটোমাউন্ট মোটেও পুনরায় চেষ্টা করবে, তবে যেভাবেই আমি সাধারণত অটোমাউন্টের সময়সীমাটি কয়েক সেকেন্ডে সেট করি।

আপনি পুনরায় চালু করার ছাড়া সমস্যার সমাধান করার জন্য হতে পারে এর মাধ্যমে পেতে সক্ষম হবেন umount -a(আনমাউন্ট সব / etc / fstab ফাইলের উল্লিখিত) mount -a(ইন / etc / fstab ফাইলের সব মাউন্ট) কিন্তু আমি করেছি, যদি না ডিরেক্টরি আপনাকে হারিয়ে ফেলেছি হোম ডিরেক্টরীতে আপনি 'রয়েছে অন্য কোথাও কাজ সাশ্রয় করা এবং কেবল পুনরায় চালু করা best


0

বাসি ফাইল সিস্টেমের রেফারেন্স ধারণ করে ক্লায়েন্টের উপর প্রসেসগুলি খুঁজে পেতে lsof কমান্ডের ফলাফলগুলি ব্যবহার করুন এবং এই প্রক্রিয়াগুলি বধ করুন।

umount -f / data0

আপনি সার্ভারটি পিং করতে পারবেন তা নিশ্চিত করুন এবং তারপরে ড্রাইভটি পুনরায় গণনা করুন। যে কোনও পছন্দসই প্রক্রিয়া পুনরায় চালু করুন।

ক্লাস্টারের

দ্রষ্টব্য, আপনি যদি একটি ক্লাস্টার সার্ভার সেটআপ পরিচালনা করেন তবে প্রতিবার সার্ভারটি ব্যর্থ হওয়ার পরে আপনি একটি বাসি এনএফএস ফাইল হ্যান্ডেল পাবেন। এড়াতে আপনার fsid বিকল্পটি ব্যবহার করে আপনার ফাইল সিস্টেম রফতানি করা উচিত। দুটি সার্ভারে প্রতিটি সম্পর্কিত ফাইল সিস্টেমের জন্য fsid এর নম্বর একই হওয়া উচিত। ফাইলগুলির প্রতিরূপ ঘটানোর আশ্বাস আপনার উপর নির্ভর করে। নীচে ম্যান পৃষ্ঠা থেকে স্নিপেট দেখুন:

fsid = num | রুট | uuid এনএফএসের রফতানি হওয়া প্রতিটি ফাইল সিস্টেম সনাক্ত করতে সক্ষম হওয়া দরকার। সাধারণত এটি ফাইল সিস্টেমের জন্য একটি ইউআইডি ব্যবহার করবে (যদি ফাইল সিস্টেমে কোনও জিনিস থাকে) বা ফাইলসিসমূহ ধারণকারী ডিভাইসের ডিভাইস নম্বর (যদি ফাইল সিস্টেমে ডিভাইসটি সঞ্চিত থাকে)। যেহেতু সমস্ত ফাইল সিস্টেম ডিভাইসে সংরক্ষণ করা হয় না এবং সমস্ত ফাইল সিস্টেমে ইউআইডি থাকে না, কখনও কখনও এনএসএফকে কীভাবে একটি ফাইল সিস্টেম সনাক্ত করতে হয় তা স্পষ্ট করে বলার প্রয়োজন হয়। এটি fsid = বিকল্পের সাহায্যে সম্পন্ন হবে।

এনএফএসভি 4 এর জন্য একটি আলাদা ফাইল সিস্টেম রয়েছে যা সমস্ত রফতানি হওয়া ফাইল সিস্টেমের মূল। এটি fsid = root বা fsid = 0 দিয়ে নির্দিষ্ট করা হয়েছে যার অর্থ একই জিনিস exactly

অন্যান্য ফাইল সিস্টেমগুলি একটি ছোট পূর্ণসংখ্যা বা একটি ইউইউডি দিয়ে চিহ্নিত করা যেতে পারে যার মধ্যে 32 হেক্স সংখ্যা এবং স্বেচ্ছাসেবী বিরামচিহ্ন থাকা উচিত।

লিনাক্স কার্নেলগুলির সংস্করণ ২.6.২০ এবং তার আগের ইউআইডি সেটিংস বুঝতে পারে না তাই যদি এই জাতীয় কার্নেলের জন্য একটি fsid বিকল্প সেট করা প্রয়োজন হয় তবে একটি ছোট পূর্ণসংখ্যা ব্যবহার করা আবশ্যক। অল্প সংখ্যক এবং একটি ইউআইডি উভয়ই সেট করা সমর্থন করে যাতে পুরানো এবং নতুন কার্নেলগুলিতে একইভাবে কাজ করার জন্য একই কনফিগারেশনটি তৈরি করা যায়।


তিনি ইতিমধ্যে বলেছেন যে lsof ঝুলছে।
কুমারশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.