এলভিএম স্ন্যাপশট কী এভাবে কাজ করে?


19

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

আমি যা পড়েছি তা থেকে আমি মনে করি এটি এরকম কিছু কাজ করে:

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

আমি যেখানে ভুল সেখানে কেউ আমাকে সংশোধন করতে পারে? সর্বোপরি, আমি অনুমান করছি, আমি গুগলে কিছুই খুঁজে পাচ্ছি না।


vgdiplay

obu1: / বাড়ি / জেল / বাড়ি / কিউপিএস / ব্যাকআপ / ডি # ভিজিডিস্কিপ্লে
  --- ভলিউম গ্রুপ ---
  ভিজি নাম ফাইলসার্ভার এলভিএম
  সিস্টেম আইডি
  Lvm2 ফর্ম্যাট করুন
  মেটাডাটা অঞ্চলসমূহ ঘ
  মেটাডেটা সিকোয়েন্স নং 3
  ভিজি এক্সেস পড়ুন / লিখুন
  ভিজি স্থিতি পুনরায় আকার পরিবর্তনযোগ্য
  ম্যাক্স এলভি 0
  কার এলভি 2
  এলভি 2 খুলুন
  সর্বোচ্চ পিভি 0
  কার পিভি ঘ
  আইন পিভি 1
  ভিজি সাইজ 931.51 জিবি
  পিই সাইজ 4.00 এমবি
  মোট পিই 238467
  বরাদ্দ পিই / আকার 238336 / 931.00 জিবি
  ফ্রি পিই / আকার 131 / 524.00 এমবি
  ভিজি ইউইউডিউ কিউএসগা 1-স্কিউইও-ডি 2 বিএম-ওডিডি-ডি 4ইজি-ওজিসিওয়াই -4 জেইজিইউ

উত্তর:


30

WV LVM-HOWTO এর স্ন্যাপশট বিভাগে একবার দেখে নেই ?

এলভিএম স্ন্যাপশটগুলি হ'ল আপনার প্রাথমিক "লিখিত অনুলিপি" স্ন্যাপশট সমাধান। স্ন্যাপশটটি আসলে LVM কে আপনাকে ফাইল সিস্টেমের বর্তমান অবস্থায় একটি "পয়েন্টার" দিতে এবং একটি নির্দিষ্ট জায়গায় স্ন্যাপশটের পরে পরিবর্তনগুলি লিখতে বলা ছাড়া আর কিছুই নয়।

এলভিএম স্ন্যাপশটগুলি ভলিউম গ্রুপের ভিতরে "লাইভ" স্ন্যাপশটের অধীন ভলিউম সাবজেক্টের হোস্টিং - অন্য কোনও ভলিউম নয়। আপনার বক্তব্য "... প্রচুর এবং অযৌক্তিকভাবে প্রচুর অবিচ্ছিন্নভাবে পার্টিশন নয়" এটি আপনার ভাবনার মতো করে তোলে যে ভলিউম গ্রুপের বাইরে স্ন্যাপশটগুলি স্ন্যাপশটের সাপেক্ষে "লাইভ" করে এবং এটি সঠিক নয়। আপনার ভলিউম গ্রুপটি একটি হার্ড ডিস্ক বিভাজনে বাস করে এবং ভলিউমটি স্ন্যাপশট এবং আপনি যে ভলিউম গ্রুপে লাইভ নিয়েছেন কোনও শ্যা্যাপশট সাপেক্ষে।

LVM স্ন্যাপশটগুলি যে সাধারণ উপায়ে ব্যবহার করা হয় তা দীর্ঘমেয়াদী স্টোরেজ নয়, বরং ফাইল সিস্টেমের একটি ধারাবাহিক "চিত্র" পেতে যাতে ব্যাকআপ নেওয়া যেতে পারে। ব্যাকআপ হয়ে গেলে, স্ন্যাপশটটি ফেলে দেওয়া হয়।

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

সম্পাদনা:

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

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


1
সুতরাং এটি সত্যই ভলিউম শেডো কপি (ভিএসএস) এর পরে মডেলিং করা হয়নি, কারণ এটি ভিএসএস কীভাবে কাজ করে না?
ম্যালফিস্ট

এটি অনেক বেশি অর্থবোধ করে।
ম্যালফিস্ট

1
আমি মনে করি আপনি কিছুটা ভুলভ্রান্তি করছেন LVM স্ন্যাপশট। LVM স্ন্যাপশটগুলি "ভার্চুয়াল" ডিভাইসগুলি তৈরি করে যা স্ট্যান্ডেলোন ভলিউমের মতো মাউন্ট করা থাকে তবে সেগুলি আসলে "পার্টিশন" নয়। এলভিএম স্ন্যাপশটগুলি ভিএসএস স্ন্যাপশটের মতো ভলিউমটিকে স্ন্যাপশটের সাপেক্ষে "লাইভ ইন" করে।
ইভান অ্যান্ডারসন

1
একটি স্ন্যাপশট সক্রিয় থাকাকালীন আপডেট হওয়া ডেটা কোথায় যায় আপনি দয়া করে তা স্পষ্ট করে বলতে পারেন? মূল এলভিতে এবং স্ন্যাপশট পুরানো ব্লকের একটি অনুলিপি সঞ্চয় করে? বা স্ন্যাপশট এলভিতে যখন মূল এলভিটি অপরিবর্তিত থাকে?
বেনোট

1
উত্তরের প্রথম লাইনে লিঙ্কটি বিনোট করুন এটি কভার করে। LVM1- এ কেবলমাত্র পঠনযোগ্য স্ন্যাপশটের আচরণে নোটটি পড়ুন এবং আমি মনে করি আপনার উত্তরটি থাকবে। (এটি আপনি বর্ণনা করেছেন এমন প্রথম পন্থা, দ্বিতীয়টি নয়))
পিটার হানসেন

28

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

যখন আপনার কোনও স্ন্যাপশটবিহীন একটি এলভিএম ভলিউম থাকে, তখন ভলিউমটি আপনার প্রত্যাশার মতোই হয় writes একটি ব্লক পরিবর্তন করা হয়েছে, এবং এটিই।

আপনি স্ন্যাপশট তৈরি করার সাথে সাথে, LVM ব্লকের একটি পুল তৈরি করে creates এই পুলটিতে ভলিউমের LVM মেটাডেটার একটি সম্পূর্ণ অনুলিপিও রয়েছে। যখন মূল ভলিউমে লেখাগুলি ঘটে যেমন কোনও ইনোড আপডেট করা হয়, তখন ওভাররাইট করা ব্লকটি এই নতুন পুলটিতে অনুলিপি করা হয় এবং নতুন ব্লকটি মূল ভলিউমে লেখা হয়। এটি 'অনুলিপি-অনুলিপি'। এ কারণে, যখন একটি স্ন্যাপশট নেওয়ার সময় এবং প্রধান ভলিউমের বর্তমান অবস্থার মধ্যে যত বেশি ডেটা পরিবর্তিত হয়, তত বেশি স্থান সেই স্ন্যাপশট পুল দ্বারা গ্রাস করবে।

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

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

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


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


এই বিস্তারিত ব্যাখ্যার জন্য ধন্যবাদ। দুঃখিত যে আমি "এই ভলিউমের ফাইল সিস্টেমের বিষয়ে যতটা উদ্বিগ্ন, কোনও স্ন্যাপশট নেই" " আপনি এর অর্থ কি সম্পর্কে আরও ব্যাখ্যা করতে পারেন? যে কোনও প্রতিক্রিয়ার জন্য খুব কৃতজ্ঞ ~
Carr

2
@ কায়ার এর অর্থ হ'ল স্ন্যাপশটগুলি পুরোপুরি ফাইল সিস্টেমের বাইরে পরিচালিত হয়। বিটিআরএফএস এবং এক্সএফএসের মতো স্ন্যাপশটের ক্ষমতা রয়েছে এমন অন্যান্য ফাইল সিস্টেমগুলিতে স্ন্যাপশটের ধারণা রয়েছে এবং সেই সিস্টেমগুলির সাথে আপনার এলভিএম স্ন্যাপশট ব্যবহার করা উচিত নয়।
sysadmin1138

@ sysadmin1138 এফএসের ধারাবাহিকতা পরীক্ষা / মেরামত করার উদ্দেশ্যে, আপনি উল্লেখ করেছেন এক্সএফএসের সাথে বিল্টিন স্নাপশট সম্পর্কে আমি আগ্রহী। আমার কাছে একটি বহু-টিবি এক্সএফএস এফএস রয়েছে যা নোংরা পথে নেমে গেছে এবং আমি এটি অফলাইন না রেখেই এটি পরীক্ষা / ঠিক করতে চাই (শত শত ব্যবহারকারী, কয়েক ঘন্টার জন্য অফলাইনে যেতে পারবেন না)। আমি একটি এক্সএফএস স্ন্যাপশট তৈরি করার কথা ভাবছি এবং তারপরে লাইভ ফাইল সিস্টেমটি অনলাইনে রাখার সময় ত্রুটিগুলি খুঁজে পেতে / ঠিক করার জন্য এটিতে fsck চালাচ্ছি এবং তারপরে যদি ঠিক করা হয় তবে লাইভ ফাইল সিস্টেমের সাথে অদলবদল করে। কোনও এক্সএফএস স্ন্যাপশট এলভিএম স্ন্যাপশটের চেয়ে এই উদ্দেশ্যে আরও ভাল হতে পারে?
জান লালিনস্কে

2

আপনি লিনাক্স বা এইচপি-ইউএক্স ব্যবহার করছেন কিনা তা নির্দিষ্ট করে না। এইচপি-ইউএক্স-এ আপনি একটি লজিকাল ভলিউম তৈরি করেন এবং এটিকে অন্য যৌক্তিক ভলিউমের স্ন্যাপশট হিসাবে মাউন্ট করেন। লিনাক্সে, আপনি স্ন্যাপশটের ভলিউম হিসাবে একটি লজিকাল ভলিউম তৈরি করেন।

এইচপি-ইউএক্স-এ একটি স্ন্যাপশট অপসারণ ভলিউমের পরিমাণ কমিয়ে দিয়ে করা হয়; লিনাক্সে এটি লজিকাল ভলিউম অপসারণ করতে lvremove ব্যবহার করে সম্পন্ন করা হয়।

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

একটি স্ন্যাপশটের ভলিউমে ডিস্ক অ্যাক্সেসের গতি সাধারণ ভলিউমের তুলনায় ধীর হয়; আপনি এটি অ্যাকাউন্টে নিতে হবে।


1

LVM স্ন্যাপশটগুলি অদক্ষতর, তত বেশি স্ন্যাপশট সিস্টেম ধীরে ধীরে চলে যাবে।

আমি কেবল এক্সএফএসকেই সমর্থন করি যা আমরা ব্যবহার করি এবং xfs_freeze ফাইল সিস্টেমে নতুন অ্যাক্সেস বন্ধ করতে ব্যবহার করা যায় এবং ডিস্কে একটি স্থিতিশীল চিত্র তৈরি করে।

লেখার অনুলিপি ব্যবহার করা হয় যাতে ডিস্কের স্থানটি দক্ষতার সাথে ব্যবহার করা হয়।

আপনি একটি লজিকাল ভলিউমে একটি ফাইল সিস্টেম তৈরি করেছেন যা স্ন্যাপশটের জন্য এতে অতিরিক্ত ফাঁকা স্থান রয়েছে।

এটি FAQ এর একটি উদাহরণ

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