এনএফএস এবং এসএমবি কি বিরল ফাইল সমর্থন করে?


18

এই প্রশ্নটি পূর্বে স্ট্যাক ওভারফ্লোতে জিজ্ঞাসা করা হয়েছিল তবে সেখানকার ভাল লোকেরা সুপারিশ করেছে যে পরিবর্তে আমি এখানে সম্প্রদায়টি চেষ্টা করব।

আমি বিভিন্ন ফাইল-সিস্টেমের সাথে স্পার্স ফাইলগুলি নিয়ে গবেষণা করছি এবং এমন কিছু কংক্রিটের সন্ধানের চেষ্টা করছি যাতে বলা হয় যে স্পার ফাইলগুলি নেটওয়ার্ক ফাইল সিস্টেম (এনএফএস) বা সার্ভার মেসেজ ব্লক (এসএমবি) দ্বারা সমর্থিত।

আমি বুঝতে পারি যে উইন্ডোজে এসএমবি ব্যাপকভাবে ব্যবহৃত হয় এবং এই এন্ট্রি অনুসারে , এসএমবি সার্ভার অন্তর্নিহিত ফাইল সিস্টেমটি না করে এমনকি স্পার্স ফাইল সমর্থন করতে পারে। তবে, আমি যদি সঠিক হয়ে থাকি তবে যে ফাইল সিস্টেমটি বিরল ফাইলগুলি সমর্থন করে না, কেবল জিরো দিয়ে 'গর্তগুলি' পূরণ করবে এবং এটি পারফরম্যান্স সমস্যার কারণ হতে পারে।

এনএফএসের প্রতি, আমি বিরল ফাইল সমর্থনকারী এনএফএস ব্যবহার সম্পর্কে কিছুই জানতে পারি না।

সুতরাং, আমার প্রশ্নগুলি হল,

এনআরএফএস এবং এসএমবিতে কি স্পার্স ফাইল সমর্থিত?

উত্তর:


12

এনএফএস: স্পার্স ফাইলের জন্য এটির একটি আংশিক সমর্থন রয়েছে। মূলত, এটি একটি বিচ্ছিন্ন ফাইল তৈরি সমর্থন করে তবে পড়ার সময় ফাইলটি শূন্য অন্তর্ভুক্ত করার জন্য প্রসারিত হয়। এর অর্থ হ'ল আপনি যখন এনএফএসের মাধ্যমে একটি স্পার্স ফাইল তৈরি করতে পারেন, ঠিক সেই একই ফাইলটি পড়ার সময় ইন ট্রানজিট নেটওয়ার্ক ডেটাতে মূল ফাইলটিতে পাওয়া কোনও শূন্য অন্তর্ভুক্ত থাকবে। একটি সাধারণ পরীক্ষা সেই আচরণটি দেখায়:

cd /mnt/nfs
truncate test.img -s 1G
ls -lh test.img

-rw-R - r--। 1 টি মূল রুট 1.0 জি অক্টোবর 26 11:29 test.img

du -hs test.img

0 test.img

আপনি দেখতে পাচ্ছেন, test.img ফাইলটির ডিস্ক আকার 0 বাইট রয়েছে। যাইহোক, dd if=test.img of=/dev/null bs=1M iflag=directশো ব্যবহার করে এটি ফিরে পড়া

1024 + 0 রেকর্ড
1024 + 0
রেকর্ডারে 1073741824 বাইট (1.1 গিগাবাইট) অনুলিপি করা হয়েছে, 10.2269 এস, 105 এমবি / সে

এটি স্পষ্ট যে স্পার ফাইলটি স্থানান্তর করার সময়, সমস্ত জিরো অন্তর্ভুক্ত করার জন্য এটি প্রসারিত করা হয়।

এনএফএসভি 4.২ স্পার ফাইলের স্থানান্তরের জন্য বিশেষ হ্যান্ডলিং অন্তর্ভুক্ত করে প্রসারিত হবে। অন্য কথায়, উপরের NFSv4.2 এর সাথে ddপ্রায় তাত্ক্ষণিকভাবে সম্পূর্ণ হবে।

এসএমবি: কমপক্ষে আমার পরীক্ষার পরিবেশে এটি সিএফএস ভি 1 এর সাথে সাম্বা ভি 3.6.x সার্ভার এবং মাউন্ট কোডিফ ব্যবহার করে একটি লিনাক্স ক্লায়েন্ট ব্যবহার করে এনএফএসের মতো আচরণ করে। উইন্ডোজ অধীনে এটি অন্যরকম আচরণ করে ...


যদি এনএফএস সার্ভারের অন্তর্নিহিত ফাইল সিস্টেমটি স্পার্স ফাইল সমর্থন করে না তবে এনএফএস স্পার্স ফাইলগুলিকে সমর্থন করতে পারে ?
অ্যান্ড্রু হেনেল

2
@ শোডনশোক: আপনার পরীক্ষাটি অবৈধ। এমন একটি ফাইল সিস্টেমে একই কমান্ড প্রয়োগ করা যা বিরল ফাইলগুলিকে সমর্থন করেddব্লক দ্বারা ব্লকটিতে পড়ে এবং অন্তর্নিহিত ফাইল সিস্টেমটি বিচ্ছিন্ন ফাইলগুলিকে সমর্থন করে বা না, গর্তগুলি ওএস দ্বারা শূন্যে পরিণত হয়। এটি Ext4 এ চেষ্টা করুন এবং আপনি একই সংখ্যা দেখতে পাবেন।
এবলিগ করুন

@ অ্যান্ড্রুহেনেল যদি অন্তর্নিহিত এফএস বিরল ফাইল সমর্থন না করে তবে এনএফএস কীভাবে অ-অযৌক্তিক সমর্থনটি প্রকাশ করতে পারে? যাইহোক, আজকাল বিরল ফাইল সমর্থন ব্যতীত একটি ফাইল সিস্টেম খুঁজে পাওয়া বেশ কঠিন, কারণ সাম্প্রতিক সমস্ত (ext3 / 4, xfs, ইত্যাদি) লিনাক্স ফাইল সিস্টেমগুলি এই বৈশিষ্ট্যটিকে সমর্থন করে।
shodanshok

1
@ অলগ আপনি ভুল বলেছেন ddস্থানীয় স্পার্স ফাইলের উপর কমান্ড কার্যকর করা খুব দ্রুত ফলাফল দেবে। উদাহরণস্বরূপ এখানে দেখুন : root@hubble:~# truncate -s 1G test.img root@hubble:~# dd if=test.img of=/dev/null bs=1M iflag=direct 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 0.10478 s, 10.2 GB/s, আপনি দেখতে পাচ্ছেন যে স্থানীয় স্পার্স ফাইলটি পড়া 10 গিগাবাইট / এস এর
shodanshok ২

2
@ শোদনশোক - ওহ আমি দেখতে পাচ্ছি, আপনি গতিটি দেখছেন, স্থানান্তরিত পরিমাণটি নয় not আপনার উত্তরটি সম্ভবত স্পষ্ট করা সহায়ক হবে। কোনও ফাইলকে অল্প উপায়ে সংরক্ষণ করার জন্য ক্যানোনিকাল পরীক্ষাটি du -sবনাম ls -l, তবে আপনি ঠিক বলেছেন যা নেটওয়ার্কের মাধ্যমে সংক্রমণে সহায়তা করে না; তবে উভয় ক্ষেত্রে (যেমনটি straceনিশ্চিত হবে) ddপুরো ফাইলটি পড়ছে, জিরো হিসাবে 'ছিদ্র' সহ, কেবলমাত্র 'জিরো' উত্পন্ন হওয়া (সার্ভার বা ক্লায়েন্টের পক্ষের) পার্থক্য। তবে (যেমন আমার উত্তর প্রতি) উল্লেখ্য NFS 4.2 নেই সম্পূর্ণরূপে বিক্ষিপ্ত ফাইলগুলি সমর্থন করছি।
26:53

10

NFS- র

হ্যাঁ, এনএফএস 4.2 সম্পূর্ণভাবে বিচ্ছিন্ন ফাইলগুলিকে সমর্থন করে ( এই সাধারণ নথি এবং এই উপস্থাপনাটি দেখুন )।

এনএফএস ৪.২ এর আগে, এনএফএস ক্লায়েন্ট / সার্ভার মডেল এই স্প্রেস ফাইলগুলিকে সমর্থন করে যে এপিআই সমস্ত পসেক্স ফাইল অপারেশনকে সমর্থন করে। এর অর্থ হ'ল এমন একটি সার্ভারে স্পার্স ফাইলগুলি লেখার জন্য যা ব্যাকিং ফাইল সিস্টেমে স্পার্স ফাইলগুলিকে সমর্থন করে ফলে একটি বিচ্ছুরিত ফাইল তৈরি হয়েছিল (প্রচুর জিরো সংরক্ষণের চেয়ে)। তবে ফাইলটি পড়ার ফলে বিচ্ছুর উপাদানগুলির জন্য প্রচুর শূন্যের সংক্রমণ ঘটবে। IE উত্তরটি 'আংশিক'।

এনএফএস 4.2 ক্লায়েন্টের জন্য ফাইলগুলির ছিদ্রগুলি 'দেখার' এবং তার জন্য সার্ভারের জন্য সমস্ত শূন্য প্রেরণ করতে হবে না। আইডি থেকে:

1.4.3.  Sparse Files

Sparse files are ones which have unallocated or uninitialized data
blocks as holes in the file.  Such holes are typically transferred as
0s during I/O. READ_PLUS (see Section 15.10) allows a server to send
back to the client metadata describing the hole and DEALLOCATE (see
Section 15.4) allows the client to punch holes into a file.  In
addition, SEEK (see Section 15.11) is provided to scan for the next
hole or data from a given location.

স্পেসিফিকেশন বিচ্ছিন্ন ফাইলগুলিকে সমর্থন করে সত্ত্বেও, অলস প্রয়োগকারী পক্ষে ক্লায়েন্ট বা সার্ভার উভয় ক্ষেত্রেই স্পার ফাইলগুলির সমর্থন প্রয়োগ করা এড়ানো সম্ভব হবে possible

সাহায্যে SMB

আমি এসএমবি সম্পর্কে কম জানি, তবে আমি বিশ্বাস করি যে প্রাসঙ্গিক এফএস সক্ষমতার বিট সেট করা থাকলে এটি খুব কম স্পার্স ফাইলগুলিকে সমর্থন করে। আরও তথ্যের জন্য এখানে দেখুন ।

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