জেডএফএস পুলের ইনক্রিমেন্টাল / অবিচ্ছিন্ন ব্যাকআপ কীভাবে করবেন?


25

জেডএফএস পুলগুলি কীভাবে অবিচ্ছিন্ন / বর্ধিতভাবে অফসাইটের ব্যাক আপ করা যায়?

আমি send/receiveওভার এসএসএস স্বীকৃত হ'ল একটি পদ্ধতি তবে এর মধ্যে ম্যানুয়ালি স্ন্যাপশট পরিচালনা করা জড়িত।

কিছু সরঞ্জাম রয়েছে যা আমি পেয়েছি তবে বেশিরভাগই আর সমর্থন করে না।

আশ্বাসপ্রাপ্ত দেখতে একটি সরঞ্জাম হ'ল https://github.com/jimsalterjrs/sanoid তবে আমি আশঙ্কা করছি যে অ-বহুল পরিচিত সরঞ্জামটি আরও বেশি ক্ষতি করতে পারে তবে এটি ডেটা ক্ষতিগ্রস্থ / মুছে ফেলতে পারে।

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


2
আমি কিছুক্ষণ পরে প্রতিক্রিয়া জানাব, তবে আমার কাছে এমন একটি সমাধান রয়েছে যা প্রাথমিক জেডএফএস সার্ভার থেকে মাধ্যমিক পর্যন্ত প্রতি 15 সেকেন্ডে এই জাতীয় প্রতিলিপি সম্পাদন করে।
ew white

উত্তর:


33

জেডএফএস একটি অবিশ্বাস্য ফাইল সিস্টেম এবং আমার অনেক লোকাল এবং শেয়ার্ড ডেটা স্টোরেজ প্রয়োজনীয়তা সমাধান করে।

যদিও, আমি যেখানেই সম্ভব ক্লাস্টার্ড জেডএফএসের ধারণার মতো করি , কখনও কখনও এটি ব্যবহারিক হয় না বা স্টোরেজ নোডগুলির কিছু ভৌগলিক বিচ্ছেদ প্রয়োজন need

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

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

zfs-auto-snapshot - https://github.com/zfsonlinux/zfs-auto-snapshot

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

# /etc/cron.d/zfs-auto-snapshot

PATH="/usr/bin:/bin:/usr/sbin:/sbin"

*/5 * * * * root /sbin/zfs-auto-snapshot -q -g --label=frequent --keep=24 //
00 * * * * root /sbin/zfs-auto-snapshot -q -g --label=hourly --keep=24 //
59 23 * * * root /sbin/zfs-auto-snapshot -q -g --label=daily --keep=14 //
59 23 * * 0 root /sbin/zfs-auto-snapshot -q -g --label=weekly --keep=4 //
00 00 1 * * root /sbin/zfs-auto-snapshot -q -g --label=monthly --keep=4 //

সিঙ্কয়েড (সানয়েড) - https://github.com/jimsalterjrs/sanoid

এই প্রোগ্রামটি কোনও জেডএফএস ফাইল সিস্টেমের একটি দ্বিতীয় লক্ষ্যতে অ্যাড-হক স্ন্যাপ / প্রতিলিপি চালাতে পারে। আমি কেবল পণ্যের সিঙ্কয়েড অংশটি ব্যবহার করি ।

ধরে নেওয়া যাক server1 এবং server2 থেকে, সহজ কমান্ড রান server2 করতে টান থেকে ডেটা server1 :

#!/bin/bash

/usr/local/bin/syncoid root@server1:vol1/data vol2/data

exit $?

মনিট - https://mmonit.com/monit/

মনিট একটি অত্যন্ত নমনীয় কাজের শিডিয়ুলার এবং এক্সিকিউশন ম্যানেজার। ডিফল্টরূপে, এটি 30-সেকেন্ড ব্যবধানে কাজ করে, তবে আমি 15-সেকেন্ডের বেস সময়চক্রটি ব্যবহার করতে কনফিগারটি পরিবর্তন করি।

উপরের প্রতিলিপি স্ক্রিপ্ট প্রতি 15 সেকেন্ডে চালিত একটি উদাহরণ কনফিগার (1 চক্র)

check program storagesync with path /usr/local/bin/run_storagesync.sh
        every 1 cycles
        if status != 0 then alert

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


ফলাফলটি হ'ল আমার কাছে এমন একাধিক মাসের মাসিক স্ন্যাপশট এবং এর মধ্যে রোলব্যাক এবং ধরে রাখার অনেকগুলি পয়েন্ট রয়েছে এমন সার্ভার রয়েছে: https://pastebin.com/zuNzgi0G - প্লাস, একটি অবিচ্ছিন্ন রোলিং 15-সেকেন্ডের পারমাণবিক প্রতিলিপি:

# monit status

Program 'storagesync'
  status                            Status ok
  monitoring status                 Monitored
  last started                      Wed, 05 Apr 2017 05:37:59
  last exit value                   0
  data collected                    Wed, 05 Apr 2017 05:37:59
.
.
.
Program 'storagesync'
  status                            Status ok
  monitoring status                 Monitored
  last started                      Wed, 05 Apr 2017 05:38:59
  last exit value                   0
  data collected                    Wed, 05 Apr 2017 05:38:59

4
পোস্ট করার জন্য আপনাকে ধন্যবাদ, আপনার উত্তরটি অভূতপূর্ব এবং ঠিক আমি যা খুঁজছিলাম (প্রক্রিয়াটি নিরীক্ষণ করা থেকে শুরু করে)। এছাড়াও github.com/ew white/zfs-ha/wiki পড়ছি এবং আমি পুরোপুরি মুগ্ধ। আপনাকে আবারও ধন্যবাদ :)
গ্রেগ

6

এটি করতে আপনার দুটি ভিন্ন উপায় রয়েছে:

  1. গত কয়েক দশক ধরে / ব্যবহৃত হয়েছে এমন traditionalতিহ্যবাহী, ফাইল-সিস্টেম-অজোনস্টিক পদ্ধতি rsyncবা এর মতো সরঞ্জামগুলি Bacula। সেখানে আপনি পরীক্ষা করেছেন এবং (আশাবাদী) স্থিতিশীল, বৃহত সফ্টওয়্যার যা বিশাল মোতায়েনের জন্য কাস্টমাইজ করা যায় এবং আপনি জেডএফএস থেকে সরে গেলেও ব্যবহার করা যেতে পারে
  2. অন্যতম একটি সরঞ্জাম যা জেডএফএসকে লাভ করে send/recv। এটি হয় আপনার নিজের সমাধান, কোনও স্ক্রিপ্ট বা গিথুব এট আল-র বিভিন্নের স্ক্রিপ্ট বা প্রসারিত স্ক্রিপ্ট, বা সানয়েড বা জেনাপজেন্ডের মতো আরও বৈশিষ্ট্য সমৃদ্ধ সরঞ্জাম (এম্বুফার সমর্থন এবং ধরে রাখার পরিকল্পনা সহ প্রেরণ / recv) হতে পারে। এই ক্ষেত্রে আপনি সম্ভবত কোনও বড়, "এন্টারপ্রাইজ" (নেতিবাচক অর্থে) সমাধানগুলি খুঁজে পাবেন না, তবে এমন সরঞ্জামগুলি যা কেবলমাত্র একক কাজ করে এবং আপনার নির্দিষ্ট সেটআপটি পূরণের জন্য অন্যান্য সরঞ্জামগুলির সাথে একত্রিত হতে পারে।

সাধারণভাবে, আমি কেবলমাত্র একটি সরঞ্জামটির উপর নির্ভর করব যার উত্স কোডটি উপলভ্য আছে এবং আমি এটি যথাসম্ভব সহজ রাখব। যদি ব্যবহার করে থাকেন তবে send/recvআপনাকে খুব বেশি পরিচালনা করতে হবে না, যখন দূরবর্তী দিকে স্ন্যাপশট এন সংক্রমণ এবং স্থাপন সফল হয়েছিল তখন আপনাকে কেবল স্ন্যাপশট এন -1 মুছতে হবে স্থানীয় দিকে side

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

এখন যেহেতু আমি এটির কথা চিন্তা করি, আপনি সম্ভবত এটি কোনও রাষ্ট্রের মেশিনে এনকোড করতে পারেন এবং তারপরে নিশ্চিত হন যে কোনও অপ্রত্যাশিত ঘটনা এড়াতে পারে না।


আমি দেখতে পাচ্ছি না যে একটি rsyncবেসড সমাধান কীভাবে একটি বৃহত এন্টারপ্রাইজ-স্কেল ফাইল সিস্টেমকে ধারাবাহিকভাবে প্রতিলিপি করতে স্কেল করে। পরিবর্তনগুলি rsyncআবিষ্কার করার চেয়ে দ্রুত ঘটতে পারে।
অ্যান্ড্রু হেনেল

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

@ ব্যবহারকারী 121391 ওপেনসোর্স যাওয়ার উপায় সম্পর্কিত বিষয়ে আপনার সাথে সম্পূর্ণ সম্মত। আপনার বিস্তারিত প্রতিক্রিয়া জন্য আপনাকে ধন্যবাদ।
গ্রেগ

শুধু @Dave হিসাবে আমি টাইপ করছি ...
ewwhite

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