জেডএফএসে গাভুলি তৈরির উপায় আছে কি?


14

আমি কয়েকটি ফাইল / ডিরেক্টরিগুলির গরু-অনুলিপিগুলি তৈরি করার চেষ্টা করছি, তবে আমি জানি যে বেশ কয়েকটি উপায়ে আমার কাছে সর্বোত্তম বলে মনে হচ্ছে।

উদাহরণস্বরূপ, বিটিআরএফএস cp --reflink=autoদ্রুত ফাইলের গো-কপি তৈরির মাধ্যমে ব্যবহার করতে পারে ।

আমি যা চেষ্টা করেছি:

  1. সিমলিংকস: ভাল না। নতুন নামকরণ করা ফাইল, ভাঙা লিঙ্ক।
  2. হার্ডলিঙ্কস: আরও ভাল, তবে এখনও ভাল নয়। একটি ফাইলের পরিবর্তনগুলি অন্যটিকে পরিবর্তন করবে এবং আমি অবশ্যই অন্য ফাইলটি পরিবর্তন করতে চাই না।
  3. ডেটাসেটের একটি স্ন্যাপশট তৈরি করুন, তারপরে স্ন্যাপশটটি ক্লোন করুন: এটি কাজ করতে পারে তবে ভাল নয়। প্রায়শই আমি পুরো ডেটাসেটের অনুলিপি বা অনুলিপিগুলি অন্য কোনও ডেটাসেটের মতো কাজ করার জন্য খুঁজছি না। তারপরে ক্লোন / স্ন্যাপশট / মূলের মধ্যে পিতামাতার / সন্তানের সম্পর্ক রয়েছে, যা আমি বুঝতে পেরেছি এটি শক্ত, যদি ভাঙ্গা অসম্ভব না হয়।
  4. zfs send/receiveডেটাপ ব্যবহার ও সক্ষম করে ডেটাসেটটিকে একটি নতুন ডাটাবেসে প্রতিলিপি তৈরি করুন: এটি ক্লোন ব্যবহারের সাথে পিতামাতার / সন্তানের সম্পর্কগুলি এড়িয়ে যায়, তবে এখনও অকারণে অন্য একটি ডেটাসেট তৈরি করে এবং এখনও 100% পড়তে হবে এমন ফাইলগুলিতে জড়িত অলসতায় ভুগছে and ব্লকের পরিবর্তে আবার লিখিত পরিবর্তিত।
  5. ফাইলগুলি অনুলিপি করুন এবং তার কাজটি ছাড় দিন: এটি কাজ করে তবে ধীর কারণ ফাইল (গুলি) 100% পড়তে হবে এবং তারপরে লেখার পরিবর্তে ব্লকগুলি আবার উল্লেখ করা যেতে পারে।

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

আমার সমস্ত গবেষণায়, আমি বিটিআরএফ-তে রিফ্লিংকের সরলতার সাথে দূরবর্তীভাবে সাদৃশ্যপূর্ণ কিছু খুঁজে পাইনি।

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

উত্তর:


4

আমি মনে করি বিকল্পটি 3 আপনি উপরে বর্ণিত হিসাবে সম্ভবত আপনার সেরা বাজি হয়। আপনি যা চান তার সাথে সবচেয়ে বড় সমস্যাটি হ'ল জেডএফএস কেবলমাত্র এই অনুলিপিটি ডেটাসেট / স্ন্যাপশট স্তরে পরিচালনা করে।

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

অপশন 3-এ ফিরে, আপনি যে পদ্ধতিতে এই পদ্ধতিতে পরিচালনা করতে চান তার প্রতিটি ফাইল সিস্টেম গাছ রাখার জন্য আপনাকে একটি নির্দিষ্ট ডেটা সেট আপ করতে হবে। এটি সেট আপ হয়ে গেলে এবং শুরুতে জনবহুল হয়ে গেলে, আপনার স্ন্যাপশটগুলি নিন (প্রতিটি ডেটাসেটের মধ্যে একটি যা কিছুটা আলাদা হবে) এবং এরপরে ক্লোনগুলিতে উন্নীত করুন। আর কখনও আসল ডাটাবেস স্পর্শ করবেন না।

হ্যাঁ, এই সমাধানটিতে সমস্যা রয়েছে। আমি বলছি না এটি হয় না, তবে জেডএফএসের বিধিনিষেধের কারণে এটি এখনও সম্ভবত সেরা। কার্যকরভাবে ক্লোন ব্যবহার করে এমন কারও কাছে আমি এই রেফারেন্সটি পেয়েছি: http://thegreyblog.blogspot.com/2009/05/spering-disk-space-with-zfs-clones.html

আমি বিটিআরএস-এর সাথে সত্যিকারের পরিচিত নই, তবে এটি যদি আপনি যে বিকল্পগুলি চান তা সমর্থন করে তবে আপনি কি এই সার্ভারে লিনাক্স এবং বিটিআরএফ ব্যবহার করে কেবল এই ডেটাসেটগুলিকে সমর্থন করার জন্য একটি পৃথক সার্ভার স্থাপনের কথা বিবেচনা করেছেন?


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

হ্যাঁ, এটি কোনও দুর্দান্ত সমাধান নয়, তবে আপনি যা বর্ণনা করেছেন তার মধ্যে এটি সবচেয়ে কম বেদনাদায়ক বলে মনে হচ্ছে এবং আমি অন্য কারও কথা ভাবতে পারিনি।
jlp

আপনার পয়েন্টের সংক্ষিপ্ত বিবরণ github.com/zfsonlinux/zfs/issues/405 দ্বারা চিত্রিত করা হয়েছে মূলত, জেডএফএস ফাইল-ভিত্তিক COW সমর্থন করে না, কেবলমাত্র ডেটাসেট COW, সুতরাং বিটিআরএফএসের সমতুল্য নেই cp --reflink=auto
mtalexan

1

অপশন 5 সেরা এক।

বিকল্প 3 তে পিতামাতার / শিশু ডেটাসেটের বিষয়ে, আপনি একটি ক্লোন প্রচার করতে পারেন এবং এটি আর ক্লোন করা ডেটাসেটের শিশু হতে পারবেন না। এটি এখনও অতিরিক্ত ব্লক ব্যবহার করবে না। সম্পাদনা: উল্লেখ্য যে এটি কেবল পিতামাতার / সন্তানের সম্পর্ককেই বদলে দেয় না, ধ্বংস করে না।

সংক্ষিপ্ত / এনক্রিপ্ট করা জিনিস এবং অনুলিপিটি ধীর করে দেওয়ার বিষয়ে, এটি সম্পূর্ণ মিথ্যা। আপনার প্রসেসরটি আপনার ব্লক ডিভাইসের চেয়েও দ্রুত (যদিও এসএসডি ব্যবহার করে)। কিছু উদাহরণ সংখ্যার জন্য, ধরা যাক যে একটি ব্লক পড়তে 10 সেকেন্ড সময় লাগে তবে এটিটিকে সঙ্কুচিত করতে কেবল এক সেকেন্ড সময় লাগে এবং এটি ডিক্রিপ্ট করতে 2 সেকেন্ড লাগে। ব্লক 1 10 সেকেন্ডের মধ্যে পড়ে এবং সিপিইউতে পাঠানো হয়। ডিস্কটি ব্লক 2 পড়তে শুরু করার সাথে সাথে সিপিইউ সঙ্কোচিত এবং ডিক্রিপটিং শুরু করে সিপিইউ 3 সেকেন্ডের মধ্যে তার কাজ শেষ করবে এবং তারপরে পরবর্তী 7 সেকেন্ডটি ডিস্কের জন্য অপেক্ষা করবে। ব্লকগুলি সংকুচিত কিনা তা নির্বিশেষে ডিস্কটি সেই দুটি ব্লক (20 সেকেন্ড) পড়ার ঠিক সমান পরিমাণ সময় ব্যয় করেছে।

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

আপনার প্রশ্নের একটি ছোটখাটো বিষয়টির অত্যধিক দীর্ঘ ব্যাখ্যার জন্য দুঃখিত, তবে আমি সেই ভুল ধারণাটি পরিষ্কার করতে চেয়েছিলাম।


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

অতিরিক্তভাবে, ডিপআপ সক্ষম করার সাথে একটি পুলে, আমাকে সংক্ষেপণ মন্দার উপর উপসংহারের সাথে একমত হতে হবে। সংক্ষিপ্তকরণ সহ ডেটাসেটে সংক্ষিপ্তকরণ সহ ডেটাসেট থেকে অনুলিপি করা, গতি খুব কমই 5 এমবি / সেকেন্ড অতিক্রম করে। যদি একটি ডেটাসেট বা অন্যটিতে সংক্ষেপণ অক্ষম থাকে, গতি গড়ে 10-15Mb / সেকেন্ডে যায়। উভয় পক্ষের সংক্ষেপণ অক্ষম হওয়ার সাথে সাথে, আমি 20Mb / সেকেন্ড সহজেই তার থেকেও বেশি স্পাইক সহ দেখতে পাচ্ছি (সম্ভবত কারণ ধীর মিডিয়া থেকে টানার পরিবর্তে রামগুলিতে ডিডআপ টেবিলটি আঘাত করছে)।
হত্যাকারী

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