কোনও ফাইল সিস্টেম সিপি-র জন্য লিখিত মেকানিজম অনুলিপি প্রয়োগ করে?


16

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

এক্সট 4 বা এক্সএফএস (জার্নালিং) ফাইল সিস্টেমের সাথে একটি লিনাক্সে সিপি করার সময়ও এটি ঘটে। যদি হয় না, তবে কেন হবে না?


আশা করি কেউ এই আকর্ষণীয় প্রশ্নের উত্তর দেবেন
করিম মানাউল

তবে আমি এটি মনে করি না কারণ উদাহরণস্বরূপ, একটি বৃহত ফাইল coying করতে যথেষ্ট দীর্ঘ সময় লাগবে (নতুন ব্লকে ডেটা অনুলিপি করা)। যদি এই জাতীয় ফাইল সিস্টেমে কোনও COW থাকে (কমপক্ষে ext3 / ext4) আপনি সময় বিলম্বিতাটি লক্ষ্য করবেন না (সম্ভবত এই জাতীয় ক্ষেত্রে কেবলমাত্র ডাটা ব্লকগুলিতে পয়েন্টার ছাড়াই ইনোডের প্রতিরূপকরণ এবং কিছু সিওডাব্লু চিহ্ন চিহ্নিত করে)।
করিম মানাউল

অনুলিপি অনুলিপি জেডএফএসে প্রয়োগ করা হয়েছে এবং এটিতে খুব সস্তা ফাইল সিস্টেম / ভলিউম ক্লোন রয়েছে। ext4 / xfs এর ডিস্ক ফর্ম্যাটটি খুব আদিম আছে, আমি বিশ্বাস করি, এটি সমর্থন করার জন্য
myaut

উত্তর:


7

অনুসন্ধানের মূল শব্দটি হ'ল reflink। এটি সম্প্রতি এক্সএফএসে প্রয়োগ করা হয়েছিল।

সম্পাদনা: এক্সএফএস বাস্তবায়ন প্রথম দিকে এক্সপেরিমেন্টাল হিসাবে চিহ্নিত হয়েছিল। আমি উপরের :-) লেখার বেশ কয়েক মাস পরে এই সতর্কতাটি কার্নেল রিলিজ ৪.১16 এ অপসারণ করা হয়েছিল।


11

cp ম্যান পৃষ্ঠা থেকে :

যখন --reflink [= সর্বদা] নির্দিষ্ট করা থাকে তখন একটি হালকা ওজনের অনুলিপি করুন, যেখানে ডেটা ব্লকগুলি কেবলমাত্র পরিবর্তিত হলেই অনুলিপি করা হয়। যদি এটি সম্ভব না হয় তবে অনুলিপি ব্যর্থ হয়, বা --reflink = অটো নির্দিষ্ট করা থাকলে, কোনও মানক অনুলিপিটিতে ফিরে যান।

যা সমর্থন ফাইল সিস্টেম এই কাজ অনুলিপি-অন-লিখন ( reflink ), প্রধানত মুহূর্তে Btrfs। এক্সএফএস রিফ্লিংক বাস্তবায়ন চলছে [1] [2]


1
কিছু নেটওয়ার্ক ফাইল সিস্টেম যেমন এনএফএস, সিআইএফএস, ওসিএফএস 2 সেগুলি সার্ভারের সাথেও যেতে পারে।
স্টাফেন চেজেলাস

2

লিনাক্সের একটি সিস্টেম কল রয়েছে যা ব্যবহারকারীর স্পেস প্রক্রিয়াগুলি কার্নেলকে ফাইলের লিখিত অনুলিপিগুলিতে অনুলিপি তৈরি করতে দেয়। আইওসিটিএল-এর বিকল্প হিসাবে ব্যবহৃত ফিক্লোনার্যাঞ্জে এবং ফিক্লোনগুলি ফাইলের মধ্যে থাকা ফাইল এবং রেঞ্জের অনুলিপিগুলিতে অনুলিপি তৈরি করতে দেয়।

এটি সিপি --reflink দ্বারা যেখানে ফাইল সিস্টেম এটি সমর্থন করে সেই অনুলিপিগুলি তৈরি করতে ব্যবহৃত হয়।


1

আপনি cp(বা কমপক্ষে একটি ব্লকটি অনুলিপি করার জন্য ) জন্য একটি সিস্কাল চালু না করে , ওএসের খুব সহজেই এটি নির্ধারণ করা হয় যে cpপ্রোগ্রামটি যে ডেটাটি লিখতে চলেছে তা অন্য ব্লক থেকে যেমন পড়েছে তেমনই একই। তার উপরে, "বেশ কয়েকটি ফাইল একই ব্লকগুলি ভাগ করে নেবে" দৃশ্যটি পরিচালনা করার জন্য আপনার অতিরিক্ত ওভারহেড থাকতে হবে। বৃহত্তর অনুরূপ ফাইল যা কেবলমাত্র কয়েকটি ব্লকের মধ্যে পৃথক হয় খুব কমই ঘটে। সুতরাং এই ব্লকগুলি অনুলিপি করা পুরোপুরি সস্তা, তারপরে সমস্ত ফাইলগুলিতে এই প্রশাসনিক ওভারহেড যুক্ত করা ।

এখন আপনি যদি ফাইল সিস্টেমের অন্য ক্লোন / স্ন্যাপশট যোগ করে ফাইলগুলি (অনেকগুলি) "অনুলিপি করেন", বলুন, বিটিআরএফএস, পরিস্থিতি আলাদা: এখন আপনি ফাইল সিস্টেমের সমস্ত ফাইল "অনুলিপি করেছেন" এবং এতে কোনও পরিবর্তন করেছেন সেগুলি অনুলিপি করা হবে। এটি বিদ্যমান, তবে ext4 এ নেই।

"জার্নাললিং" এটি থেকে সম্পূর্ণ স্বাধীন ধারণা, এটি গণনা করা ফাইলগুলির প্রশাসনিক কাঠামো।


বড় ফাইলগুলির মধ্যে একটি অত্যন্ত বিরল সময়ের মধ্যে একটি অন্যান্য বাইনারি অনুলিপি হ'ল এক বিট থেকে আলাদা হয় এবং এটি ঘটে যা ত্রুটির কারণে ঘটে।
বিটিফেট

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