গিট কি ডেটা অবক্ষয় রোধ করে?


40

আমি পড়েছি যে জেডএফএস এবং বিটিআরএফস ডেটা অবক্ষয় রোধ করতে চেকসাম ব্যবহার করে এবং আমি পড়েছি যে প্রতিটি প্রতিশ্রুতি দিয়ে প্রয়োজনীয় সমস্ত কিছু হ্যাশ করার মাধ্যমে গিটের অখণ্ডতা রয়েছে।

আমি স্ট্রোকের জন্য বিটিআরএফএস RAID 1 সহ একটি লিনাক্স এনএএস-তে একটি গিট সার্ভার ব্যবহার করতে যাচ্ছিলাম, তবে গিটের যদি সততা থাকে তবে আমি অনুমান করি যে এটি প্রয়োজনীয় হবে না (অন্তত ডেটা অবক্ষয় প্রতিরোধ করা যদি আমি চাই তবে তা নয়)।

প্রশ্ন: সুতরাং গিটের অখণ্ডতা যদিও প্রতিটি কমিটের সাথে প্রয়োজনীয়ভাবে সমস্ত কিছু হ'ল বিট-রটের বিরুদ্ধে বাধা বা সহায়তা করে?



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

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

উত্তর:


61

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


4
কেন fsckসবসময় আমার কাছে খারাপ শব্দের মতো লাগে ... আমি মনে করি যদি ইতিবাচক রূপ নেয় এবং আপনার কাছে এমন ব্যাকআপ নেই যা যদিও উপযুক্ত হতে পারে;)
CAD97

7
@ CAD97 প্রোগ্রামাররা এই তুলনামূলকভাবে খোঁড়া পাঞ্জার জন্য পরিচিত। এটি আসলে খুব সাধারণ ... আমার মাথার উপরের অংশে আপনার কাছে শ (শেল), বেশ (বোর্ন শেল), এবং তারপরে বাশ (বোর্ন আবার শেল) এর মতো জিনিস রয়েছে ... সর্বশেষটি খোঁড়া পাং ...
নেলসন

1
@ নেলসন মাছটি ভুলে যাবেন না
ব্যবহারকারী 253751

@ CAD97 হেল, গিটের নামটি তখনকার মতো বিবেচনা করা যেতে পারে যখন এটি আপনার পক্ষে সঠিকভাবে কাজ করে না।
এসজিআর

1
@ CAD97 - এবং এর আগে আপনি এটিকে fvcctk এর মতো পতাকা দিয়ে চালানোর আগে - কারণ - আপনি যদি এটির মতো চালাচ্ছেন তবে আপনার ডেটা ইতিমধ্যে "fvcctk" এডি হতে পারে। ;)
জো

16

"প্রতিরোধ" দ্বারা আপনি কী বোঝাতে চান তার উপর নির্ভর করে।

(প্রথমত, বিট- রটটি একাধিক সংজ্ঞা সহ একটি শব্দ maintenance এই প্রশ্নটি রক্ষণাবেক্ষণের অভাবে কোড অলঙ্ঘনীয় হয়ে উঠার বিষয়ে নয় ))

যদি আপনি "প্রতিরোধ" বলতে বোঝায় যে এটি সম্ভবত বিটের ক্ষয় দ্বারা দুর্নীতি সনাক্ত করবে, হ্যাঁ, এটি কার্যকর হবে। তবে এটি সেই দুর্নীতি দূর করতে সহায়তা করবে না : হ্যাশগুলি কেবল ত্রুটি সনাক্তকরণ সরবরাহ করে, সংশোধন করে না

এটি "অখণ্ডতা" বলতে যা বোঝায় তা সাধারণত: ডেটা অননুমোদিত / অপ্রত্যাশিত ম্যানিপুলেশন সনাক্ত করার সম্ভাবনা, এটি প্রতিরোধ বা সংশোধন করার সম্ভাবনা নয়।

আপনি সাধারণত ব্যাকআপের সাথে একটি রেড 1 চাইবেন (সম্ভবত জেডএফএস স্ন্যাপশট বা এর অনুরূপ প্রয়োগ করা হয়েছে, আমি RAID1 + স্ন্যাপশটসের জেডএফএস শব্দার্থবিজ্ঞানের সাথে পরিচিত নই), বেশ কয়েকটি কারণে:

  • যদি কোনও ডিস্ক মারাত্মকভাবে ব্যর্থ হয় তবে আপনার ডেটা পুনরুদ্ধার করতে আপনার একটি RAID1 (বা সাম্প্রতিক ব্যাকআপ) প্রয়োজন; সম্পূর্ণ ডিস্ক ব্যর্থ হওয়ার জন্য কোনও ত্রুটি সংশোধন সংশোধন করতে পারে না, যদি না এতে ডেটা (ক্যান্সার) এর সম্পূর্ণ কপি থাকে RA সংক্ষিপ্ত ডাউনটাইমের জন্য আপনার অবশ্যই মূলত RAID1 থাকা উচিত।

  • যদি আপনি দুর্ঘটনাক্রমে অংশ বা পুরো সংগ্রহস্থলটি মুছে ফেলেন তবে আপনাকে একটি ব্যাকআপের প্রয়োজন (RAID1 আপনাকে সুরক্ষা দেয় না কারণ এটি সমস্ত ডিভাইসে পরিবর্তনের সাথে সাথে প্রতিফলিত করে)

শুধুমাত্র দুটি ডিস্কের মধ্যে ব্লক-লেভেল RAID1 (যেমন এলভিএম বা অনুরূপ মাধ্যমে) আপনাকে তথ্যের নিঃশব্দ ক্ষয় থেকে রক্ষা করবে না যদিও: ডিআইডি নিয়ন্ত্রক জানতে পারবেন না যে দুটি ডিস্কের মধ্যে সঠিক ডেটা রয়েছে। ফাইলগুলির জন্য একটি চেকসামের মতো আপনার জন্য অতিরিক্ত তথ্য দরকার। এই যেখানে ZSF এবং Btrfs চেকসাম আসা: তারা ব্যবহার করা যেতে পারে (যা বলতে চাই যে তারা নয় করছে এই ক্ষেত্রে ব্যবহার করা হয়, আমি জানি না কিভাবে ZFS বা Btrfs সেখানে জিনিসগুলিকে হ্যান্ডেল) পার্থক্য যা দুই ডিস্ক ঝুলিতে সঠিক তথ্য।


5
আপনি না চাইলে আয়না দিয়ে যাওয়ার দরকার নেই। জেডএফএস 1, 2 বা 3 ড্রাইভের মূল্য সমতা সহ স্ট্রিপিং সমর্থন করে; এবং একটি নির্বিচার সংখ্যক ড্রাইভের সাথে মিররিং (একক ড্রাইভ = কোনও অতিরিক্ত ছাড় নেই) including আমার প্রধান বাল্ক স্টোরেজটি একটি RAIDZ2 কনফিগারেশনে ছয়টি ড্রাইভ সহ জেডএফএস, যা মূলত ফাইল সিস্টেমের স্তর স্তর RAID6 (দুটি ড্রাইভের মূল্যহীনতার সাথে স্ট্রিপিং)। এটি সেই সমস্ত ড্রাইভের যে কোনও একটির সাথে আরও একটিতে সংশোধনযোগ্য ত্রুটি সনাক্ত এবং পুনরুদ্ধার করতে পারে; বা রিসিলভারের সময় দুটি ড্রাইভের ক্ষতি এবং অন্য কোথাও কোনও ত্রুটি নেই; ডেটা কোন ক্ষতি ছাড়াই। ব্যাকআপগুলি এখনও প্রস্তাবিত।
একটি সিভিএন

1

বিট পচা প্রতিরোধ

না, এটি কোনওভাবেই হয় না। গিট দ্বারা কোনও RAID -র মতো অপ্রয়োজনীয় চালু করা হয়নি। যদি আপনার .gitডিরেক্টরিতে থাকা ফাইলগুলি কিছুটা পচে যায় তবে আপনি যথারীতি জিনিস হারাবেন।

বিট পচা বিরুদ্ধে সাহায্য?

YYYY ... কোন। এটি বিট-পচা ঘটানোর বিরুদ্ধে সহায়তা করে না, তবে এটি বিট-রট সনাক্ত করতে সহায়তা করবে। তবে সাধারণ ব্যবহারের সময় কোনও সময়েই এটি তার নিজস্ব অ্যাকাউন্টের মাধ্যমে তা করে না (ভালভাবে স্পষ্টতই এটি করা হয় যখন আপনি কিছু বিষয়াদি পরীক্ষা করে দেখেন তবে আপনার ইতিহাসের জন্য নয়)। সামগ্রী থেকে হ্যাশগুলি পুনরায় গণনা করতে এবং তাদেরকে আসল হ্যাশগুলির সাথে তুলনা করতে আপনাকে ক্রোন জব তৈরি করতে হবে। এটি করা বেশ তুচ্ছ, কারণ gitহ্যাশগুলি আক্ষরিক অর্থে বিষয়বস্তুর হ্যাশগুলি হ'ল এগুলি পুনরায় গণনা করা তুচ্ছ এবং এটি আপনার পক্ষেও git fsckহয়। কিন্তু যখন এটি বিট-পচা সনাক্ত করে, বিশেষত এর বিরুদ্ধে কিছুই করতে পারে এমন কিছুই নেই। বিশেষত, বৃহত্তর অংশগুলি স্বয়ংক্রিয়ভাবে সংকুচিত হওয়ার কারণে, যদি কোনও বৃহত্তর অবজেক্টে কিছুটা উল্টানো হয় তবে আপনার সম্পূর্ণ ক্ষতি হতে পারে।

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