ঘোরার সাথে ব্যাকআপ হিসাবে ফাইল করতে জেডএফএস স্ন্যাপশট


14

আমার একটি স্থানীয় ফ্রিএনএএস সিস্টেম আছে এবং ব্যাকআপের জন্য জেডএফএস স্ন্যাপশট ব্যবহার করতে চাই।
ফ্রিএনএএস-এ অন্তর্নির্মিত প্রতিলিপি টাস্ক রয়েছে যা ব্যবহার করে

zfs send snapshot_name

একটি রিমোট সিস্টেমে স্ন্যাপশট প্রেরণ। তবে এর অন্য প্রান্তে জেডএফএস সহ একটি সিস্টেম দরকার।

আমি স্ন্যাপশটটি এএ ফাইলে প্রেরণ করতে চাই এবং এই সংকীর্ণ এবং এনক্রিপ্ট করা ফাইলটি দূরবর্তী মেশিনে প্রেরণ করতে চাই।

এটি দিয়েই সম্ভব

zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl

প্রতিদিন আমি স্টোরেজ পুলের একটি স্ন্যাপশট তৈরি করি এবং প্রতিটি স্ন্যাপশট 30 দিনের জন্য রাখি।
নেওয়া প্রতিটি স্ন্যাপশটের সাথে আমি এই স্ন্যাপশটটি একটি ফাইলে পাইপ করব।
- স্ন্যাপশট_ফায়াল 1 এর প্রতিটি ফাইল রয়েছে (আসুন
2 জিবি বলি) - স্ন্যাপশট_ফিল 2 তে কেবল স্ন্যাপশট_ফায়াল 1 এর পরিবর্তন রয়েছে (আসুন 5 এমবি বলি)
- স্ন্যাপশট_ফাইল 3 স্ন্যাপশট_ফিল 2 তে পরিবর্তনগুলি ধারণ করে; ইত্যাদি।

দিনে 31 স্ন্যাপশট_ফায়াল 1 মুছে ফেলা হচ্ছে (কারণ আমি কেবল গত 30 দিনের পরিবর্তন চাই)

সুতরাং স্ন্যাপশট_ফায়াল 2 টি প্রতিটি ফাইল ধরে রাখতে হবে (2 জিবি স্ন্যাপশট_ফায়াল 1 + 5 এমবি পরিবর্তন)

তবে এই পদ্ধতির সাথে প্রতিদিন (31 তারিখ থেকে) একটি নতুন 2 জিবি ফাইল তৈরি করতে হবে এবং একটি রিমোট সিস্টেমে প্রেরণ করতে হবে। এটি অনেক বেশি ওভারহেড।

এক্স দিনের ইতিহাস সহ ব্যাকআপ কৌশল হিসাবে কোনও ফাইলে পাইপযুক্ত স্ন্যাপশট ব্যবহার করার জন্য সর্বোত্তম পদ্ধতির কী হবে?

পিএস: আমি জানি যে সেখানে প্রচুর পরিমাণে ব্যাকআপ সফ্টওয়্যার রয়েছে (উদাহরণস্বরূপ rdiff-ব্যাকআপ), যা আমি ব্যবহার করতে পারি। তবে কীভাবে এটি করা যায় তা আমি আগ্রহী।


আপনি zfs recvঅন্য প্রান্তে কেন ব্যবহার করবেন না ( zfs set compression=gzip-9উদাহরণস্বরূপ একটি পুলে )। স্ন্যাপশট ফাইলগুলি সঞ্চয় করা আমার কাছে খুব অকার্যকর মনে হচ্ছে।
স্টাফেন চেজেলাস

1
@ স্টেফেনচেজেলা কারণ অন্য প্রান্তে আমার কাছে জেডএফএস ফাইল সিস্টেম নেই। আমার রিমোট সিস্টেমটি এক্সট 4 সহ একটি কোমল বাক্স (আমি জানি আমি জেডফসনলিনাক্স ইনস্টল করতে পারতাম, তবে আমি না বরং)
মার্টিন গ্রোহম্যান

উত্তর:


12

আপনি যদি ফাইল সিস্টেমে স্ন্যাপশটগুলি সংরক্ষণ করেন, যেমন ফাইল সিস্টেমের বিপরীতে (উদাহরণস্বরূপ zfs receive), আমি ভয় করি, এটি সম্ভব নয়।

প্রাপ্তি পক্ষের জেডএফএস

আপনি যদি প্রেরণ এবং গ্রহণের দিকে জেডএফএস ব্যবহার করেন তবে আপনি সম্পূর্ণ স্ন্যাপশট স্থানান্তর করতে এবং এড়াতে পারবেন কেবলমাত্র আগেরটির তুলনায় স্ন্যাপশটের পার্থক্যগুলি স্থানান্তর করতে:

ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' | \
  zfs receive

জেডএফএস স্ন্যাপশট সম্পর্কে জানে এবং কেবল একবারেই মিউচুয়াল ব্লক সঞ্চয় করে। ফাইল সিস্টেমটি স্ন্যাপশটগুলি বোঝার ফলে আপনি কোনও সমস্যা ছাড়াই পুরানোগুলি মুছতে সক্ষম করে।

প্রাপ্তির পক্ষের অন্যান্য ফাইল সিস্টেম

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

ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' \
  > incremental-2014-02-04:05

একটি ইনক্রিমেন্টাল স্ন্যাপশট পুনরুদ্ধার করতে আপনার পূর্ববর্তী স্ন্যাপশটগুলিও দরকার। এর অর্থ আপনি পুরানো ইনক্রিমেন্টালগুলি মুছতে পারবেন না।

সম্ভাব্য সমাধান

আপনি আমার শেষ উদাহরণে দেখানো হিসাবে ইনক্রিমেন্টাল করতে এবং প্রতি মাসে একটি নতুন অ-ইনক্রিমেন্টাল করতে পারেন। নতুন ইনক্রিমেন্টালগুলি এই অ-ইনক্রিমেন্টাল উপর নির্ভর করে এবং আপনি পুরানো স্ন্যাপশটগুলি মুছতে মুক্ত free

অথবা আপনি অন্যান্য ব্যাকআপ সমাধানগুলি সন্ধান করতে পারেন। নেই rsnapshot , যা ব্যবহার rsyncও কঠোর লিঙ্ক। এটি ঘূর্ণায়মানটিতে খুব ভাল কাজ করে এবং এটি খুব ব্যান্ডউইথ দক্ষ, কারণ এটির জন্য কেবল একবার সম্পূর্ণ ব্যাকআপ প্রয়োজন।

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

তবে সর্বোত্তম সমাধানটি হ'ল প্রাপ্তি পক্ষের জেডএফএস ব্যবহার করা। এটি অন্যান্য সমাধানের তুলনায় ব্যান্ডউইথ দক্ষ, স্টোরেজ দক্ষ এবং অনেক দ্রুত হবে। একমাত্র সত্যিকারের ত্রুটি যা আমি ভাবতে পারি তা হ'ল সেই বাক্সটিতে আপনার সর্বনিম্ন 8 জিআইবি ইসিসি মেমরি থাকা উচিত (আপনি যদি কোনও পরিষেবা চালনা না করেন এবং কেবল এটি ব্যবহার না করেন তবে আপনি 4 জিআইবি দিয়ে ভাল হতে পারেন zfs receive)।


হ্যাঁ আমি জানি। তবে আমি কী মুছে ফেলব (কারণ আমি কেবল 30 দিনের ইতিহাস রাখতে চাই) ফাইল ডেটাসেট @ 2014-02-04? তারপরে আমার কেবল পরিবর্তনগুলি ফেব্রুয়ারী, 4 র্থ এর পরে হয়েছিল, তবে প্রতিটি ফাইল নয়।
মার্টিন গ্রোহম্যান

2
@ মার্টিনগ্রাহম্যান আপনি এখন যা বোঝাতে চাইছেন তা আমি দেখতে পাচ্ছি। আচ্ছা এটি জেডএফএসের সৌন্দর্য, আপনি কোনও সমস্যা ছাড়াই জেডএফএসের পুরানো স্ন্যাপশটগুলি মুছতে পারেন। অন্যান্য ফাইল সিস্টেমে আপনাকে পুরানো রাখতে হবে। সম্ভবত আপনি ভাল কিছু rsnapshotতখন ভাল কিছু সঙ্গে । অথবা আপনি এক মাস পরে একটি নতুন অ-ইনক্রিমেন্টাল শুরু করতে পারেন এবং তারপরে আগের ইনক্রিমেন্টগুলি মুছতে পারেন।
মার্কো

আপনার সাহায্যের জন্য ধন্যবাদ; আমি সন্ধান পেয়েছি সদৃশতা এটি সম্ভবত এনক্রিপশনের ক্ষমতা নিয়ে যাওয়ার উপায়।
মার্টিন গ্রোহম্যান

2
@ মার্টিনগ্রাহম্যান ডুপ্লিক্টি একটি দুর্দান্ত প্রোগ্রাম, তবে এটি একই সমস্যায় ভুগছে । আপনি যদি কেবল ইনক্রিমেন্টস করেন তবে আপনার স্থানটি বাড়তে থাকে। আপনি ব্যান্ডউইথ নষ্ট না করে এবং একটি নতুন পূর্ণ ব্যাকআপ না করে স্থান পুনরায় দাবি করতে পারবেন না। হয় উভয় পক্ষের জেডএফএসে যান বা ব্রেওগুলি দেখুন , এটি ইনক্রিমেন্টালগুলি থেকে একটি নতুন পূর্ণ ব্যাকআপ গণনা করতে পারে। এটি আপনাকে পুনরায় স্থানান্তর না করে পুরানো ইনক্রিমেন্টালগুলি মুছতে সক্ষম করে।
মার্কো

যদি আপনার উত্স থেকে ব্যান্ডউইদথ সমস্যা হয় তবে একটি সম্ভাব্য সমাধান (যা আমি এখন আমার বাড়ির জেডএফএস এনএএস এর জন্য বাস্তবায়ন করছি) সর্বদা কেবল আপনার দূরবর্তী স্টোরেজে ইনক্রিমেন্টগুলি প্রেরণ করা হয়, তবে মাসে একবার দূরবর্তী ফ্রিবিএসডি ভিপিএস স্পিন আপ করে (যেমন, ডিজিটাল সমুদ্র) যা এরপরে শেষ সম্পূর্ণ স্ন্যাপশটটি খুলতে পারে, zfs এর মধ্যে কিছু # বর্ধনের পুনরুদ্ধার করে, তারপরে ফলাফলটিকে একটি নতুন স্ন্যাপশট হিসাবে সংরক্ষণ করে। নতুন বেস ব্যাকআপটি তৈরি করতে কেবল ভিপিএসের প্রায় যথেষ্ট দীর্ঘ প্রয়োজন। ডিজিটাল সমুদ্রের এমন একটি এপিআই রয়েছে যা তাদের ভিপিএসকে সহজেই তৈরি / ধ্বংস করতে দেয়। এবং আপনার স্থানীয় সিস্টেমে কেবল ইনক্রিমেন্টাল ব্যাকআপ প্রেরণ করা দরকার।
আটকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.