একই ফাইলের দুটি জেডএফএস স্ন্যাপশটের মধ্যে পরিবর্তিত বাইটের সংখ্যা সনাক্তকরণ


10

ধরা যাক আমার কাছে একটি জেডএফএস ফাইল সিস্টেম রয়েছে যাতে ভার্চুয়াল মেশিন ডিস্ক চিত্র রয়েছে

/tank/examplevm/examplevm-flat.vmdk

আসুন ধরে নেওয়া যাক আমি জেডএফএস ফাইল সিস্টেমের প্রতিদিনের স্ন্যাপশটগুলি গ্রহণ করি, যেমন

$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717

স্পষ্টতই, প্রতিটি দৈনিক স্ন্যাপশটের মধ্যে সময়কালে, আমার মডেলটিভিএম-ফ্ল্যাট.ভিএমডিকে পরিবর্তন করা হয় (বেশিরভাগ ক্ষেত্রে, চিত্রের আকার স্থির থাকে, তবে ভার্চুয়াল ডিস্কের ব্লকগুলি সংশোধন করা হয়)।

তদনুসারে, জেডএফএস ডিফ কমান্ড ফাইলটিকে দুটি স্ন্যাপশটের মধ্যে সংশোধিত হিসাবে রিপোর্ট করবে:

$ zfs diff tank/@20120716 tank@20120717
M       /tank/examplevm/examplevm-flat.vmdk

ফাইলটি সংশোধন করা হয়েছে তা জেনে রাখা ভাল, আমি ভিএমডিকে সংশোধিত বাইট / ব্লকের সংখ্যার প্রতি আরও আগ্রহী হব।

অতএব, আমি নিম্নলিখিত প্রশ্নগুলির কোনও ইঙ্গিতগুলিতে আগ্রহী:

  • দুটি স্ন্যাপশটের মধ্যে একটি নির্দিষ্ট ফাইলে পরিবর্তিত ব্লকের সংখ্যার প্রতিবেদন করার জন্য কি জেডএফএসের কোনও বৈশিষ্ট্য রয়েছে?
  • এমন কি অন্য কোনও সরঞ্জাম রয়েছে যা দুটি ফাইল সিস্টেমের চিত্রগুলিকে বাইনারি দেয় এবং পরিবর্তিত ব্লক বা বাইটের সংখ্যা জানায়? আমি বুঝতে পারি যে এটি cmp –l file1 file2 | wc –lকরে তবে এটি ভয়াবহভাবে, মারাত্মকভাবে ধীর।

উত্তর:


7

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

এখানে একটি ব্লগ দেখানো হচ্ছে যে কীভাবে কোনও ফাইলের ব্লকগুলি আহরণ করতে zdb ব্যবহার করতে হয়।

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