আমি কি একটি ডিভাইস সহ একটি সফ্টওয়্যার RAID 1 তৈরি করতে পারি?


20

আমার একটি সিঙ্গল ডিস্ক রয়েছে যা আমি একটি আয়না তৈরি করতে চাই; আসুন এই ডিস্ক কল sda। আমি সবেমাত্র একটি অনুরূপ আকারের ডিস্ক কিনেছি, যা আমরা কল করতে পারি sdbsdaএবং sdbএকটি ভাগ নামের sda1এবং sdb1যথাক্রমে।

কোনও অভিযান তৈরি করার সময়, আমি আমার sdaপরিষ্কারটি মুছতে এবং আবার শুরু করতে চাই না, আমি কেবল এটি দিয়ে মিরর করা শুরু করতে চাই sdb। আমার চিন্তার প্রশিক্ষণটি হ'ল:

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=1 /dev/sda1

... sdbডিস্ক ছাড়াই অ্যারে তৈরি করতে , তারপরে এমন কিছু চালান (আমি নীচের কমান্ডটি উচ্চস্বরে চিন্তা করছি, কারণ আমি কীভাবে এই পদক্ষেপটি অর্জন করব তা নিশ্চিত নই)

mdadm /dev/md0 --add /dev/sdb1

নোটটি sdb1একইভাবে ফরম্যাট করা বলে ধরে নেওয়া হয়sda1

এটা কি সম্ভব?


হ্যা, তুমি পারো. এটি যেমন সহজ সরল নয় --add, আপনাকে সতর্ক হওয়া দরকার তবে এটি খুব জটিল নয়। দেখুন কিভাবে উবুন্টু ডিস্ক মিরর সেটআপ করবেন? (নতুন নিয়মের কারণে আমি সেই প্রশ্নটির সদৃশ হিসাবে প্রস্তাব দিতে পারি না)
গিলস '

উত্তর:


28

শিরোনামে প্রশ্নের সহজ উত্তর হ'ল "হ্যাঁ"। তবে আপনি যা করতে চান তা হল পরবর্তী পদক্ষেপ, যা বিদ্যমান ডেটা মিরর করে।

বিদ্যমান ডিস্ককে রূপান্তর করা সম্ভব, তবে মেটাডেটার অবস্থানের কারণে এটি ঝুঁকিপূর্ণ, যেমন উল্লেখ করা হয়েছে। নতুন ডিস্কের সাহায্যে খালি (ভাঙা) আয়না তৈরি করা এবং এটিতে বিদ্যমান ডেটা অনুলিপি করা আরও ভাল। তারপরে, যদি এটি কাজ না করে, আপনি কেবল অ-মিরর করা মূলটিতে ফিরে যান।

প্রথমে একটি অনুপস্থিত ড্রাইভের /dev/sdb1সাহায্যে নতুন হিসাবে /dev/md0সূচনা করুন এবং ফাইল সিস্টেমটি আরম্ভ করুন (আমি ext3 ধরে নিচ্ছি, তবে পছন্দটি আপনার)

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing
mkfs -text3 /dev/md0

এখন, /dev/sda1সম্ভবত আপনার রুট ফাইল সিস্টেমটি ( /) তাই সুরক্ষার জন্য আপনার লাইভ সিডি, রেসকিউ ডিস্ক বা অন্যান্য বুটযোগ্য সিস্টেম থেকে পরবর্তী পদক্ষেপটি করা উচিত যা উভয়ই অ্যাক্সেস করতে পারে /dev/sda1এবং /dev/md0যদিও আমি একক ব্যবহারকারীর মোডে ফেলে সফলভাবে এটি করেছি।

উপর ফাইলসিস্টেম সমগ্র সামগ্রী অনুলিপি /dev/sda1করতে /dev/md0। উদাহরণ স্বরূপ:

mount /dev/sda1 /mnt/a       # only do this if /dev/sda1 isn't mounted as root
mount /dev/md0 /mnt/b
cd /mnt/a                    # or "cd /" if it's the root filesystem
cp -dpRxv . /mnt/b

সম্পাদনা করুন /etc/fstabবা অন্যথায় নিশ্চিত করুন যে পরবর্তী বুটে /dev/md0পরিবর্তে মাউন্ট করা হয়েছে /dev/sda1। আপনার সিস্টেমটি সম্ভবত বুট থেকে সেট হয়ে গেছে /dev/sda1এবং বুট পরামিতি সম্ভবত এটি রুট ডিভাইস হিসাবে নির্দিষ্ট করে, তাই পুনরায় বুট করার সময় আপনাকে ম্যানুয়ালি এটিকে পরিবর্তন করা উচিত যাতে রুটটি /dev/md0(ধরে /dev/sda1নেওয়া হয় যে রুট ছিল)। পুনরায় বুট করার পরে, পরীক্ষা করুন যে /dev/md0এখন মাউন্ট করা হয়েছে ( df) এবং এটি একটি অবনমিত আয়না ( cat /proc/mdstat) হিসাবে চলছে । যোগ /dev/sda1অ্যারের হবে:

mdadm /dev/md0 --add /dev/sda1

যেহেতু পুনর্নির্মাণটি ওভাররাইট হবে /dev/sda1, আপনি কোন মেটাডেটা সংস্করণটি অপ্রাসঙ্গিক। বড় আকারের পরিবর্তনগুলি করার সময় সর্বদা সর্বদা একটি পূর্ণ ব্যাকআপ নিন (সম্ভব হলে) বা কমপক্ষে নিশ্চিত করুন যে যা কিছু পুনরায় তৈরি করা যায় না তা নিরাপদ।

/dev/md0রুট হিসাবে ব্যবহার করতে আপনাকে বুট কনফিগারেশনটি পুনরায় তৈরি করতে হবে (যদি /dev/sda1রুট ছিল) এবং সম্ভবত সর্বদা শুরু mdadm.confহয়েছে তা নিশ্চিত করার জন্য পুনরায় জেনারেট করতে হবে /dev/md0


আমার যা প্রয়োজন ঠিক তা নিখুঁত করুন: ডি
হোয়ামি

2
cpফাইল সিস্টেমগুলি অনুলিপি করতে ব্যবহার করবেন না , আপনি হার্ড লিঙ্কগুলি, বর্ধিত বৈশিষ্ট্যগুলি ... ব্যবহার করুন tarবা rsyncসঠিক বিকল্পগুলি সহ কিছু জিনিস মিস করবেন । একটি লাইভ সিডি বুট করার সময়, সাবধান করুন যে ইউআইডি-ব্যবহারকারীর ম্যাপিংটি আলাদা ( এক্সটেক্স ফাইল সিস্টেমে ক্লোনিংয়ের জন্য ক্লোন 2 এফও দেখুন।
স্টাফেন চেজেলাস

1
cpসংরক্ষণ লিঙ্কগুলি (-ড), মোড, মালিকানা এবং টাইমস্ট্যাম্পগুলি (-p) হ্যান্ডেল করার বিকল্পগুলি , এটি পুনরাবৃত্তভাবে (-আর) করা এবং একটি ফাইল সিস্টেমে (-x) থাকা, তবে আমি মনে করি আপনি হার্ড লিঙ্ক এবং প্রসারিত সম্পর্কে সঠিক হতে পারেন বৈশিষ্ট্যাবলী।
স্টারনামার

rsync -aH --delete /mnt/olddisk/ /mnt/newarray/একটি ভাল বিকল্প। -vih --progressআপনি সত্যিই এটি কী করছে তা দেখতে চাইলে যুক্ত করুন ।
রডলফবাইকার

4

অবশ্যই, আপনি এটি তৈরি করতে পারেন যা উল্লেখ করে যে দ্বিতীয় ডিস্কটি বর্তমানে রয়েছে missing:

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 missing /dev/sda1

মিষ্টি ধন্যবাদ, আমি সম্ভবত এখানে ওসিডি হচ্ছি, তবে / ডি / এসডিএ-এর আগে আপনি অনুপস্থিতকে যুক্ত করার কোনও কারণ আছে কি, আদেশটি গুরুত্বপূর্ণ?
হোয়ামি

আমি মনে করি অর্ডারটি কোনও ব্যাপার নয়।
eppesuig

3
যত্নবান! --metadata = 1.2 (নতুন ডিফল্ট) সহ, RAID মেটাডেটা (1MB) শুরুতে সন্নিবেশ করা হবে (সেখানে সামগ্রীটি ওভাররাইড করে)। এবং এমডি অ্যারের সূচনাটি 1MB / dev / sda1 এর মধ্যে শুরু হবে (/ dev / md0 হবে / dev / sda1 এর চেয়ে 1MB কম)। মেটাডেটা = 0.9 (পুরানো ডিফল্ট) দিয়ে, সেখানে কী রয়েছে তা ওভাররাইড করে শেষে মেটাটাটা (k৪ কেবি) sertedোকানো হবে। সুতরাং --মেডাটাটা = 0.9 ব্যবহার করুন এবং প্রথমে এফএসটির আকার পরিবর্তন করুন। আপনি যা করেন না কেন আগেই একটি ব্যাকআপ নিন।
স্টাফেন চেজেলাস

3

আপনি এটি করতে পারেন। আপনার কিছুটা সতর্ক হওয়া দরকার, তবে এটি বিপজ্জনক নয় - যদি আপনি খুব সাবধান হন যে কোনও কিছুকে ভুল টাইপ না করে এবং এটি কোনও সেটাকে সেটআপে ফেলে না।

আমি লাইভ সিস্টেমে যে কোনও ম্যানিপুলেশন না করার পরামর্শ দিচ্ছি। এটি কিছু ক্ষেত্রে সম্ভব তবে অতিরিক্ত যত্ন প্রয়োজন। লাইভসিডি / লাইভ ইউএসবি যেমন পার্টড বা সিস্টেমরেসকিউসিডি থেকে বুট করুন ।

প্রথমত, এমড্রাইড মেটাডেটা (সুপারব্লক) এর জন্য জায়গা তৈরি করতে আপনাকে কিছুটা পরিমাণ সঙ্কুচিত করতে হবে। বেশ কয়েকটি মেটাডেটা ফর্ম্যাট রয়েছে , আপনার অবশ্যই একটি এমন ব্যবহার করতে হবে যা ডিস্কের শেষে মেটাডেটা রাখে। (কিছু সেটআপে, আপনার শুরুতে সুপারব্লক রাখার জন্য পর্যাপ্ত জায়গা থাকতে পারে তবে এটি আরও জটিল এবং ঝুঁকির ঝুঁকির মধ্যে রয়েছে তাই আমি এতে প্রবেশ করি))

সুপারব্লকের জন্য জায়গা তৈরি করতে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে ব্লক ডিভাইস থেকে শেষ 128 কেবি অব্যবহৃত রয়েছে। সুতরাং আপনি ফাইল সিস্টেমটি সঙ্কুচিত করতে হবে /dev/sda1। যদি এটি একটি এক্সট 2 / এক্সট3 / এক্সট 4 ফাইল সিস্টেম হয় tune2fs /dev/sda1তবে resize2fs /dev/sda1 NNNএটির সাথে বর্তমান ফাইল সিস্টেমের আকারটি গ্রহণ করুন , তারপরে এনএনএন যেখানে মাপ বিয়োগ 128 কেবি হবে সেখানে চালান । আপনি পার্টড এর পরিবর্তে এটি করতে পারেন । আপনার যদি একটি এক্সটেন ফাইল সিস্টেম সঙ্কুচিত করতে হয় তবে আপনাকে প্রথমে এটি আনমাউন্ট করতে হবে; একটি বিটিআরএফএস ফাইল সিস্টেম সরাসরি সংকুচিত হতে পারে।

একবার আপনি নিশ্চিত করেছেন যে ব্লক ডিভাইসের সর্বশেষ 128kB নিখরচায়, mdadm --createএকটি RAID-1 ভলিউম তৈরি করতে কল করুন । এটি সুপারব্লকটি বাদ দিয়ে ভলিউমের কোনও অংশ স্পর্শ করে না। প্রাথমিকভাবে, ভলিউমের একটি একক উপাদান থাকবে: অন্য সমস্ত ব্যর্থ হিসাবে সেট করা আছে। আপনাকে অবশ্যই --level=1(বা সমতুল্য -n 1) পাস করতে হবে (এই পদ্ধতিটি কেবল RAID-1 এর জন্য কাজ করে) এবং --metadata=0.9বা --metadata=1.0(ডিফল্ট সুপারব্লক ফর্ম্যাট 1.2 ডিভাইসের শুরুতে সুপারব্লক রাখে, যা ডেটা ওভাররাইট করতে পারে)। --raid-devices( -n) -এর যুক্তিটি হ'ল RAID ভলিউমে উপাদানগুলির (অন্তর্ভুক্ত নিখোঁজ) সংখ্যা।

mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=1.0 /dev/sda1 missing

আপনি এখন অ্যারেটি সক্রিয় করতে এবং অন্যান্য উপাদান যুক্ত করতে পারেন।

mdadm --add /dev/md0 /dev/sdb1

বুটলোডারগুলির জন্য একটি নোট: গ্রুব 2 লিনাক্স র‌্যাড -১ বোঝে এবং এটি থেকে বুট করতে পারে। বুড়ো লোডার যেমন গ্রুব 1 যা RAID বুঝতে পারে না তা মিরর ভলিউমগুলি থেকে স্বচ্ছভাবে পড়তে পারে তবে বুটলোডার ড্রাইভটি যদি ব্যর্থ হয় তবে ড্রাইভটি ব্যর্থ হলে আপনার সিস্টেম বুট করবে না। যদি RAID ভলিউম একটি পার্টিশনে থাকে তবে গ্রাভের বুট সেক্টরটি দুটি ড্রাইভেই ইনস্টল করতে ভুলবেন না।

Backup ব্যাকআপ রয়েছে তা নিশ্চিত হন। "বিপজ্জনক নয়" এর অর্থ "আপনার সম্ভবত তাদের প্রয়োজন হবে না", "আপনার ডেটা জুয়া" নয়।

ডিস্ক মিররিং (RAID-1) কীভাবে সেটআপ করবেন তার থেকে পুনঃ পোস্ট এবং কিছুটা অভিযোজিত

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