ঠিক আছে - আপনার সমস্যা সম্পর্কে আমাকে কিছুটা ত্রুটিযুক্ত করেছিল, তাই আশা করা উচিত এমন আচরণে ডুব দেওয়ার জন্য আমি একটি ভিএম চালিত করেছি। আমি এক মিনিটের মধ্যে যা আমাকে বাগড করেছিলাম তা পেয়ে যাব; প্রথমে আমাকে এটি বলতে দাও:
কিছু চেষ্টা করার আগে এই ড্রাইভগুলির ব্যাকআপ দিন !!
রিসাইকটি যা করেছে তার চেয়ে বেশি আপনি ইতিমধ্যে ক্ষতি করেছেন; আপনি যখন বলেছিলেন তখন কী বোঝাতে চেয়েছিলেন তা কি আপনি স্পষ্ট করতে পারেন:
পরামর্শ অনুসারে আমি সুপারব্লকগুলি পরিষ্কার করেছি এবং অ্যারে --assume- ক্লিন অপশন দিয়ে পুনরায় তৈরি করেছি তবে কোনও ভাগ্য নেই।
আপনি যদি একটি দৌড়ে mdadm --misc --zero-superblock
, তবে আপনার ভাল হওয়া উচিত।
যাইহোক, কিছু নতুন ডিস্ক আপকে ফাঁকি ফেলুন এবং কিছু করার আগে এগুলির সঠিক বর্তমান চিত্রগুলি দখল করুন যা এই ডিস্কগুলিতে আরও কোনও লেখার কাজ করতে পারে।
dd if=/dev/sdd of=/path/to/store/sdd.img
এটি বলা হচ্ছে .. দেখে মনে হচ্ছে যে এই জিনিসগুলিতে সঞ্চিত ডেটা বোকামিযুক্ত সংলাপগুলিতে মজাদারভাবে স্থিতিস্থাপক। পড়ুন, আশা আছে, এবং এই দিনটি আমি উত্তর দৈর্ঘ্যের সীমাতে পৌঁছেছি।
সেরা কেস সিনারিও
আপনার দৃশ্যটি পুনরায় তৈরি করতে আমি একটি ভিএম একসাথে ছুড়েছি। ড্রাইভগুলি মাত্র 100 মেগাবাইট তাই আমি প্রতিটি রিসাইঙ্কের জন্য চিরকালের জন্য অপেক্ষা করব না, তবে এটি অন্যথায় খুব সঠিকভাবে উপস্থাপনা হওয়া উচিত।
অ্যারে যতটা সম্ভব জেনারেটাল এবং ডিফল্ট হিসাবে তৈরি করুন - 512 কে খণ্ড, বাম-প্রতিসাম্য বিন্যাস, চিঠির ক্রমে ডিস্ক .. বিশেষ কিছু নয়।
root@test:~# mdadm --create /dev/md0 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
এ পর্যন্ত সব ঠিকই; আসুন একটি ফাইল সিস্টেম তৈরি করি এবং এটিতে কিছু ডেটা রাখি।
root@test:~# mkfs.ext4 /dev/md0
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=512 blocks, Stripe width=1024 blocks
51000 inodes, 203776 blocks
10188 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root@test:~# mkdir /mnt/raid5
root@test:~# mount /dev/md0 /mnt/raid5
root@test:~# echo "data" > /mnt/raid5/datafile
root@test:~# dd if=/dev/urandom of=/mnt/raid5/randomdata count=10000
10000+0 records in
10000+0 records out
5120000 bytes (5.1 MB) copied, 0.706526 s, 7.2 MB/s
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
ঠিক আছে. আমরা এতে একটি ফাইল সিস্টেম এবং কিছু ডেটা পেয়েছি ("ডেটা" ইন datafile
, এবং সেই SHA1 হ্যাশ সহ 5MB মূল্যবান এলোমেলো ডেটা randomdata
); আসুন দেখুন আমরা যখন আবার তৈরি করি তখন কী ঘটে।
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 21:07:06 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 21:07:06 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 21:07:06 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[2] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
এই ক্ষুদ্র ডিস্কগুলির সাথে পুনরায় সংযোগটি খুব দ্রুত শেষ হয়েছে, তবে এটি ঘটেছে। সুতরাং এখানে যা আমাকে আগে থেকে বাগডিং করছিল; আপনার fdisk -l
আউটপুট md
ডিভাইসে কোনও পার্টিশন টেবিল না থাকা কোনও সমস্যা নয়, এটি প্রত্যাশিত। আপনার ফাইল সিস্টেমটি কোনও পার্টিশন টেবিল ছাড়াই জাল ব্লক ডিভাইসে সরাসরি বসবাস করে।
root@test:~# fdisk -l
...
Disk /dev/md1: 208 MB, 208666624 bytes
2 heads, 4 sectors/track, 50944 cylinders, total 407552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
হ্যাঁ, কোনও পার্টিশন টেবিল নেই। কিন্তু ...
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
পুরোপুরি বৈধ ফাইল সিস্টেম, একটি পুনরায় সংযোগের পরে। সুতরাং এটি ভাল; আসুন আমাদের ডেটা ফাইলগুলি পরীক্ষা করে দেখুন:
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
সলিড - কোনও ডেটা দুর্নীতি নেই! তবে এটি ঠিক একই সেটিংস সহ, সুতরাং দুটি RAID গ্রুপের মধ্যে আলাদাভাবে কোনও ম্যাপ করা হয়নি। আমরা এটি ভাঙার চেষ্টা করার আগে এই জিনিসটি নামিয়ে দেওয়া যাক।
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
একটি পদক্ষেপ ফিরে
আমরা এটি ভাঙার চেষ্টা করার আগে, এটি কেন ভাঙ্গা কঠিন তা নিয়ে কথা বলি। RAID 5 প্যারিটি ব্লক ব্যবহার করে কাজ করে যা অ্যারের প্রতিটি অন্যান্য ডিস্কে ব্লকের মতো একই আকারকে একটি অঞ্চলকে সুরক্ষিত করে। প্যারিটি কেবল একটি নির্দিষ্ট ডিস্কে নয়, এটি সাধারণ ক্রিয়াকলাপের ডিস্কগুলিতে আরও ভালভাবে পড়ার লোড আউট করার জন্য এটি ডিস্কের চারপাশে সমানভাবে ঘোরানো হয়।
প্যারিটি গণনা করার জন্য এক্সওআর অপারেশনটি দেখতে এরকম দেখাচ্ছে:
DISK1 DISK2 DISK3 DISK4 PARITY
1 0 1 1 = 1
0 0 1 1 = 0
1 1 1 1 = 0
সুতরাং, ডিস্কগুলির মধ্যে সমতা ছড়িয়ে পড়ে।
DISK1 DISK2 DISK3 DISK4 DISK5
DATA DATA DATA DATA PARITY
PARITY DATA DATA DATA DATA
DATA PARITY DATA DATA DATA
একটি মৃত বা অনুপস্থিত ডিস্ক প্রতিস্থাপনের সময় সাধারণত একটি পুনরায় সংযোগ করা হয়; এটি mdadm create
নিশ্চিত করার জন্যও করা হয়েছিল যে ডিস্কের ডেটা RAID এর জ্যামিতির মতো দেখতে অনুভূত হয় with সেক্ষেত্রে অ্যারে স্পেকের সর্বশেষ ডিস্কটি হ'ল এটিতে 'সিঙ্ক করা' - অন্যান্য ডিস্কের বিদ্যমান সমস্ত ডেটা সিঙ্কের জন্য ব্যবহৃত হয়।
সুতরাং, 'নতুন' ডিস্কের সমস্ত ডেটা মুছে ফেলা হয়েছে এবং পুনর্নির্মাণ করা হয়েছে; হয় যা হওয়া উচিত ছিল তার জন্য প্যারিটি ব্লকের বাইরে নতুন তথ্য ব্লক তৈরি করা, অথবা অন্যথায় নতুন প্যারিটি ব্লক তৈরি করা।
কী দুর্দান্ত তা হ'ল এই দুটি জিনিসের জন্য প্রক্রিয়াটি হুবহু: বাকি ডিস্কগুলির ডেটা জুড়ে একটি এক্সওআর অপারেশন। এই ক্ষেত্রে পুনরায় সংযোগ প্রক্রিয়াটির লেআউটে থাকতে পারে একটি নির্দিষ্ট ব্লক প্যারিটি ব্লক হওয়া উচিত এবং মনে হয় এটি একটি নতুন প্যারিটি ব্লক তৈরি করছে, যখন বাস্তবে এটি পুরাতন ডেটা ব্লকটি পুনরায় তৈরি করে। এমনকি যদি এটি মনে করে যে এটি এটি তৈরি করছে :
DISK1 DISK2 DISK3 DISK4 DISK5
PARITY DATA DATA DATA DATA
DATA PARITY DATA DATA DATA
DATA DATA PARITY DATA DATA
... এটি কেবল DISK5
উপরের লেআউটটি থেকে পুনর্নির্মাণ করা হতে পারে ।
সুতরাং, অ্যারের বিল্টটি ভুল হয়ে থাকলেও তথ্যের পক্ষে ধারাবাহিক থাকা সম্ভব।
কাজের মধ্যে একটি বানর নিক্ষেপ
(একটি রেঞ্চ নয়; পুরো বানর)
পরীক্ষা 1:
আসুন ভুল ক্রমে অ্যারে করা যাক! sdc
তাহলে sdd
, তারপর sdb
..
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sdb1
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:06:34 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:06:34 2012
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:06:34 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdb1[3] sdd1[1] sdc1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
ঠিক আছে, সব ঠিক আছে। আমাদের কি ফাইল সিস্টেম আছে?
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/md1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
নাঃ! তা কেন? কারণ ডেটা সব আছে, এটি ভুল ক্রমে; যা একবার A এর 512KB ছিল, তারপরে B, A, B এর 512KB, এবং আরও অনেক কিছু, এখন B, A, B, A. এ স্থানান্তরিত হয়েছে ডিস্কটি এখন ফাইল-সিস্টেম চেকারের কাছে জিব্বের মতো দেখাচ্ছে, এটি চলবে না। এর আউটপুট mdadm --misc -D /dev/md1
আমাদের আরও বিশদ দেয়; দেখে মনে হচ্ছে:
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
3 8 17 2 active sync /dev/sdb1
কখন এটি দেখতে হবে:
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
সুতরাং, এটি সব ভাল এবং ভাল। আমরা এবার নতুন প্যারিটি ব্লক সহ পুরো ব্লক ডেটা ব্লককে ওভাররাইট করেছি। এখনই সঠিক ক্রম দিয়ে পুনরায় তৈরি করুন:
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:11:08 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:11:08 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:11:08 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
ঝরঝরে, এখনও একটি ফাইল সিস্টেম আছে! তবুও ডেটা পেলেন?
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
সফল!
পরীক্ষা 2
ঠিক আছে, আসুন মাপের আকারটি পরিবর্তন করে দেখি যে এটি আমাদের কিছুটা দুর্বলতা পায় কিনা।
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=64 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:19 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:19 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:19 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/md1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
হ্যাঁ, হ্যাঁ, এটি সেট আপ করার পরে এটি হোস্ট হয়। কিন্তু, আমরা কি পুনরুদ্ধার করতে পারি?
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:51 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:51 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:51 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
সাফল্য, আবার!
পরীক্ষা 3
এটিই আমি ভেবেছিলাম ডেটা নিশ্চিতরূপে মেরে ফেলব - আসুন একটি ভিন্ন বিন্যাস অ্যালগরিদম করি!
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --layout=right-asymmetric --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:32:34 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:32:34 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:32:34 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 1 [3/3] [UUU]
unused devices: <none>
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
Superblock has an invalid journal (inode 8).
ভীতিজনক এবং খারাপ - এটি এটি কিছু খুঁজে পেয়েছে এবং কিছু ফিক্সিং করতে চায় বলে মনে করে! Ctrl+ C!
Clear<y>? cancelled!
fsck.ext4: Illegal inode number while checking ext3 journal for /dev/md1
ঠিক আছে, সঙ্কট এড়ানো গেছে। আসুন দেখা যাক ভুল লেআউটের সাথে পুনরায় সমন্বয়ের পরে ডেটাটি এখনও অক্ষত আছে:
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:33:02 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:33:02 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:33:02 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
সফল!
পরীক্ষা 4
আসুন আমরা কেবল প্রমাণ করি যে সুপারব্লক শূন্যকরণ ক্ষতিকারক বাস্তব তাড়াতাড়ি নয়:
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
হ্যাঁ, কোনও বড় কথা নয়।
পরীক্ষা 5
আমরা যা পেয়েছি তা কেবল ফেলে দিন। সমস্ত 4 পূর্ববর্তী পরীক্ষা, একত্রিত।
- ভুল ডিভাইসের অর্ডার
- ভুল খণ্ডের আকার
- ভুল লেআউট অ্যালগরিদম
- জিরোড সুপারব্লকস (আমরা উভয় সৃষ্টির মধ্যে এটি করব)
অনওয়ার্ড!
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
root@test:~# mdadm --create /dev/md1 --chunk=64 --level=5 --raid-devices=3 --layout=right-symmetric /dev/sdc1 /dev/sdd1 /dev/sdb1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdb1[3] sdd1[1] sdc1[0]
204672 blocks super 1.2 level 5, 64k chunk, algorithm 3 [3/3] [UUU]
unused devices: <none>
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/md1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
রায়?
root@test:~# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 13/51000 files, 17085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
কি দারুন.
সুতরাং, দেখে মনে হচ্ছে যে এগুলির কোনওটিই কোনওভাবেই ডেটা ক্ষতিগ্রস্থ করে না। এই ফলাফলটি দেখে আমি বেশ অবাক হয়েছিলাম, অকপটে; আমি শঙ্কিত আকারের পরিবর্তনের উপর ডেটা ক্ষতির মাঝারি সমস্যা এবং লেআউট পরিবর্তনের বিষয়ে কিছু সুনির্দিষ্ট ক্ষতির প্রত্যাশা করেছি। আমি আজ কিছু শিখেছি।
তো .. আমি কীভাবে আমার ডেটা পাব ??
পুরানো সিস্টেম সম্পর্কে আপনার যতটা তথ্য আপনার পক্ষে চূড়ান্ত সহায়ক। আপনি যদি ফাইল সিস্টেমের ধরণটি জানেন তবে /proc/mdstat
ড্রাইভ ক্রম, অ্যালগরিদম, খণ্ড আকার এবং মেটাডেটা সংস্করণ সম্পর্কিত তথ্য সহ আপনার যদি কোনও পুরানো কপি থাকে । আপনার কি এমডডেমের ইমেল সতর্কতা সেট আপ আছে? যদি তা হয় তবে কোনও পুরানো সন্ধান করুন; যদি না, চেক /var/spool/mail/root
। ~/.bash_history
আপনার আসল বিল্ডটি সেখানে রয়েছে কিনা তা পরীক্ষা করে দেখুন।
সুতরাং, আপনার করণীয়গুলির তালিকা:
dd
কিছু করার আগে ডিস্কগুলির ব্যাকআপ দিন !!
fsck
বর্তমান, সক্রিয় এমডিতে চেষ্টা করুন - আপনি ঠিক আগের মতো একই ক্রমে তৈরি হতে পারে। আপনি যদি ফাইল সিস্টেমের প্রকারটি জানেন তবে এটি সহায়ক; যে নির্দিষ্ট fsck
সরঞ্জাম ব্যবহার করুন । যদি কোনও সরঞ্জাম কোনও কিছু ঠিক করার প্রস্তাব দেয়, তবে আপনি নিশ্চিত হন যে তারা আসলেই কার্যকর ফাইল সিস্টেমটি খুঁজে পেয়েছে! যদি আপনার জন্য কোনও fsck
কিছু ঠিক করার প্রস্তাব দেওয়া হয় তবে এটি আসলে সহায়তা করছে বা কেবল ডেটা নাক করে দিচ্ছে কিনা তা জানতে কোনও মন্তব্য করতে দ্বিধা করবেন না।
- বিভিন্ন পরামিতি দিয়ে অ্যারে তৈরি করার চেষ্টা করুন। আপনার যদি কোনও পুরানো থাকে
/proc/mdstat
তবে আপনি যা দেখায় তা কেবল নকল করতে পারেন; যদি তা না হয়, তবে আপনি অন্ধকারে রয়েছেন - বিভিন্ন ড্রাইভের আদেশের সব চেষ্টা করা যুক্তিসঙ্গত, তবে প্রতিটি সম্ভাব্য অর্ডারের সাথে প্রতিটি সম্ভাব্য আকার পরীক্ষা করা ব্যর্থ f প্রত্যেকের জন্য, fsck
এটি প্রতিশ্রুতিবদ্ধ কিছু পান কিনা তা দেখার জন্য।
সুতরাং, যে। উপন্যাসটির জন্য দুঃখিত, আপনার যদি কোনও প্রশ্ন থাকে তবে নির্দ্বিধায় মন্তব্য করুন, এবং শুভকামনা!
পাদটীকা: 22 হাজার অক্ষরের কম; দৈর্ঘ্যের সীমা 8k + লজ্জা