লিনাক্স সফ্টওয়্যার RAID 1 থেকে RAID 10 বৃদ্ধি করার সর্বোত্তম উপায়


22

mdadm লেভেল 1 থেকে স্তর 10 এ অ্যারে বাড়ানো সমর্থন করে বলে মনে হচ্ছে না।

রেডে আমার দুটি ডিস্ক রয়েছে I আমি দুটি নতুন ডিস্ক যুক্ত করতে এবং অ্যারেটিকে একটি চার ডিস্ক RAID 10 অ্যারে রূপান্তর করতে চাই।

আমার বর্তমান কৌশল:

  1. ভাল ব্যাকআপ করুন।
  2. দুটি অনুপস্থিত ডিস্ক সহ একটি অবনমিত 4 ডিস্ক RAID 10 অ্যারে তৈরি করুন।
  3. rsync the RAID 1 array with the RAID 10 array.
  4. fail and remove RAID 1 অ্যারে থেকে একটি ডিস্ক।
  5. RAID 10 অ্যারে উপলভ্য ডিস্কটি যুক্ত করুন এবং পুনরায় সংশোধনটি শেষ হওয়ার জন্য অপেক্ষা করুন।
  6. RAID 1 অ্যারে বিনষ্ট করুন এবং RAID 10 অ্যারেতে সর্বশেষ ডিস্ক যুক্ত করুন।

সমস্যাটি হ'ল 5 ধাপে অপ্রয়োজনীয়তার অভাব।

একটি ভাল উপায় আছে কি?


5
পদক্ষেপ 0. ভুলবেন না। সবকিছু একটি ভাল ব্যাকআপ করুন।
অ্যান্টনি লুইস

আমি বিশ্বাস করি আপনার পদক্ষেপগুলি সঠিক। আপনি একটি সেট থেকে অন্য সেটটিতে ডেটা অনুলিপি করার সময়কালে আপনি অতিরিক্ত কাজটি হারাবেন।
কেভিন কুফল

অবনমিত 4 ডিস্ক RAID10 তৈরি করা কি সম্ভব?
পৌষ

1
হ্যাঁ, আপনি কেবল "/ dev / hda অনুপস্থিত / দেব / এইচডিবি অনুপস্থিত" ব্যবহার করেন, কারণ অন্যথায় আপনি একটি পুরো জুটি হারাতে পারেন এবং এটি সমস্ত পৃথক হয়ে যায়। ঘটনাচক্রে এই প্রশ্নের "স্বীকৃত উত্তর" সম্পূর্ণ ভুল এবং কার্যকর হয় না।
ওম্বল

আমি এটি করার জন্য একটি ভাল উপায়ও খুঁজছি এবং আমি মনে করি যে প্রশ্নের বর্ণনায় বর্ণিত পদ্ধতিটি আমি এখনও অবধি খুঁজে পেয়েছি। মার্ক টার্নারের উত্তরটি সাহায্য করে না কারণ এটি একটি 2-ডিভাইস অ্যারে তৈরি করে যা 4 টি ডিভাইসে পুনরায় আকার দেওয়া যায় না (অন্য 2 টি কেবল অতিরিক্ত হিসাবে যোগ করা যেতে পারে)। সুরেশ কুমারের উত্তর প্রশ্নে বর্ণিত হিসাবে একই, কেবল এটির মতো কাজ করবে না; অনুপস্থিত ডিভাইসগুলির তৃতীয় এবং চতুর্থ নয়, ২ য় এবং চতুর্থ হতে হবে। প্রশ্নের পদক্ষেপগুলি সম্পর্কে: আমি মনে করি যে ধাপ 5 এর সম্পূর্ণ রিডানডেন্সি রয়েছে, এবং step ধাপে অর্ধেক ডেটার জন্য অপ্রয়োজনীয়তা রয়েছে। আমি আসলে দেখতে পাচ্ছি পদক্ষেপগুলি
পুনর্নবীকরণযোগ্য

উত্তর:


8

লিনাক্স সফটরেড দিয়ে আপনি কেবল দুটি ডিস্কের সাহায্যে একটি রেড 10 অ্যারে তৈরি করতে পারেন।

নীচে ব্যবহৃত ডিভাইসের নাম:

  • md0 টাইপ / স্তরের RAID1 এর পুরানো অ্যারে।
  • md1 টাইপ / স্তরের RAID10 এর নতুন অ্যারে।
  • sda1এবং sdb2হয় নতুন , খালি পার্টিশন (ডাটা ছাড়াই)।
  • sda2এবং sdc1পুরানো পার্টিশন (গুরুত্বপূর্ণ ডেটা সহ)।

আপনার ব্যবহারের ক্ষেত্রে ফিট করার জন্য নামগুলি প্রতিস্থাপন করুন। lsblkআপনার বর্তমান লেআউটটি দেখতে উদাহরণস্বরূপ ব্যবহার করুন ।

0) ব্যাকআপ, ব্যাকআপ, ব্যাকআপ, ব্যাকআপ ওহ এবং ব্যাকআপ

1) নতুন অ্যারে তৈরি করুন (4 টি ডিভাইস: 2 বিদ্যমান, 2 নিখোঁজ):

mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing

মনে রাখবেন যে এই উদাহরণে লেআউটে sda1একটি অনুপস্থিত অংশ sdb2রয়েছে এবং তার আরেকটি অনুপস্থিত অংশ রয়েছে। এতে থাকা আপনার ডেটা md1এই মুহুর্তে নিরাপদ নয় (আপনি নিখোঁজ সদস্যদের যোগ না করা পর্যন্ত কার্যকরভাবে এটি RAID0)।

তৈরি অ্যারে ব্যবহারের বিন্যাস এবং অন্যান্য বিশদটি দেখতে:

mdadm -D /dev/md1

বিঃদ্রঃ! আপনার অ্যারের লেআউটটি সংরক্ষণ করা উচিত:

# View current mdadm config:
cat /etc/mdadm/mdadm.conf
# Add new layout (grep is to make sure you don't re-add md0):
mdadm --detail --scan | grep "/dev/md1" | tee -a /etc/mdadm/mdadm.conf
# Save config to initramfs (to be available after reboot)
update-initramfs -u

2) ফর্ম্যাট এবং মাউন্ট। /dev/md1অবিলম্বে ব্যবহারযোগ্য হওয়া উচিত, কিন্তু প্রয়োজন ফর্ম্যাট করা এবং তারপর মাউন্ট করা।

3) ফাইল কপি করুন। পুরানো RAID 1 থেকে নতুন RAID 10-তে তথ্য অনুলিপি করতে উদাহরণস্বরূপ rsync ব্যবহার করুন

rsync -arHx / /where/ever/you/mounted/the/RAID10

4) পুরানো RAID1 (এমডি 0) এর প্রথম অংশ ব্যর্থ করুন এবং এটি নতুন RAID10 (এমডি 1) এ যুক্ত করুন

mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2
mdadm /dev/md1 --add /dev/sda2

বিঃদ্রঃ! এটি থেকে ডেটা মুছে ফেলবে sda2md0এখনো ব্যবহারযোগ্য হওয়া উচিত কিন্তু শুধুমাত্র যদি অন্যান্য অভিযানের সদস্য পুরোপুরি কর্মক্ষম ছিল।

এছাড়াও নোট করুন যে এটি সিঙ্ক / পুনরুদ্ধার প্রক্রিয়াগুলি শুরু হবে md1। স্থিতি পরীক্ষা করতে নীচের একটি আদেশ ব্যবহার করুন:

# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1

পুনরুদ্ধার শেষ না হওয়া পর্যন্ত অপেক্ষা করুন

5) নতুন অ্যারেতে GRUB ইনস্টল করুন (ধরে নিচ্ছেন আপনি এটি বুট করছেন)। কিছু লিনাক্স রেসকিউ / বুট সিডি সেরা কাজ করে।

6) নতুন অ্যারে বুট করুন। যদি এটি সঠিকভাবে কাজ করে তবে পুরানো অ্যারেটি বিনষ্ট করুন এবং বাকী ডিস্কটি নতুন অ্যারেতে যুক্ত করুন।

কোনও ফেরতের পয়েন্ট

এই মুহুর্তে আপনি পুরানো এমডি 0 অ্যারের শেষ সদস্যের ডেটা ধ্বংস করবেন। সবকিছু নিশ্চিতভাবে কাজ করছে কিনা তা নিশ্চিত হন।

mdadm --stop /dev/md0
mdadm /dev/md0 --remove /dev/sdc1
mdadm /dev/md1 --add /dev/sdc1

এবং আবারও - পুনরুদ্ধার শেষ না হওয়া পর্যন্ত অপেক্ষা করুন md1

# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1

7) mddm কনফিগার আপডেট করুন

আপডেট করতে মনে রাখবেন /etc/mdadm/mdadm.conf(এমডি0 সরান)।

আর কনফিগারেশনটি আরআরআরামফেসে সংরক্ষণ করুন (পুনরায় বুটের পরে পাওয়া যাবে)

update-initramfs -u

1
চারটি ডিস্ক এর মধ্যে কোথায় আসে?
ওম্বল

অঁ্যা? আমি স্পষ্টভাবে 2 ডিস্কের সাহায্যে অ্যারে তৈরি করতে, ডেটা অনুলিপি করতে, একটি ডিস্ক অপসারণ করে রেড 1 ব্যর্থ করে, সেই ডিস্কটিকে RAID10 এ যুক্ত করুন, তারপরে RAID10 এ বুট করুন, যদি এটি কাজ করে, RAID1 নষ্ট করে এবং সেই শেষ ডিস্কটিকে সেখানে স্থানান্তরিত করে নতুন RAID ....
মার্ক টার্নার

4
আপনি আমার মন্তব্যের পরে আপনার উত্তরটি সম্পাদনা করেছেন। এছাড়াও, আপনার পদ্ধতিটি দুটি স্পেস সহ একটি দুটি ডিস্ক RAID-10 দেয় ... খুব কমই একটি ফোর-ডিস্ক RAID-10 দেয়। RAID-10 ভলিউমগুলি পুনরায় আকার দেওয়া যায় না।
ওম্বল

2
আপনি প্রদত্ত কমান্ডগুলি আমি চালিয়েছি এবং / প্রো / এমডিস্ট্যাট দ্বারা দেখানো হিসাবে আমি দুটি স্পেস সহ একটি দুটি ডিস্ক RAID-10 দিয়ে শেষ করি। এটি mddm v2.6.7.2 সহ কার্নেলটিতে 2.6.30 রয়েছে।
womble

3
"এমডিএডএম: রাইড 10 অ্যারে / ডেভ / এমডি 1 পুনরায় আকার দেওয়া যাবে না।" এমডিএডএম ম্যানপেজে এটিও উল্লেখ করা হয়েছে।
ওম্বল

9

মার্ক টার্নারের মতো একই পদ্ধতি অনুসরণ করুন তবে আপনি যখন রেইড অ্যারে তৈরি করবেন তখন 2 টি হারিয়ে যাওয়া ডিস্কের উল্লেখ করুন

mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing

এবং তারপরে অন্যান্য পদক্ষেপগুলি নিয়ে এগিয়ে যান।

সংক্ষেপে, মোট 4 টি ডিস্কের সাথে RAID10 তৈরি করুন (যার মধ্যে 2 টি নিখোঁজ রয়েছে), পুনরায় সংযোগ করুন, তার পরে অন্য দুটি ডিস্ক যুক্ত করুন।


6

চারটি ডিস্ক RAID 10 (দুটি মূল + দুটি নতুন ডিস্ক) -এ দুটি 2 টিবি ডিস্ক এমডডিএম RAID 1 তে এলভিএম থেকে সবেমাত্র শেষ হয়েছে।

@ অ্যাডিটসু হিসাবে উল্লেখ করেছেন যে অ্যারে তৈরি করার সময় ড্রাইভ ক্রমটি গুরুত্বপূর্ণ।

mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda missing /dev/sdb missing

উপরের কোডটি দুটি অনুপস্থিত ডিস্ক সহ একটি ব্যবহারযোগ্য অ্যারে দেয় (আপনি পুরো ডিস্ক ব্যবহার না করে পার্টিশন নম্বর যুক্ত করুন)। তৃতীয় ডিস্ক যুক্ত হওয়ার সাথে সাথে এটি সিঙ্ক করা শুরু হবে। তৃতীয় সিঙ্ক হওয়ার আগে আমি চতুর্থ ডিস্ক যুক্ত করেছি। তৃতীয় ডিস্কটি সমাপ্ত না হওয়া পর্যন্ত এটি অতিরিক্ত হিসাবে দেখানো হয়েছিল এটি সিঙ্ক করতে শুরু করে।

আমার পরিস্থিতির জন্য পদক্ষেপগুলি:

  1. ভাল ব্যাকআপ করুন।

  2. দুটি অনুপস্থিত ডিস্ক সহ একটি অবনমিত 4 ডিস্ক RAID 10 অ্যারে তৈরি করুন (আমরা নিখোঁজ ডিস্কগুলি # 2 এবং 4 বলব)।

  3. স্ত্রীকে বলুন যে সে সম্পর্কে যে কোনও ফাইল পরিবর্তিত / যুক্ত না হয়

  4. RAID 1 অ্যারে (ডিস্ক 4) থেকে একটি ডিস্ক ব্যর্থ এবং সরিয়ে ফেলুন।

  5. RAID 1 অ্যারে থেকে ভৌত এক্সটেন্টসটিকে RAID 10 অ্যারে ডিস্ক 2 খালি রেখে যান।

  6. সক্রিয় RAID 1 অ্যারেটিকে হত্যা করুন, এখন RAID 10 অ্যারে খালি ডিস্ক (ডিস্ক 2) যুক্ত করুন এবং পুনরায় সংযোগটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন।

  7. RAID 1 (ডিস্ক 4) থেকে সরানো প্রথম ডিস্কটি RAID 10 অ্যারে যুক্ত করুন।

  8. বউকে এগিয়ে যাও।

Step ধাপে আমি মনে করি ড্রাইভ 1, 2, বা 4 অ্যারেটি না মেরে (ডিস্ক 4 রিসাইঙ্কের সময়) ব্যর্থ হতে পারে। যদি ড্রাইভ 3 ব্যর্থ হয় তবে অ্যারের ডেটা টোস্ট হয়।


+1, বিশেষত ৩ য় পদক্ষেপের জন্য;)

-1, নির্দেশ অস্পষ্ট, কোনও স্ত্রী নেই, আমার ডেটা হারাবেন
জ্যাব

1

আমি আমার রেড 1 এখনই রেড 10 এ স্থানান্তরিত করেছি এবং যখন এই পৃষ্ঠাটি আমাকে সহায়তা করেছিল তবে উপরের উত্তরে কিছু জিনিস অনুপস্থিত রয়েছে। বিশেষত আমার উদ্দেশ্য ছিল অতিরিক্ত 4 জন্ম সময় রাখা keep

সেটআপটি ছিল:

  • প্রতিটি প্রকারের এমএসডোস এবং এমডি0 এক্সট 4 পার্টিশনের সাথে এমআইডি 0 এবং এমএসডিএস সহ এমবিআর 2 রাইড 1 ডিস্ক
  • 2 টি নতুন নতুন ডিস্ক নতুন প্রাইমারিতে পরিণত হচ্ছে (সমস্ত একই আকার)
  • এমডি 127 এক্সট 4 এর 4 টি ডিস্কে অভিযান হয়েছিল তবে আকারের কারণে আমাকে এমবিআর থেকে জিপিটিতে স্যুইচ করতে হয়েছিল
  • এটি আমার হোম ডিস্ক, সুতরাং কোনও বুট ম্যানেজার সেটআপ প্রয়োজন হয় না বা প্রয়োজন হয় না
  • আমার দৈনন্দিন উবুন্টু ব্যবহার করে (সুতরাং: বাহ্যিক রেসকিউ ডিস্ক ব্যবহার না করা)
  • জিপিআরটিড, ডিডি এবং এমডিএমডিএম ব্যবহার করে

যেমন কেউ আগে বলেছিল: শূন্য পদক্ষেপটি ব্যাকআপ হওয়া উচিত এবং চূড়ান্ত ডেটালাসের ফলে প্রক্রিয়াটিতে কিছুটা ভুল হতে পারে

  1. ব্যাকআপ

  2. নতুন অভিযানের সেটআপ

    1. একটি নতুন অভিযান তৈরি করুন

      mdadm -v --create /dev/md127 --level=raid10 --raid-devices=4 /dev/sdb1 missing /dev/sde1 missing
      

      (আমি খুঁজে পেয়েছি যে লেআউটটি গুরুত্বপূর্ণ .. ২ য় এবং ৪ র্থ ডিফল্ট 'কাছাকাছি' অভিযানের অনুলিপি বলে মনে হচ্ছে)

    2. রেডের পার্টিশনটি সেট করুন আমি এমপি 127-তে জিপিআরটিটিং সেট আপ জিপিটি ব্যবহার করছিলাম এবং তারপরে পুরানো বা তার বেশি আকারের একটি নতুন পার্টিশন (এক্সট্রি) যুক্ত করব
  3. মাইগ্রেট

    1. এখন ডেটা পেয়ে যাচ্ছি ... আমি প্রথমে আরএসসিএনচি যা কাজ করার চেষ্টা করছিলাম কিন্তু জন্ম সময় রাখতে ব্যর্থ হয়েছি ... পুরানো রেইড থেকে নতুনটিতে ক্লোন করতে ডিডি ব্যবহার করুন

      dd if=/dev/md0 of=/dev/md127p1 bs=1M conv=notrunc,noerror,sync
      

      তার জন্য অপেক্ষা
      আপনি যে প্রক্রিয়ায় USR1 পাঠানোর সঙ্গে পরীক্ষা করতে পারবেন

      kill -s USR1 <pid>
      
    2. রেইড ফিক্স
      জিপিটার্ট একটি দুর্দান্ত সরঞ্জাম: আপনি এটি পার্টিশনটি পরীক্ষা করে ঠিক করতে এবং কিছুটা মাউস ক্লিক সহ সেই ডিস্কের পুরো আকারে পুনরায় আকার দিতে বলে;)

    3. এই বিভাগে একটি নতুন uuid সেট করুন এবং এটি দিয়ে আপনার fstab আপডেট করুন (uuid পরিবর্তন করুন)

    4. কনফিডে আপনার অভিযান সংরক্ষণ করুন

      mdadm --examine --scan  >> /etc/mdadm/mdadm.conf
      

      এবং পুরানোটি সরিয়ে দিন

      vim /etc/mdadm/mdadm.conf 
      
    5. আপনি যদি রেসকিউ সিস্টেমে না থাকেন তবে পুনরায় বুট করুন
  4. পুরানো এক ধ্বংস

    1. প্রথমটিকে ব্যর্থ করুন এবং এটিকে নতুন অভিযানে যুক্ত করুন

      mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1
      

      তারপরে সেই ডিভাইসে জিপিটি তৈরি করুন এবং একটি নতুন খালি পার্টিশন সেট করুন

      mdadm /dev/md127 --add /dev/sdc1
      

      এটির জন্য অপেক্ষা করুন
      আপনি যা দিয়ে পরীক্ষা করতে পারেন

      cat /proc/mdstat
      
    2. দ্বিতীয়টি বন্ধ করুন

      mdadm --stop /dev/md0 
      

      তারপরে সেই শেষ ডিভাইসে জিপিটি তৈরি করুন এবং আবার নতুন খালি পার্টিশন সেট করুন

      mdadm /dev/md127 --add /dev/sdd1
      

      এটির জন্য আবার অপেক্ষা করুন


0

আমি এটি এলভিএম দিয়ে করেছি। প্রাথমিক কনফিগারেশন: - এসডিএ 2, এসডিবি 2 - এবং শীর্ষে রাইড 1 এমডি 1 তৈরি করেছে। / বুট পার্টিশনের জন্য দ্বিতীয় raid1 এর জন্য sda1 এবং sdb1 ব্যবহার করা হয়েছিল। - এমডি 1 হ'ল ভলিউম গ্রুপ স্পেসে কিছু পিভিএম ছিল p

আমি ডিস্ক এসডিসি এবং এসডিডি যুক্ত করেছি এবং সেখানে এসডিএ / এসডিবি এর মতো পার্টিশন তৈরি করেছি।

তাই:

  1. এমডি 10 তৈরি করেছেন:

    m دادm --create / dev / md10 --level raid10 - ভয়-ডিভাইসগুলি = 4 / দেব / এসডিসি 2 অনুপস্থিত / দেব / এসডিডি 2

  2. এটিতে ভিজি প্রসারিত করুন:

    pvcreate / dev / md10 vgextend স্পেস / ডেভ / এমডি 10

  3. এমডি 1 থেকে এমডি 10 এ ভলিউম সরানো হয়েছে:

    pvmove -v / dev / md1 / dev / md10

(সম্পন্ন হওয়ার জন্য অপেক্ষা করুন) 4. ভলিউম গ্রুপ হ্রাস করুন:

vgreduce space /dev/md1
pvremove /dev/md1
  1. অ্যারে এমডি 1 বন্ধ করুন:

    এমদাদম-এস / দেব / এমডি 1

  2. পুরানো এমডি 1 থেকে এমডি 10 এ ডিস্ক যুক্ত করুন:

    এমডডম -এ / দেব / এমডি 10 / দেব / এসডি 2 / দেব / এসডিবি 2

  3. /etc/m دادm/m دادm.conf এ কনফিগারেশন আপডেট করুন:

    m دادm -E - স্ক্যান >> / দেব / এমডাদম / এমডাদম.কনফ

(এবং সেখানে পুরানো এমডি 1 অপসারণ করুন)

কেভিএম এর জন্য ব্যবহৃত সক্রিয় ভলিউম সহ লাইভ সিস্টেমে সবকিছুই করা হয়েছে;)

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