জেডএফএস মিররড পুলের কার্যকর অফসাইট ব্যাকআপ কৌশল কী?


9

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

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

আমার প্রয়োজনীয়তাগুলি হল আমার জপুলের অফসাইট অনুলিপি এবং এর সমস্ত স্ন্যাপশট যা আমি প্রতিদিন ঘোরান। এর অর্থ হল পুনর্নির্মাণের জন্য প্রায় 24 ঘন্টা সময় লাগতে হবে - বর্তমানে এটি এর কাছাকাছি, তবে আমাদের পুল বাড়ানোর পরিকল্পনাগুলি এটিকে সময়সীমার বাইরেও ঠেলে দেবে।

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


আমার বর্তমান কৌশলটি একাধিক পুল পদ্ধতি, zfs সহ স্ন্যাপশটগুলিকে সিঙ্ক করার জন্য প্রেরণ এবং প্রাপ্ত with আপনি যদি এর বিরুদ্ধে কোনও তর্ক বা আরও ভাল বিকল্পের সন্ধান পেয়ে থাকেন তবে শুনতে ভাল লাগবে।
so12311

উত্তর:


3

অনেকগুলি ঝোঁক এবং পরীক্ষার পরে আমি একটি সমাধান খুঁজে পেয়েছি, যদিও বেশ বড় ট্রেড অফের সাথে।

প্রথমত, আমাকে যে বিকল্পগুলি বাতিল করতে হয়েছিল তা:

  • মিররড পুল সহ দ্বিতীয় অফসাইট জেডএফএস সার্ভারটি ব্যয়ের কারণে কোনও বিকল্প ছিল না। এটি যদি কোনও বিকল্প হত তবে এটি সর্বোত্তম পন্থা হতে পারে, জেডএফএস ব্যবহার করে দূরবর্তী পুলে স্ন্যাপশটগুলি প্রেরণ / প্রাপ্তি ব্যবহার করে।

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

  • ব্যাকআপ ডিস্কটি মিররযুক্ত পুলের মধ্যে এবং বাইরে ঘোরানোর জন্য জেডএফএস সংযুক্ত করুন এবং আলাদা করুন Using এটি ভালভাবে কাজ করে তবে প্রতিবার ডিস্ক যুক্ত হওয়ার সাথে একটি সম্পূর্ণ রিসিলভার সম্পাদন করতে হবে। এটি অগ্রহণযোগ্য দীর্ঘ সময় নেয় এবং তাই আমি এটির উপর নির্ভর করতে পারি না।

আমার সমাধান ব্যবহারের অনুরূপ attachএবং detach, তবে এটি ব্যবহার করে onlineএবং offline। এটি একটি সম্পূর্ণ পুনরায় সংশ্লেষের তুলনায় একটি ব-দ্বীপ পুনরায় সংশ্লেষ সম্পাদন করার সুবিধা রয়েছে, তবে পুলটি সর্বদা একটি DEGRADEDরাষ্ট্রের প্রতিবেদন করে ( পুলটিতে সর্বদা দুটি ডিস্ক থাকে; ঘোরানো অফসাইট ডিস্কগুলি চিহ্নিত করা হয় offlineযখন তারা রিমোট স্টোরেজ এবং রিসিলবারে থাকে এবং তারপরে অনলাইনে আসে) যখন তারা অনসাইট হয়)

সুতরাং, আমার সেটআপের একটি দ্রুত পুনরুদ্ধার এবং ওভারভিউ:

আমার একটি জেডএফএস সার্ভার এবং চারটি অভিন্ন ডিস্ক রয়েছে। মিররড পুলটি ব্যবহার করতে জেডএফএস সেটআপ রয়েছে। চারটি ডিস্কের মধ্যে দুটি এই পুলের স্থায়ী সদস্য। অন্য দুটি ডিস্ক ঘোরানো; একটি সর্বদা অফসাইট স্টোরেজে থাকে, অন্যটি হ'ল প্রস্তুত ব্যাকআপ হিসাবে কাজ করার জন্য পুলের অংশ।

ব্যাকআপগুলি ঘোরানোর সময় এলে:

  • zfs scrubব্যাকআপ ডিস্কটি ত্রুটিমুক্ত, এটিকে যুক্তিসঙ্গতভাবে নিশ্চিত করার জন্য আমি একটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করি

  • আমি zfs offlineযে ডিস্কটি রিমোট নেওয়া হবে। এটির অফলাইন হওয়ার পরে আমি hdparm -Y /dev/idএটিকে স্পিন করে ফেলব । এক মিনিটের পরে আমি আংশিকভাবে ডিস্ক স্লেজটি সরিয়ে ফেলি (তার হারানো শক্তি নিশ্চিত করার জন্য যথেষ্ট) এবং তারপরে স্পিনিং বন্ধ হয়ে গেছে তার গ্যারান্টিটি পুরোপুরি ড্রাইভটি টানানোর আগে এটি আরও একটি মিনিট দেই। ডিস্কটি একটি স্ট্যাটিক ব্যাগে এবং তারপরে একটি প্রতিরক্ষামূলক কেসে যায় এবং অফসাইটে যায়।

  • আমি অন্য অফসাইট ডিস্ক নিয়ে আসি। এটি হটসপ ট্রিতে ইনস্টল হয়ে যায় এবং স্পিন আপ হয়। আমি zfs onlineপুলটিতে ডিস্কটি পুনরুদ্ধার করতে এবং এটি একত্রে তৈরি করতে একটি আংশিক পুনর্বিবেচনা বন্ধ করব।

এই সিস্টেমটি গ্যারান্টি দেয় যে কোনও নির্দিষ্ট সময়ে আমার কাছে দুটি ONLINEমিরর ডিস্ক এবং একটি OFFLINEরিমোট ডিস্ক (যা স্ক্রাব করা হয়েছে) রয়েছে। চতুর্থ ডিস্কটি হয় পুনরায় সজ্জিত বা অনলাইনে চলছে, যার কোনও সুবিধা রয়েছে যে কোনও ড্রাইভিং ড্রাইভ ব্যর্থ হলে সম্ভবত পুলটি দুটি অনলাইন ডিস্কের সাথে সামঞ্জস্যপূর্ণ।

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


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


এটি অবশ্যই চারটির পরিবর্তে মাত্র তিনটি ডিভাইস নিয়ে কাজ করবে না? ওরাকল সোলারিস ZFS প্রশাসনিক নির্দেশিকা যে একটি মিরর পুকুর faulted করা হয় "যদি সব উপাদান একটি আয়নার সরিয়ে ফেলা হয়" [জোর খনি] যা পরোক্ষভাবে যে একটি চতুর্থ ড্রাইভ কঠোরভাবে প্রয়োজন নেই বলে মনে করেন।
কেনি এভিট

1
তিনটি ডিভাইস দ্বারা আপনি কি দুটি ডিস্ক বোঝাতে চান যা সবসময় পুলের মধ্যে থাকে এবং একটি যা মাঝেমধ্যে অফসাইট, বা একটি ডিস্ক যা সর্বদা পুলের মধ্যে থাকে এবং দুটি যা অফসাইট ঘোরান? দ্বিতীয় বিকল্পের সাথে আমি পুলটি খারাপ ডেটার মুখোমুখি হলে ডেটা ক্ষতির আশা করতে পারি যখন সেখানে কেবলমাত্র একটি সম্পূর্ণ অনলাইন ডিস্ক থাকে (যখন ২ য় ডিস্কটি হয় আবার ঘোরানো হয় বা পুরোপুরি পুনরায় সংশোধন না করা হয়)। আমার দ্বি-সেন্টটি সর্বদা আপনার মিরর পুলটিতে দুটি ফুলটাইম অনলাইন ডিস্ক থাকে তা নিশ্চিত করা।
এসটিডাব্লু

আমি বলতে চাইছি দ্বিতীয় বিকল্পটি আপনি উল্লেখ করেছেন। এই বিকল্পটি সহ, কেবলমাত্র একটি ডিস্কই অনলাইনে থাকা অবস্থায় খারাপ ডেটা হওয়ার সম্ভাবনা কতটা? আংশিক / ইনক্রিমেন্টাল রিসিলভারিং তুলনামূলক দ্রুত হওয়া উচিত, তাই না? এমনকি খারাপ ডেটা থাকলেও, আপনি কি দ্বিতীয় ড্রাইভ থেকে পুনরুদ্ধার করতে সক্ষম হবেন না? বা তৃতীয় ড্রাইভ থেকে পুনরুদ্ধার, খারাপ অবস্থা? [স্পষ্টতই এমন পরিস্থিতিতে রয়েছে যেখানে পুনরুদ্ধার সম্ভব নয়; তবে এটি চারটি ড্রাইভ সহ সত্য; বা আসলে কোনও সংখ্যা number]
কেনি এভিট

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

এর সংক্ষিপ্তসার হিসাবে, জেডএফএস হ'ল ডেটাগুলির একক অনুলিপি এড়ানো (বা কমপক্ষে সমতা থাকা, খারাপ ডেটা পুনর্নির্মাণের অনুমতি দেওয়া) about যখন আপনার কাছে কেবল একটি অনলাইন ডিস্ক বা ব্যাকআপ ডেটার একটি অনুলিপি থাকে এটি ডেটা ক্ষতির ঝুঁকিতে থাকে।
এসটিডব্লিউ

2

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

#!/usr/local/bin/bash
# ZFS Snapshot BASH script by Shawn Westerhoff
# Updated 1/14/2014

### DATE VARIABLES
# D = Today's date
# D1 = Yesterday's date
# D# = Today less # days date
Y=$(date -v-1d '+%m-%d-%Y')
D=$(date +%m-%d-%Y)
D1=$(date -v-1d '+%m-%d-%Y')
D10=$(date -v-10d '+%m-%d-%Y')
D20=$(date -v-20d '+%m-%d-%Y')

# Step 1: Make the snapshots

for i in $( zfs list -H -o name ); do
    if [ $i == tier1 ]
    then echo "$i found, skipping"
    else
    zfs snapshot $i@$D
    fi
done

# Step 2: Send the snapshots to backup ZFS sever

    for i in $( zfs list -H -o name ); do
        zfs send -i $i@$D1 $i@$D | ssh -c arcfour root@10.10.10.10 zfs recv $i
    done

# Step 3: Destroy snapshots that are 20 days old

for i in $( zfs list -H -o name ); do
        if [ $i == tier1 ]
        then echo "$i found, skipping"
        else
        zfs destroy $i@$D20
        fi
done

0

আমি স্ন্যাপডাম্প নামে একটি সরঞ্জাম তৈরি করেছি যা আসুন আপনি আপনার জেডএফএস ডেটাসেটের একটি বিদেশী (নন জেডএফএস) ফাইল সিস্টেমের ইনক্রিমেন্টাল ডাম্প তৈরি করতে পারেন। স্ন্যাপডাম্প একটি একক কমান্ডের সাহায্যে একটি ইনক্রিমেন্টাল স্ন্যাপশট চেইন পুনরুদ্ধার করতে সহায়তা করে।

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