আমি ভুল করে এই উত্তরটি পেরিয়ে এসেছি, তবে যদি কেউ আগ্রহী হয় তবে পরীক্ষাগুলি দ্বারা সমর্থিত একটি উত্তর এখানে।
সংক্ষিপ্ত সংস্করণ
বোনাস প্রশ্ন: আমি md(4)
অসম আকারের ব্লক ডিভাইসগুলির মধ্যে একটি রেড অ্যারে তৈরি করতে পারি ? হ্যাঁ, তবে RAID অ্যারের মধ্যে ক্ষুদ্রতম ব্লক ডিভাইসের আকার থাকবে (প্লাস তার নিজস্ব গৃহকর্মের জন্য কিছু ওভারহেড)। যদি ডিভাইসের আকারগুলি একে অপরের 1% এর মধ্যে না থাকে তবে আপনি একটি সতর্কতা পাবেন।
প্রশ্ন 1: আমি কি বিদ্যমান md(4)
রেইড অ্যারে সংক্ষিপ্ততম বর্তমান সদস্যের চেয়ে ছোট ডিভাইস যুক্ত করতে পারি ? না দুঃক্ষিত. mdadm
আপনার ডেটা সুরক্ষিত করতে তা করতে অস্বীকার করবে।
প্রশ্ন 2: আপনি একটি বিদ্যমান এমডি অ্যারের আকার পরিবর্তন করতে পারেন? হ্যাঁ ( mdadm
ম্যানপেজটি পড়ুন!) তবে এটি চেষ্টা করার মতো নয়। আপনাকে সমস্ত কিছু ব্যাক আপ করতে হবে, তারপরে RAID ডিভাইসের সামগ্রীগুলি পুনরায় আকার দিন, তারপরে নিজেই ডিভাইসটিকে পুনরায় আকার দিন - এগুলি সমস্তই ত্রুটি, ভুল ত্রুটি এবং অন্যান্য বিষয়গুলির জন্য প্রবণ যা আপনার ডেটা ব্যয় করবে (বেদনাদায়ক অভিজ্ঞতা বলার) ।
এটি ঝুঁকি এবং প্রচেষ্টা মূল্য নয়। আপনার যদি একটি নতুন, ফাঁকা ডিস্ক থাকে তবে এটিকে পুনরায় আকার দেওয়ার উপায়টি এবং আপনার সমস্ত ডেটার এক থেকে দুটি কপির মধ্যে সর্বদা অক্ষত রাখতে হবে (ধরে নিবেন আপনার কাছে 2-ডিস্কের RAID1 রয়েছে):
md(4)
এটিতে একটি নতুন অ্যারে তৈরি করুন (একটি ডিস্ক হারিয়েছে)।
- অ্যারের সামগ্রীর কাঠামো পুনরুদ্ধার করুন (ক্রিপ্টো, এলভিএম, পার্টিশন টেবিলগুলি, এর কোনও সংমিশ্রণ, যাই হোক না কেন আপনার নৌকাকে ভাসিয়ে তোলে)।
- বিদ্যমান ডিস্ক থেকে ডেটা অনুলিপি করুন নতুনটিতে।
- নতুন ডিস্ক ব্যবহার করে পুনরায় বুট করুন।
- পুরানো ডিস্কের পার্টিশন টেবিলটি মুছুন (বা
md(4)
সুপারব্লকটি শূন্য করুন )। প্রয়োজনে, নতুন ডিস্কে স্কিমটি মেলে প্রয়োজনীয় পার্টিশন তৈরি করুন।
- নতুন অ্যারেতে পুরানো ডিস্ক যুক্ত করুন।
- অ্যারে সদস্যদের সিঙ্ক করার জন্য অপেক্ষা করুন। কিছু কফি খাও। লাতিন আমেরিকাতে ফ্লাই করুন এবং আপনার নিজের কফি বিনগুলি বেছে নিন। :) (যদি আপনি বাস করেন তবে এ ল্যাটিন আমেরিকা, পরিবর্তে আফ্রিকা পর্যন্ত উড়ানের সুবিধা দেওয়া)।
দ্রষ্টব্য: হ্যাঁ, এটি তার উত্তরটিতে বর্ণিত 0xC0000022L একই কৌশল।
প্রশ্ন 3. ড্রাইভ 1 জি সংক্ষিপ্ত হলে কী হবে? :) এটি সম্পর্কে চিন্তা করবেন না। আপনার প্রতিস্থাপন ড্রাইভটি আরও বড় হওয়ার সম্ভাবনা রয়েছে। বস্তুত, মত উপরে এটি একটি কৌশলের সঙ্গে বহন করেনা সস্তা বৃহত্তর ড্রাইভ পেতে যখনই এক ব্যর্থ (অথবা একটি সস্তা আপগ্রেড জন্য)। আপনি একটি প্রগতিশীল আপগ্রেড পেতে পারেন।
পরীক্ষামূলক প্রুফ
পরীক্ষামূলক সেটআপ
প্রথমে আসুন কিছু ব্লক ডিভাইস নকল করি। আমরা /tmp/sdx
এবং /tmp/sdy
(প্রতিটি 100 /tmp/sdz
এম) এবং (99 এম) ব্যবহার করব ।
cd /tmp
dd if=/dev/zero of=sdx bs=1M count=100
sudo losetup -f sdx
dd if=/dev/zero of=sdy bs=1M count=100
sudo losetup -f sdy
dd if=/dev/zero of=sdz bs=1M count=99 # Here's a smaller one!
sudo losetup -f sdz
তিনটি লুপব্যাক ব্লক ডিভাইস তিন ফাইল এই সেট /dev/loop0
, /dev/loop1
এবং /dev/loop2
, এর ম্যাপিং sdx
, sdy
এবং sdz
যথাক্রমে। এর আকারগুলি পরীক্ষা করে দেখুন:
sudo grep loop[012] /proc/partitions
7 0 102400 loop0
7 1 102400 loop1
7 2 101376 loop2
যেমনটি প্রত্যাশা করা হয়েছিল, আমাদের কাছে ঠিক 100 এম (102400 কিবি = 100 মাইবি) এবং 99M এর একটির (ঠিক 99 × 1024 1K ব্লক) দুটি লুপ ডিভাইস রয়েছে।
সনাক্ত আকারের ডিভাইসগুলির বাইরে একটি RAID অ্যারে তৈরি করা
এখানে যায়:
sudo mdadm --create -e 1.2 -n 2 -l 1 /dev/md100 /dev/loop0 /dev/loop1
mdadm: array /dev/md100 started.
আকার পরীক্ষা করুন:
sudo grep md100 /proc/partitions
9 100 102272 md100
এটি আমরা প্রত্যাশিতভাবে প্রত্যাশা করি: এমডিএডিএম ম্যানুয়ালটিতে একবার দেখে আমাদের মনে করিয়ে দেয় যে সংস্করণ 1.2 মেটাডেটা 128 কে: 128 + 102272 = 102400 নিয়েছে Now এখন দ্বিতীয় পরীক্ষার প্রস্তুতির মধ্যে এটি নষ্ট করি।
sudo mdadm --stop /dev/md100
sudo mdadm --misc --zero-superblock /dev/loop0
sudo mdadm --misc --zero-superblock /dev/loop1
অসম আকারযুক্ত ডিভাইসগুলি থেকে একটি রেড অ্যারে তৈরি করা
এবার আমরা ছোট ব্লক ডিভাইসটি ব্যবহার করব।
sudo mdadm --create -e 1.2 -n 2 -l 1 /dev/md100 /dev/loop0 /dev/loop2
mdadm: largest drive (/dev/loop0) exceeds size (101248K) by more than 1%
Continue creating array? y
mdadm: array /dev/md100 started.
ঠিক আছে, আমরা সতর্ক হয়েছি, তবে অ্যারে তৈরি হয়েছিল। এর আকারটি যাচাই করা যাক:
sudo grep md100 /proc/partitions
9 100 101248 md100
আমরা এখানে যা পাই তা 101,248 টি ব্লক। 101248 + 128 = 101376 = 99 × 1024. ব্যবহারযোগ্য স্থান হ'ল ক্ষুদ্রতম ডিভাইসের (প্লাস 128 কে RAID মেটাডেটা)। আমাদের শেষ পরীক্ষার জন্য আসুন এটি আবার নামিয়ে আনুন:
sudo mdadm --stop /dev/md100
sudo mdadm --misc --zero-superblock /dev/loop0
sudo mdadm --misc --zero-superblock /dev/loop2
এবং শেষ অবধি: একটি চলমান অ্যারেতে একটি ছোট ডিভাইস যুক্ত করা
প্রথমে 100 মিটার ডিস্কের মধ্যে একটি দিয়ে একটি RAID1 অ্যারে তৈরি করা যাক। অ্যারে অবনমিত হবে, কিন্তু আমরা সত্যিই যত্ন নিই না। আমরা শুধু একটি শুরু অ্যারে চাই। missing
কিওয়ার্ড একটি স্থানধারক বলছেন যে 'আমি, এখনো আপনার জন্য একটি ডিভাইস নেই এখন তিনি অ্যারের শুরু করা এবং আমি পরে একটি যোগ করব।
sudo mdadm --create -e 1.2 -n 2 -l 1 /dev/md100 /dev/loop0 missing
আবার, আকারটি যাচাই করা যাক:
sudo grep md100 /proc/partitions
9 100 102272 md100
নিশ্চিতভাবেই, এটি 102400 ব্লকের 128 কে সংক্ষিপ্ত। ছোট ডিস্ক যুক্ত করা হচ্ছে:
sudo mdadm --add /dev/md100 /dev/loop2
mdadm: /dev/loop2 not large enough to join array
পরিস্ফুটন! এটি আমাদের দেয় না এবং ত্রুটিটি খুব স্পষ্ট।