মাউন্ট পয়েন্ট হিসাবে উপ-ডিরেক্টরি রয়েছে এমন এনএফএস শেয়ারগুলি কীভাবে রফতানি এবং আমদানি করবেন?


21

সার্ভার বিকল্প সহ এনএফএসের মাধ্যমে Aডিরেক্টরি রফতানি করে । মধ্যে একটি সাব- , একটি ব্যবহার NFS সার্ভারের অন্য কোনো স্থানে পয়েন্ট মাউন্ট হয় বিকল্প মত/srvnohide/srv/srv/foo--bind

server# mount --bind /bar/foo/ /srv/foo/

ক্লায়েন্ট এটি এনএফএস ব্যবহার করে Bআমদানি করে A:/srvএবং মাউন্ট /mnt/srvকরে। বিষয়বস্তু /mnt/srvবিষয়বস্তু হয় A:/srv

সমস্যাটি হ'ল /mnt/srv/fooখালি, যখন আমি সেখানকার বিষয়বস্তুগুলি দেখার আশা করছিলাম A:/bar/foo/

মাউন্ট পয়েন্ট হিসাবে উপ-ডিরেক্টরি রয়েছে এমন এনএফএস শেয়ারগুলি কীভাবে রফতানি এবং আমদানি করবেন?


কেবল এ থেকে সিমলিংক ব্যবহার করা আরও সহজ /srv/foo --> /bar/foo?
ckhan

1
আমি এই চেষ্টা করেছিলাম। এটি সার্ভারে নয়, /bar/fooক্লায়েন্ট মেশিনে যাওয়ার চেষ্টা করবে । BA
mbaitoff

উত্তর:



10

ডিস্কলেস আর্চ গাইড অনুসরণ করার সময় আমি এই সমস্যায় পড়ে গিয়েছিলাম এবং এটি সত্যিই আমাকে ধীর করে দিয়েছে। আমি আমার অনুসন্ধানগুলি এখানে ভাগ করতে যাচ্ছি, কারণ আমি আগ্রহী যে এটি অন্য কারও পক্ষে কাজ করবে কিনা।

ডিস্কলেস গাইড অনুসারে আমার একটি লুপব্যাক চিত্রটিতে ডিস্কলেস ক্লায়েন্টের মূল ফাইল সিস্টেম (সত্যিকারের ডেটা রফতানি করতে হবে) রয়েছে, যা মাউন্ট করা হয়েছে /srv/des1:

/srv/des1.img on /srv/des1 type btrfs (rw,relatime,compress=lzo,discard,space_cache)

তারপরে আমি একটি মাউন্টপয়েন্ট তৈরি করেছি তারপরে /nfs/des1মাউন্টটি চালনা করব এবং নিশ্চিত হয়েছি যে আমি সবকিছু দেখতে পাচ্ছি:

# mkdir -p /nfs/des1 
# mount --bind /srv/des1 /nfs/des1
# ls -l /nfs/des1
bin  boot  dev  usr  #[SNIP]

আর্চ এনএফএস নির্দেশিকা উল্লেখ করে আমি নিম্নলিখিতটি /etc/exportsসার্ভারে রেখেছি :

/nfs/      *(rw,no_root_squash,no_subtree_check,fsid=root)
/nfs/des1/ *{rw,no_root_squash,no_subtree_check,nohide)

আমি তখন exportfs -ravএই পরিবর্তনগুলি প্রয়োগ করতে সার্ভারে একটি রান করেছিলাম ।

তবে আমি তার পরে পরীক্ষার ক্লায়েন্টের সাথে শেয়ারটি চাপিয়েছি: mount server:/des1 /mnt/tmpকেবলমাত্র এটি খালি ডিরেক্টরিটি সন্ধান করার জন্য, যখন আমি ডিস্কলেস-রুট-ফাইল সিস্টেমটি আশা করি।

এই পর্যায়ে আমি সবকিছু সম্পর্কে চেষ্টা করেছি যতক্ষণ না কোনও কিছু আমাকে exportsমেন পৃষ্ঠায় এই বিকল্পটিতে নিয়ে যায় :

crossmnt
    This option is similar to nohide but it makes it possible for clients
    to move from the filesystem marked with crossmnt to exported filesystems
    mounted on it. Thus when a child filesystem "B" is mounted on a parent "A",
    setting crossmnt on "A" has the same effect as setting "nohide" on B. 

তাই আমি এটিকে অন্যরকম বদলে নেওয়ার চেষ্টা করেছি তাই আমার /etc/exportsচেহারাটি এমন দেখাচ্ছে:

/nfs/      *(rw,no_root_squash,no_subtree_check,fsid=root,crossmnt)
/nfs/des1/ *{rw,no_root_squash,no_subtree_check)

ম্যান পেজ এন্ট্রিটি পড়ে আপনি ভাববেন এটি আগের কোডের মতো একই প্রভাব ফেলবে, কিন্তু যখন আমি exportfs -ravআবার পরিবর্তনগুলি নিবন্ধকরণ করতে দৌড়ালাম , তখন ক্লায়েন্টের কাছ থেকে রিমাউন্ট করার চেষ্টা করলাম এবং এটি কাজ করেছিল!


8

দেখে মনে হচ্ছে যে প্রতিটি মাউন্ট সাব-পয়েন্টটি ক্লায়েন্টদের জন্য দৃশ্যমান হওয়ার জন্য অবশ্যই এনএফএস সার্ভার দ্বারা রফতানি করতে হবে। উপরের পরিস্থিতিতে /etc/exportsফাইলটি নিম্নলিখিতগুলির মতো হওয়া উচিত:

/srv        *(rw,fsid=0,nohide,no_subtree_check)
/srv/foo    *(rw,nohide,no_subtree_check)

তারপরে, /srvবিকল্প সহ ক্লায়েন্টের উপর আমদানি করা -t nfsউভয়কে /srvএবং /srv/fooসঠিকভাবে উপলব্ধ করবে।

ওপি দ্বারা সম্পাদনা করুন

এই লাইন

    /srv/foo    *(rw,fsid=0,nohide,no_subtree_check)

পরিবর্তে আমার ক্ষেত্রে কাজ করেছে

    /srv/foo    *(rw,nohide,no_subtree_check) 

1
রুট উপর ক্রসমন্ট?
মেফেক্ট

2

আমি এটিও সত্যিই করতে চেয়েছিলাম, তবে মনে হয় এই ধারণার সাথে সমস্যা আছে কারণ এনএফএস ক্লায়েন্টরা একক মাউন্টের ক্লায়েন্টের দৃষ্টির মধ্যে ইনোড সংখ্যক ফাইল অনন্য বলে প্রত্যাশা করে ।

এই ব্লগ পোস্টটিতে সমস্যাগুলি বিস্তারিত রয়েছে (আমার দ্বারা নয়): http://utcc.utoronto.ca/~cks/space/blog/unix/ মাল্টিএফাইলসিসটেম এনএফএসআইএসইউ

আমি পৃথক পৃথকভাবে ফাইল সিস্টেমগুলি মাউন্ট করার এবং সেগুলি একসাথে সিমিলিংক করার সিদ্ধান্ত নিয়েছি, যা সমস্ত এনএফএস ক্লায়েন্টদের জন্য কাজ করা উচিত।


1
যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
slm

0

দ্রষ্টব্য: কেবলমাত্র একক ব্যবহারকারী সক্ষম

এটি যা যুক্ত করে তা হ'ল সার্ভার সাইড এবং ক্লায়েন্ট সাইডে সম্পাদনার একটি সেট। সার্ভার সাইডে /etc/exportsএবং /etc/fstabক্লায়েন্ট সাইডে।

সার্ভার পাশ

  • লিনাক্স পুদিনা 18.3 সিলভিয়া 32-বিট
  • কার্নেল লিনাক্স 4.4.0-138-জেনেরিক i686
  • আসুস ইয়েপসি

    $ cat /etc/exports 
    #insert shares (one for each mounted partition sub-folder):      
    /nfsshare/ /192.168.1.155(rw,no_root_squash,no_subtree_check,fsid=root,crossmnt)
    /nfsshare/media/ 192.168.1.155(rw,no_root_squash,no_subtree_check)
    /nfsshare/extra/ /192.168.1.155(rw,no_root_squash,no_subtree_check)   
    
    $ cat /etc/fstab  
    #shared media files on /media/ed/
    /media/ed/ /nfsshare/ nfs bind 0 0
    /media/ed/media/ /nfsshare/media/ nfs bind 0 0
    /media/ed//extra /nfsshare/extra/ nfs bind 0 0
    

মক্কেলের পক্ষে

  • লিনাক্স পুদিনা 19 তারা 64-বিট
  • কার্নেল লিনাক্স 4.15.0-38-জেনেরিক x86_64

    $ cat /etc/fstab
    #NFS Shares line added
    192.168.1.158:/nfsshare /mnt/share nfs rw,soft,intr,noatime,x-gvfs-show
    

1
এটা কি? এটি কি একটি ফাইল? অনেক ফাইল? আপনার উত্তরটি স্বচ্ছতার জন্য বিন্যাস করতে বিন্যাসকরণ সরঞ্জামগুলি ব্যবহার করুন you আপনি দয়া করে সম্পাদনা করুন এবং ব্যাখ্যা করুন যে আপনার উত্তর কীভাবে উত্তর দেয়?
টেরডন

(1) আপনার শব্দ ব্যবহার করুন। (২) ইতিমধ্যে উপস্থাপিত হয়নি এমন এই অফারটি কী?
জি-ম্যান বলছেন 'পুনরায় ইনস্টল করুন মনিকা'

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