একটি লিনাক্স এলভিএম স্ন্যাপশট প্রতিশ্রুতিবদ্ধ বা পুনর্বার?


16

আমি আমার সেন্টোস 5 সার্ভারে একটি পরীক্ষামূলক আপগ্রেড করতে চলেছি। আপগ্রেড ব্যর্থ হলে, আমি ফাইল সিস্টেমে পরিবর্তনগুলি ব্যাক আপ করতে সক্ষম হতে চাই। এই দৃশ্যপটটি LVM2 পড়ার জন্য লেখার জন্য স্ন্যাপশটগুলির জন্য LVM HOWTO এর বিভাগ 3.8 এর উদাহরণের মতো বলে মনে হয় - তবে উদাহরণটি বাস্তবে কীভাবে করা যায় তার অভাব রয়েছে।

  1. আমি কীভাবে পরিবর্তনগুলি সংঘটিত করব, সেগুলি আবার মূল বিভাজনে আবার একত্রিত করব?

  2. ফাইল সিস্টেমটিকে তার মূল অবস্থায় পুনরুদ্ধার করে আমি কীভাবে পরিবর্তনগুলি ফিরিয়ে আনব? আমার কি ধরে নেওয়া উচিত যে আমাকে পুরোপুরি পুনরায় চালু না হলে বেশ কয়েকটি পরিষেবা পুনরায় চালু করতে হবে?

  3. পার্টিশনে কেবলমাত্র কয়েকটি ডিরেক্টরি স্ন্যাপশট করা সম্ভব, না পার্টিশন-ওয়াইড অপারেশন?

উত্তর:


11

আপনি যদি লিনাক্স ২.6.৩৩+ চালিয়ে চলেছেন এবং এলভিএম ২.০.৫৮+ ব্যবহার করছেন তবে LVM2 / ডিভাইস ম্যাপার স্ন্যাপশটগুলি মার্জ কার্যকারিতা উপলব্ধ রয়েছে:

lvconvert --merge

এই পোস্টটি দেখুন: http://www.jonnor.com/2010/02/lvm-snaphot-merging- লাভযোগ্য /

এটি http://kernelnewbies.org/Linux_2_6_33 (বিভাগ 5, এমডি / ডিএম দেখুন) এবং এলভিএম চেঞ্জলগ ২.০.৫৮-তে উল্লেখ করেছে: ftp://sources.redhat.com/pub/lvm2/WHATS_NEW

তবে কীভাবে এটি সঠিকভাবে ব্যবহার করবেন তা আমি আপনাকে এখনও বলতে পারি না ;-)


dmsetup targetsদেখানো উচিত স্ন্যাপশট-একত্রীকরণ সেই বিষয়টিই কিনা একত্রীকরণ-কমান্ড, স্ন্যাপশট-LV প্রয়োগ রাষ্ট্র যেখানে স্ন্যাপশট নিয়ে যাওয়া হয় ফিরে প্রত্যাবর্তন করবে।
নিলস

কোনও একীকরণের পদক্ষেপের মাধ্যমে পরিবর্তনগুলি সংঘটিত করার বিষয়ে ওপি বিভ্রান্ত বলে মনে হচ্ছে। আকারগুলি বড় হওয়ার সাথে সাথে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ হচ্ছে committed স্ন্যাপশট (পরিবর্তনের) lvconvert - विसর মাধ্যমে তাদের ব্যাক আপ করার জন্য প্রয়োজনীয় তথ্য। ওপি যদি তার পরিবর্তনে খুশি হয় তবে তিনি lvremove এর মাধ্যমে স্ন্যাপশটটি মুছতে পারেন।
ভিনস

21

আমি কেবল উবুন্টুর সাথে স্ন্যাপশট-ভিত্তিক আপগ্রেড চেষ্টা করেছি। এবং হ্যাঁ, আমাকে বেশ কয়েকবার রিবুট করা দরকার। প্রথমে আসল রুট-এলভি-কে অন্য কোনও নামকরণ করুন, যাতে আপনি স্ন্যাপশটটিকে আসল নাম দিতে পারেন (যেহেতু একটি আপগ্রেড প্রচুর পরিবর্তন তৈরি করে এবং পরিবর্তনগুলি আসলটির চেয়ে স্ন্যাপশটে দ্রুততর হয়):

 # lvrename lvm root root-old
 # lvcreate -n root -s lvm/root-old -L 10G

আকারটি যথাযথভাবে চয়ন করা উচিত। তারপরে পুনরায় বুট করুন, যাতে 'নতুন' lvm / উবুন্টু রুট হিসাবে মাউন্ট হয়ে যায় এবং আপনি আপগ্রেড করতে পারেন। এখন আপনি নতুন সংস্করণটি পরীক্ষা করতে পারেন এবং এমনকি পুরানো সিস্টেমে পরিবর্তনও করতে পারেন

 # lvrename lvm root root-new
 # lvrename lvm root-old root
 # reboot

আপনি যদি আপগ্রেডটি ড্রপ করতে চান তবে চালান (পুরানো সিস্টেম থেকে)

# lvremove lvm/root-new

যদি আপনি এই পরিবর্তনগুলি সম্পাদন করতে চান তবে চালান (পুরানো সিস্টেম থেকে)

# lvconvert --merge lvm/root-new

বা, নতুন সিস্টেম থেকে

# lvrename lvm root root-new
# lvconvert --merge lvm/root-new
# lvrename lvm root-old root

একটি রিবুট পরে। ভলিউমগুলি উন্মুক্ত থাকায় সিস্টেমটি এখনই মার্জটি করতে অস্বীকার করবে। সুতরাং বুট করার সময় মার্জটি শুরু হবে এবং আপনি ইতিমধ্যে সিস্টেমের সাথে কাজ করতে পারবেন এমন সময় অবিরত থাকবে।

ওহ, এবং উপায় দ্বারা: সিস্টেমগুলির মধ্যে পরিবর্তন করার সময়, উপযুক্ত কার্নেলটি ব্যবহার করতে ভুলবেন না। / বুট lvm এর অংশ না হওয়ায় পুরানো এবং নতুন কার্নেলগুলি পাশাপাশি পাশাপাশি স্থাপন করা হবে placed


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

এই উত্তরের অংশটি lvconvert - विसর মাধ্যমে পরিবর্তনগুলি করার পরামর্শ দেয় বলে মনে হচ্ছে। আকারে স্ন্যাপশট বাড়ার সাথে সাথে পরিবর্তনগুলিও প্রতিশ্রুতিবদ্ধ হচ্ছে। একটি lvconvert - নিমজ্জন স্ন্যাপশট তথ্য ব্যবহার করে পরিবর্তনগুলি (ব্যাক আউট) রিভার্ট করে।
ভিনস

10

ঠিক আছে, আমি মনে করি HOWTO 3.8 পুনরায় পড়ার দ্বারা আমি এটি খুঁজে পেয়েছি।

  • কেবল পঠনযোগ্য স্ন্যাপশটগুলিতে (এলভিএম 1 এর মতো) স্ন্যাপশট তৈরির পরে ব্লক-স্তরের পার্থক্য রয়েছে - আসলটি এখনও পরিবর্তিত হয়, তবে স্ন্যাপশটটি মূলটির একটি প্রতিনিধিত্ব ধরে রাখে। পড়া থেকে স্ন্যাপশট উপহার ডেটা যেমন সেই সময়ে হাজির।
  • রিড-রাইট স্ন্যাপশটগুলি (LVM2 এ ডিফল্ট) এ লেখা যেতে পারে: এগুলি মূল পার্টিশনের একটি কাঁটাচামচ । লিখন থেকে স্ন্যাপশট মূল পরিবর্তন করবেন না।

একটি স্ন্যাপশট যেভাবে কাজ করে তা হ'ল আসল থেকে পরিবর্তনের একটি ব্লক-স্তর সেট। সুতরাং, যখন মূলটি লিখিত হয়, নিম্নলিখিত জিনিসগুলি ঘটে:

  1. কিছু কিছু আসলটিতে লেখার চেষ্টা করে।
  2. আসলটি পড়বে এবং মূল থেকে ব্লকগুলি স্ন্যাপশটে অনুলিপি করা হয়েছে।
  3. আসল পরিবর্তন হয়ে যায়।
  4. স্ন্যাপশটের মধ্যে "বিপরীত-পার্থক্য" রয়েছে - স্ন্যাপশট তৈরি হওয়ার সময় যে পরিবর্তনগুলি আসল চেহারাটিকে দেখায় তেমন করে।

সুতরাং, স্ন্যাপশটটি ফেলে দেওয়া আসলটিকে কোনওভাবেই প্রভাব ফেলবে না - কারণ আসলটি পরিবর্তন করা হয়েছে, এবং স্ন্যাপশটে এই পরিবর্তনগুলির একটি তালিকা রয়েছে।

আমার নিজের প্রশ্নের উত্তর:

এলভিএম সহ একটি নতুন স্ন্যাপশট তৈরি করুন। আপডেটটি যদি স্ন্যাপশট মাউন্ট পয়েন্টে লিখতে কনফিগার করা যায় তবে একটি আর / ডাব্লু স্ন্যাপশট ব্যবহার করুন। অন্যথায়, আরও বা আর / ডাব্লু হয় না।

তারপর:

  • তাহলে লিখিতভাবে আর / ওয়াট স্ন্যাপশট মাউন্ট পয়েন্ট, কমিট মূল, এবং স্ন্যাপশট লিখে প্রত্যাবর্তন দূরে স্ন্যাপশট ছুঁড়ে।
  • তাহলে লিখিতভাবে মূল মাউন্ট পয়েন্ট, কমিট স্ন্যাপশট, এবং দূরে ছুঁড়ে প্রত্যাবর্তন আসল স্ন্যাপশট থেকে লিখে।

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


এখনও কোনও এলভিএম মার্জ সরঞ্জাম উপলব্ধ নেই। এটি কাজ করে গেছে, তবে আমি বিশ্বাস করি না এটি সম্পূর্ণ হয়েছে।
Ignacio Vazquez-Abram

মার্জ সরঞ্জামটি এখনই উপস্থিত রয়েছে (কমপক্ষে উবুন্টু ট্রাস্টিতে) - lvconvert --merge <snapshot-name>আপনার মূল ডিস্কটিকে সেই স্ন্যাপশটে "পুনরুদ্ধার" করবে এবং সেই স্ন্যাপশটটি মুছে ফেলবে। আপনি অবশ্যই তাড়াতাড়ি তাড়াতাড়ি পুনরুদ্ধার করতে পারেন।
dpb

3

এলভিএম ব্লক স্তরে কাজ করে। এমনকি এটি একটি ফাইল সিস্টেম কী তা 'জানেন না'। সুতরাং আপনি কেবলমাত্র কয়েকটি ডিরেক্টরি স্ন্যাপশট করতে পারবেন না, যদি না সেখানে আলাদা এলভিএম ভলিউম থেকে কোনও ফাইল সিস্টেম মাউন্ট না করা হয়।

আপনি যখন একটি এলভিএম স্ন্যাপশট তৈরি করেন আপনি প্রকৃতপক্ষে 'লেখার অনুলিপি' ভলিউমের নকলের অনুরোধ করেন। যে কোনও ব্লক যা স্ন্যাপশটেড ভলিউমে পরিবর্তিত হবে সেগুলি প্রথমে স্ন্যাপফোটে অশোধিত সংরক্ষণ করা হবে। সুতরাং 'পরিবর্তনগুলি করতে' আপনাকে কিছু করতে হবে না। স্ন্যাপশটের ভলিউম সরিয়ে ফেলুন।

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


2
  1. কিছু একীভূত করার কোনও কারণ নেই । কেবল স্ন্যাপশট সরান, উত্স এলভি থাকা পরিবর্তিত হয়
  2. পরিবর্তনগুলি প্রত্যাবর্তনের জন্য মার্জ প্রয়োজন lvconvert --merge <snapshot name>
  3. এলভিএম ব্লক ডিভাইসগুলির সাথে কাজ করে। কোনও এফএস-সম্পর্কিত পরিবর্তন এফএস টাইপ অনুসারে বিশেষ ইউটিলিটি (xfs_growfs, e2fsck, ...) দ্বারা করা উচিত

স্ন্যাপশট 'ফ্রিজ' আসল এলভি এর রাজ্য। স্ন্যাপশট সরান মানে সেই রাষ্ট্রটি ভুলে যান। স্ন্যাপশটটি মার্জ করার অর্থ সেই অবস্থায় ফিরে আসা

তবে এলভিএমের অভ্যন্তরে এটি স্ন্যাপশটে পুনর্লিখিত ডেটা সংরক্ষণ করে: নিশ্চিত হয়ে নিন যে স্ন্যাপশটের আকার এলভি এবং স্ন্যাপশটের পরিবর্তিত প্রত্যাশিত পরিমাণের সাথে মিলছে


আসলে, স্ন্যাপশট কিছুই জমে না। এটি একটি অতিরিক্ত জায়গায় পরিবর্তনগুলি রেকর্ড করে যাতে পছন্দসই হলে তারা পরে ফিরতে পারে।
ভিন্স

0

নথিটি বিভ্রান্তিকর। আমার কাছে মনে হয় যে lvcreate - নিমজ্জন মানে সমস্ত পরিবর্তন ফিরিয়ে দেওয়া, এবং lvremove এর অর্থ পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ। পার্থক্যটি কীভাবে আপনি এটি ব্যবহার করেন।

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

আপনি যদি স্ন্যাপশট (LVM2 সহ একটি নতুন বিকল্প) লিখেন, যা এটি মনে হয় ডিফল্ট আচরণ নয় এবং সম্ভবত অন্য ভলিউমের পরিবর্তে অ্যাপ্লিকেশনগুলিকে স্ন্যাপশটে লেখার জন্য কনফিগারেশন পরিবর্তন করা প্রয়োজন, তবে বিপরীতটি সত্য হবে।

স্ন্যাপশটগুলির সাথে ডিল করার সময় দয়া করে সাবধান থাকুন, কারণ কিছু লোক আপনাকে এগুলি একভাবে ব্যবহার করার অর্থ বলে ধরে নিবে এবং যদি আপনি বিপরীত অনুমানের অধীনে কাজ করেন তবে আপনাকে এমন ব্যবস্থা প্রদান করবে যা আপনার সিস্টেমকে ধ্বংস করতে পারে!


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