Linux софт-RAID - възстановяване на данните
Ще се постарая да бъда съвсем кратък:
Имаме този сървър, който включва:
- дъно с чипсет ServerWorks
- P4 2.4 GHz
- 1x 512 MD DDR ECC
- 2x gigabit LAN
- PCI SCSI контролер (няма нищо закачено на него)
- стандартен двуканален P-ATA дисков контролер на дъното
- вграден допълнителен двуканален P-АТА дисков контролер Sillicon Image (без RAID функция)
- 4 x 250 GB P-ATA Maxtor HDDs
- USB - два порта
- няма FDD конектор, няма SATA, няма и свoбoден PATA конектор
- няма флопи или CD-ROM
Дисковете са свързани изключително странно - два на двата канала на стандартния IDE контролер на дъното, а другите два - на другите два канала на допълнителния Sillicon Image контролер. И четирите диска са Master и са сами на канал. Предполагам, че с двоен кабел(и) бих могъл да закача между един и четири допълнителни диска като Slave устройства на наличните четири канала, но не съм пробвал.
Сървърът се управлява единствено през WEB-интерфейс, който има някои конфигурационни настройки и инструмента, но няма нито един troubleshooting такъв.
Операционната система е GuardianOS - Linux-базирана, затворена, собствена ОС, разработена от Adaptec. Софтуерно е реализиран RAID0 масив между четирите диска за общ обем от близо 1 TB. Целият масив е един единствен volume. Операционната състема по принцип е "невидима", единствената следа от нея е WEB-интерфейсът.
Проблемът е, че масивът се "счупи". И бидейки RAID0, нямам достъп до данните. Случи се по време на работа, точно по обяд, в относително ненатоварено време.
Не знам дали проблемът е хардуерен или софтуерерн, но:
- сърърът си стартира и зарежда
- WEB-интерфейсът рапортува, че:
- физически дисковете са ОК
- масивът също е със статус ОК
- volume-то също показва ОК (даже показва колко място е заето и колко е свободно), но е със статус "not mounted" и съответно няма достъп до данните
- event log показва десетина-петнадесет пъти една и съща грешка - по памет цитирам: I/O error (unrecoverable error) - FS mount failed
От тук си вадя извода, че проблемът е чисто софтуерен и че вероятно става въпрос за грешка по файловата система, нещо, което пречи на ОС да mount-не масива.
От USB CD-ROM мога да заредя ОС. За жалост Hiren's BootCD не тръгва, защото не може да зареди драйвери за USB CD под DOS. Обаче ERD Commander, BartPE, SLAX и Knoppix нямат проблем. С тяхна помощ виждам следната интересна картинка на дисковете (виждат се и четирите физически устройства, всичките имат една и съща структура): общо седем или осем дяла; първо има един 50 MB дял, който изглежда точно като Linux-дистрибуция (вероятно самия GuardianOS); после има един около 250 МБ-ов дял с етикет SWAP, после един-два дяла с размери да речем 5 и 12 MB и мисля, че последният дял на всеки диск е един огромен, около 230 GB primary дял, който обаче никоя ОС не може да отвори.
Предполагам, че тези четири 230 Gb-ови дялове на четирите диска всъщност съставляват масива. Съответно би трябвало да се разглеждат като едно цяло, но никоя от операционните системи, които заредих, не успя да ги "види" като RAID0 масив.
Въпросът ми е: мога ли и как да накарам някоя live Linux дистрибуция (или коя да е ОС) да приеме четирите дяла не поотделно, а заедно като RAID0 масив, с надеждата, че така ще мога да спася част или всички данни.
Re: Linux софт-RAID - възстановяване на данните
Когато заредиш Linux от CD, трябва изрично да асемблираш RAID-а. Покажи ни изхода от fdisk -l за всяко устройство, което е част от RAID-a, за да мислим за разни варианти.
Re: Linux софт-RAID - възстановяване на данните
не рискувай да си доскапеш инфото
раида ти е unmount ( т.е Stripe режима е разкачен и трябва да се закачи)
проблема е как от 4 диска си направил страйп- не беше ли с 4 харда JBOD ( miro + stripe ) ?
за раид масиви и системи в София има един специалист той се казва Самуил Каракашев- а.к.а @Samo от този форум!
Re: Linux софт-RAID - възстановяване на данните
Предполагам си дръпнал нещицата от тук:
http://www.adaptec.com/en-US/support...p_Server_4500/
а може да попогледнеш какви съвети са дали самите Adaptec
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Ghost
Когато заредиш Linux от CD, трябва изрично да асемблираш RAID-а. Покажи ни изхода от fdisk -l за всяко устройство, което е част от RAID-a, за да мислим за разни варианти.
Това е изхода от fdisk -l, както поиска:
Код:
Disk /dev/hda: 251.0 GB, 251000193024 bytes
255 heads, 63 sectors/track, 30515 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2 16041+ 83 Linux
/dev/hda2 3 70 546210 83 Linux
/dev/hda3 71 138 546210 5 Extended
/dev/hda4 139 30250 241873915+ 83 Linux
/dev/hda5 71 104 273104+ 83 Linux
/dev/hda6 105 138 273104+ 83 Linux
Disk /dev/hdc: 251.0 GB, 251000193024 bytes
255 heads, 63 sectors/track, 30515 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 2 16041+ 83 Linux
/dev/hdc2 3 70 546210 83 Linux
/dev/hdc3 71 138 546210 5 Extended
/dev/hdc4 139 30250 241873915+ 83 Linux
/dev/hdc5 71 104 273104+ 83 Linux
/dev/hdc6 105 138 273104+ 83 Linux
Disk /dev/hde: 251.0 GB, 251000193024 bytes
255 heads, 63 sectors/track, 30515 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hde1 * 1 2 16041+ 83 Linux
/dev/hde2 3 70 546210 83 Linux
/dev/hde3 71 138 546210 5 Extended
/dev/hde4 139 30250 241873915+ 83 Linux
/dev/hde5 71 104 273104+ 83 Linux
/dev/hde6 105 138 273104+ 83 Linux
Disk /dev/hdg: 251.0 GB, 251000193024 bytes
255 heads, 63 sectors/track, 30515 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdg1 * 1 2 16041+ 83 Linux
/dev/hdg2 3 70 546210 83 Linux
/dev/hdg3 71 138 546210 5 Extended
/dev/hdg4 139 30250 241873915+ 83 Linux
/dev/hdg5 71 104 273104+ 83 Linux
/dev/hdg6 105 138 273104+ 83 Linux
А това е от sfdisk -l -x, ако ти дава повече информация:
Код:
root@slax:~# sfdisk -l -x
Disk /dev/hda: 30515 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hda1 * 0+ 1 2- 16041+ 83 Linux
/dev/hda2 2 69 68 546210 83 Linux
/dev/hda3 70 137 68 546210 5 Extended
/dev/hda4 138 30249- 30112- 241873915+ 83 Linux
/dev/hda5 70+ 103 34- 273104+ 83 Linux
- 104 137 34 273105 5 Extended
- 70 69 0 0 0 Empty
- 70 69 0 0 0 Empty
/dev/hda6 104+ 137 34- 273104+ 83 Linux
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
Disk /dev/hdc: 30515 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hdc1 * 0+ 1 2- 16041+ 83 Linux
/dev/hdc2 2 69 68 546210 83 Linux
/dev/hdc3 70 137 68 546210 5 Extended
/dev/hdc4 138 30249- 30112- 241873915+ 83 Linux
/dev/hdc5 70+ 103 34- 273104+ 83 Linux
- 104 137 34 273105 5 Extended
- 70 69 0 0 0 Empty
- 70 69 0 0 0 Empty
/dev/hdc6 104+ 137 34- 273104+ 83 Linux
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
Disk /dev/hde: 30515 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hde1 * 0+ 1 2- 16041+ 83 Linux
/dev/hde2 2 69 68 546210 83 Linux
/dev/hde3 70 137 68 546210 5 Extended
/dev/hde4 138 30249- 30112- 241873915+ 83 Linux
/dev/hde5 70+ 103 34- 273104+ 83 Linux
- 104 137 34 273105 5 Extended
- 70 69 0 0 0 Empty
- 70 69 0 0 0 Empty
/dev/hde6 104+ 137 34- 273104+ 83 Linux
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
Disk /dev/hdg: 30515 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hdg1 * 0+ 1 2- 16041+ 83 Linux
/dev/hdg2 2 69 68 546210 83 Linux
/dev/hdg3 70 137 68 546210 5 Extended
/dev/hdg4 138 30249- 30112- 241873915+ 83 Linux
/dev/hdg5 70+ 103 34- 273104+ 83 Linux
- 104 137 34 273105 5 Extended
- 70 69 0 0 0 Empty
- 70 69 0 0 0 Empty
/dev/hdg6 104+ 137 34- 273104+ 83 Linux
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
- 104 103 0 0 0 Empty
root@slax:~#
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Mr.TECHNO
за раид масиви и системи в София има един специалист той се казва Самуил Каракашев- а.к.а @Samo от този форум!
Ще го помоля да погледне тази тема и да даде съвет, ако може. Но основният проблем е, че не съм в България...
Цитат:
Първоначално публикувано от Black Adder
Съпорта на Adaptec не е вариант (засега), защото навремето мениджърът на отдел "Маркетинг", на който принадлежи сървъра, го е купил на своя глава, със своя бюджет, въпреки несъгласието на моя шеф (ИТ мениджъра), въпреки, че е единствения такъв сървър в цялата фирма и че нямаме нито един Linux специалист, а и на всичкото отгоре го е взел само с една година поддръжка, която отдавна е изтекла. Сега се намесва фирмената политика малко и двата отдела не могат да се разберат кой ще плати. А Adaptec искат да се плати дори само да ни изслушат какъв е проблема, без да гарантират, че могат да помогнат.
Така че, аз лично оставам с идеята, че данните не са толкова важни, щом се ослушват за няколкостотин долара. Така или иначе обаче, мен ме натовариха със задачата да видя какво може да се направи.
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Ghost
Когато заредиш Linux от CD, трябва изрично да асемблираш RAID-а. Покажи ни изхода от fdisk -l за всяко устройство, което е част от RAID-a, за да мислим за разни варианти.
В hda/etc (на самия GuardianOS) има следния файл с име mdctl.conf, който според мен има нещо общо с RAID-a, може да ти е от помощ:
Код:
# This file build for Platform TYPHOON
array /dev/md0 super-minor=0
array /dev/md1 super-minor=1
array /dev/md2 super-minor=2
array /dev/md3 super-minor=3
array /dev/md4 super-minor=4
array /dev/md5 super-minor=5
array /dev/md6 super-minor=6
array /dev/md7 super-minor=7
array /dev/md8 super-minor=8
array /dev/md9 super-minor=9
array /dev/md10 super-minor=10
array /dev/md11 super-minor=11
array /dev/md12 super-minor=12
array /dev/md13 super-minor=13
array /dev/md14 super-minor=14
array /dev/md15 super-minor=15
array /dev/md16 super-minor=16
array /dev/md17 super-minor=17
array /dev/md18 super-minor=18
array /dev/md19 super-minor=19
array /dev/md20 super-minor=20
array /dev/md21 super-minor=21
array /dev/md22 super-minor=22
array /dev/md23 super-minor=23
array /dev/md24 super-minor=24
array /dev/md25 super-minor=25
array /dev/md26 super-minor=26
array /dev/md27 super-minor=27
array /dev/md28 super-minor=28
array /dev/md29 super-minor=29
array /dev/md30 super-minor=30
array /dev/md31 super-minor=31
array /dev/md100root super-minor=100
array /dev/md101swap super-minor=101
device /dev/hda2
device /dev/hdc2
device /dev/hde2
device /dev/hdg2
device /dev/hda5
device /dev/hdc5
device /dev/hde5
device /dev/hdg5
device /dev/hda4
device /dev/hdc4
device /dev/hde4
device /dev/hdg4
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Ghost
Когато заредиш Linux от CD, трябва изрично да асемблираш RAID-а. Покажи ни изхода от fdisk -l за всяко устройство, което е част от RAID-a, за да мислим за разни варианти.
Освен това командата mdadm -E /dev/hdaX даде следния резултат:
Код:
mdadm: No md superblock detected on /dev/hda1.
root@slax:~# mdadm -E /dev/hda2
/dev/hda2:
Magic : a92b4efc
Version : 00.91.00
UUID : e9f6faf8:ef78bad2:c804cb54:df4fbf47
Creation Time : Tue Dec 7 09:59:53 2004
Raid Level : raid1
Device Size : 546112 (533.40 MiB 559.22 MB)
Array Size : 546112 (533.40 MiB 559.22 MB)
Raid Devices : 4
Total Devices : 7
Preferred Minor : 100
Reshape pos'n : 0
New Level : raid0
New Chunksize : 0
Update Time : Thu Apr 12 22:31:06 2007
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 3
Spare Devices : 0
Checksum : b1cc992d - correct
Events : 0.98
Number Major Minor RaidDevice State
this 0 3 2 0 active sync /dev/hda2
0 0 3 2 0 active sync /dev/hda2
1 1 22 2 1 active sync /dev/hdc2
2 2 34 2 2 active sync /dev/hdg2
3 3 33 2 3 active sync /dev/hde2
root@slax:~# mdadm -E /dev/hda3
mdadm: No md superblock detected on /dev/hda3.
root@slax:~# mdadm -E /dev/hda4
/dev/hda4:
Magic : a92b4efc
Version : 00.91.00
UUID : 54e47de8:3ed8cf9d:2447a3b4:ac502bcc
Creation Time : Mon Apr 11 18:07:50 2005
Raid Level : raid0
Device Size : 241873792 (230.67 GiB 247.68 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Reshape pos'n : 0
New Chunksize : 0
Update Time : Thu Apr 12 22:31:04 2007
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Checksum : a46590e7 - correct
Events : 0.61
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 3 4 0 active sync /dev/hda4
0 0 3 4 0 active sync /dev/hda4
1 1 22 4 1 active sync /dev/hdc4
2 2 33 4 2 active sync /dev/hde4
3 3 34 4 3 active sync /dev/hdg4
root@slax:~# mdadm -E /dev/hda5
/dev/hda5:
Magic : a92b4efc
Version : 00.91.00
UUID : 60b2c1ec:8e8d282f:4e55e7f5:f23369bf
Creation Time : Tue Dec 7 09:59:53 2004
Raid Level : raid1
Device Size : 273024 (266.67 MiB 279.58 MB)
Array Size : 273024 (266.67 MiB 279.58 MB)
Raid Devices : 4
Total Devices : 7
Preferred Minor : 101
Reshape pos'n : 0
New Level : raid0
New Chunksize : 0
Update Time : Thu Apr 12 22:31:06 2007
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 3
Spare Devices : 0
Checksum : 60cd69e0 - correct
Events : 0.100
Number Major Minor RaidDevice State
this 0 3 5 0 active sync /dev/hda5
0 0 3 5 0 active sync /dev/hda5
1 1 34 5 1 active sync /dev/hdg5
2 2 33 5 2 active sync /dev/hde5
3 3 22 5 3 active sync /dev/hdc5
root@slax:~# mdadm -E /dev/hda6
mdadm: No md superblock detected on /dev/hda6.
root@slax:~#
Интересува ме резултатът от hda4, а именно:
Код:
root@slax:~# mdadm -E /dev/hda4
/dev/hda4:
Magic : a92b4efc
Version : 00.91.00
UUID : 54e47de8:3ed8cf9d:2447a3b4:ac502bcc
Creation Time : Mon Apr 11 18:07:50 2005
Raid Level : raid0
Device Size : 241873792 (230.67 GiB 247.68 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Reshape pos'n : 0
New Chunksize : 0
Update Time : Thu Apr 12 22:31:04 2007
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Checksum : a46590e7 - correct
Events : 0.61
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 3 4 0 active sync /dev/hda4
0 0 3 4 0 active sync /dev/hda4
1 1 22 4 1 active sync /dev/hdc4
2 2 33 4 2 active sync /dev/hde4
3 3 34 4 3 active sync /dev/hdg4
Това е дялът, който ме интересува. Останалите парчета от масива са явно на hdc4, hde4 и hdg4. Командата mdadm -E на тези дялове показва абсолютно същата информация, с изключение на checksum.
Този масив искам да възстановя. Информацията тук показва, че масивът е в clean state, checksum е correct, така че мисля е само въпрос на асемблиране и mount-ване. Kакви ще са командите?
Re: Linux софт-RAID - възстановяване на данните
Тук навлизаме в обастта на налучкването, възможно е и да счупиш нещо, за това много внимателно прочети:
1) http://www.die.net/doc/linux/man/man8/mdadm.8.html
2) http://www.die.net/doc/linux/man/man5/mdadm.conf.5.html
3) http://www.die.net/doc/linux/man/man4/md.4.html
4) http://www.faqs.org/docs/Linux-mini/...Raid+LILO.html
След като осмислиш какво си прочел и ако си сигурен, че масивът RAID-0, може да стартираш от Linux CD, което съдържа mdadm и да опиташ:
mdadm --assemble /dev/md/4 /dev/hd{a,c,d,g}4
Това, което ме притеснява е, че sfdisk + fdisk докладват, че дяловете са маркирани "Linux" (Id=83), а, не "Linux raid autodetect" (Id=fd)
Ако командата мине безпроблемно, ще имаш асемблиран /dev/md4, който трябва да монтираш на подходящо място и да провериш дали информацията от този RAID-0 дял е на място. Интересен е моментът с първите дялове от дисковете. Доколкото аз знам, от софтуерен raid-0 не може да се boot-ва. Проблемът е малко като с кокошката и яйцето: за да създадеш raid-0, трябва да си заредил ядро, което да го асемблира, от друга страна, за да се зареди ядрото, bootloader-ът (примерно lilo, grub) трябва да знае откъде да го прочете, а той е разхвърлян на chunks по дисковете съставящи рейда.
Може би Адаптек са измислили нещо по въпроса или просто първите дялове не са raid-0.
Re: Linux софт-RAID - възстановяване на данните
ДОПЪЛНЕНИЕ на предния ми пост:
Явно сте стигнали до mdadm и явно съм познал - първите дялове не са raid. Опитай командата (безопасна е):
Код:
mdadm --detail --scan
и:
Код:
mdadm --detail /dev/mdX
--където Х = номера на raid-дяла от първата команда, примерно /dev/md4
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Ghost
Това правя в момента, ще пробвам по-късно днес, може би. Поне ми дадоха няколко дни да си блъскам главата.
Цитат:
Първоначално публикувано от Ghost
Това, което ме притеснява е, че sfdisk + fdisk докладват, че дяловете са маркирани "Linux" (Id=83), а, не "Linux raid autodetect" (Id=fd)
Това какъв ефект може да има?
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Ghost
mdadm --assemble /dev/md/4 /dev/hd{a,c,d,g}4
Тук ми дава "error opening /dev/md/4: No such file or directory"
Трябва ли да има / между md и 4? Всъщност, аз пробвах и с двете - същия ефект. Освен това сложих {a,c,e,g}, тъй като това рапортува mdadm -E. Но така или иначе ми дава същата грешка.
Re: Linux софт-RAID - възстановяване на данните
Относно "Id=fd". Това е стандартната маркировка за дялoве. Както се маркира даден дял, че е Swap, Linux, AIX, QNX... така и е и с raid-а. Допълнително флагът "fd" помага на ядрото (говоря за линукс) да разпознае raid дяловете и да сработи raid autodetection, функция, която никога не съм ползвал и не зная как работи.
ДОБАВЕНО:
Щом липсва устройството /dev/md4 (или /dev/md/4 - няма знаение, обикновено едното е линк към другото) е възможно да имаш проблем с udev (който в модерните линукси отговаря за динамично създаване на специалните файлове в /dev, които осигуряват достъп до устройствата.)
Опитай да създадеш такъв специален файл:
Код:
mknod /dev/md4 b 9 4
След това отново опитай да асемпбираш с
Код:
mdadm --assemble /dev/md4 /dev/hd{a,c,e,g}4
ПП
С право си коригирал, вярното е {a,c,e,g} - Съжалявам, моя грешка.
Re: Linux софт-RAID - възстановяване на данните
Hi Stfn, поразрови се тука:
http://forums.procooling.com/vbb/arc....php/f-82.html
... може да намериш решение поне да си спасиш данните, и се пази от хора дето се стискат за 100-200$ :016:
Още нещо за модел 4100 което може да ти помогне:
OS can be booted from any drive ...
Re: Linux софт-RAID - възстановяване на данните
Цитат:
Първоначално публикувано от Ghost
Код:
mknod /dev/md4 b 9 4
Код:
mdadm --assemble /dev/md4 /dev/hd{a,c,e,g}4
След тези двете стъпки ми дава следното: Failed to restore critical section for reshape, sorry.
Явно няма да го бъде... Или поне няма аз да бъда този, който ще извади данните.