битое raid1-зеркало из usb-хардов после внезапного дисконнекта на usb-порту

Автор dimas000, 03 июля 2012, 22:32:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

dimas000

не далее как вчера посетила светлая мысль глянуть раз в сто лет /proc/mdstat на сервере. глянул! увидел два битых raid1.
конфигурация: два юсб-харда, на них созданы две пары одинаковых разделов (один под файлопомойку, второй под бэкапы), и из этих разделов собраны зеркала. так вот, узрев битые зеркала я, конечно, первым делом сделал
sudo mdadm /dev/md/... -r faild
sudo mdadm /dev/md/... --re-add /dev/sdXY

но вот ведь что интересно - диск, который всегда был sdb, стал теперь называться sdd. ну, думаю, из-за этого и развалилось, щас обратно подцепит, и все дела. ага! он стал синкать все полностью по-новой. в общем, оставил на ночь это дело, засинкал свои 500 гигов (что для юсб-железки ваще не полезно)...
а сегодня полез разбираться. и вычитал в dmesg вот что:
[5867003.713521] usb 1-3: USB disconnect, address 2
[5867003.985734] usb 1-3: new high speed USB device using ehci_hcd and address 4
[5867004.119268] scsi4 : usb-storage 1-3:1.0
[5867007.154934] scsi 4:0:0:0: Direct-Access     Samsung  S2 Portable           PQ: 0 ANSI: 2 CCS
[5867007.155346] sd 4:0:0:0: Attached scsi generic sg1 type 0
[5867009.862097] sd 4:0:0:0: [sdd] 976773168 512-byte logical blocks: (500 GB/465 GiB)
[5867009.862972] sd 4:0:0:0: [sdd] Write Protect is off
[5867009.863006] sd 4:0:0:0: [sdd] Mode Sense: 28 00 00 00
[5867009.863012] sd 4:0:0:0: [sdd] Assuming drive cache: write through
[5867009.865348] sd 4:0:0:0: [sdd] Assuming drive cache: write through
[5867009.904502]  sdd: sdd1 < sdd5 > sdd2
[5867009.908463] sd 4:0:0:0: [sdd] Assuming drive cache: write through
[5867009.908507] sd 4:0:0:0: [sdd] Attached SCSI disk
[5869201.692534] md/raid1:md126: sdb2: rescheduling sector 261576112
[5869204.229008] md/raid1:md126: Disk failure on sdb2, disabling device.
[5869204.229013] md/raid1:md126: Operation continuing on 1 devices.
[5869204.232618] md/raid1:md126: redirecting sector 261576112 to other mirror: sdc2
[5869204.237769] RAID1 conf printout:
[5869204.237778]  --- wd:1 rd:2
[5869204.237786]  disk 0, wo:1, o:0, dev:sdb2
[5869204.237791]  disk 1, wo:0, o:1, dev:sdc2
[5869204.237796] RAID1 conf printout:
[5869204.237800]  --- wd:1 rd:2
[5869204.237805]  disk 1, wo:0, o:1, dev:sdc2
[6584077.926105] md: data-check of RAID array md126
[6584077.926143] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[6584077.926175] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for data-check.
[6584077.926232] md: using 128k window, over a total of 419431892 blocks.
[6584077.927189] md: md126: data-check done.
[6595053.728430] Clock: inserting leap second 23:59:60 UTC
[6756053.459267] md/raid1:md127: sdb5: rescheduling sector 31452944
[6756053.459328] md/raid1:md127: Disk failure on sdb5, disabling device.
[6756053.459331] md/raid1:md127: Operation continuing on 1 devices.
[6756053.459397] md/raid1:md127: redirecting sector 31452944 to other mirror: sdc5
[6756605.883909] md: unbind<sdb2>
[6756605.883952] md: export_rdev(sdb2)
[6756618.289631] md: bind<sdd2>
[6756618.290143] RAID1 conf printout:
[6756618.290149]  --- wd:1 rd:2
[6756618.290155]  disk 0, wo:1, o:1, dev:sdd2
[6756618.290160]  disk 1, wo:0, o:1, dev:sdc2
[6756618.294464] md: recovery of RAID array md126
[6756618.294502] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[6756618.294535] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[6756618.295853] md: using 128k window, over a total of 419431892 blocks.
[6756814.803550] md: cannot remove active disk sdb5 from md127 ...
[6756814.805000] RAID1 conf printout:
[6756814.805009]  --- wd:1 rd:2
[6756814.805016]  disk 0, wo:1, o:0, dev:sdb5
[6756814.805022]  disk 1, wo:0, o:1, dev:sdc5
[6756814.805027] RAID1 conf printout:
[6756814.805031]  --- wd:1 rd:2
[6756814.805036]  disk 1, wo:0, o:1, dev:sdc5
[6796335.366955] md: md126: recovery done.
[6796335.459990] RAID1 conf printout:
[6796335.459997]  --- wd:2 rd:2
[6796335.460003]  disk 0, wo:0, o:1, dev:sdd2
[6796335.460009]  disk 1, wo:0, o:1, dev:sdc2
[6816974.156572] md: unbind<sdb5>
[6816974.156618] md: export_rdev(sdb5)
[6817029.177966] md: bind<sdd5>
[6817029.178485] RAID1 conf printout:
[6817029.178491]  --- wd:1 rd:2
[6817029.178497]  disk 0, wo:1, o:1, dev:sdd5
[6817029.178503]  disk 1, wo:0, o:1, dev:sdc5
[6817029.182098] md: recovery of RAID array md127
[6817029.182137] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[6817029.182169] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[6817029.182236] md: using 128k window, over a total of 15726476 blocks.
[6819350.869385] md: md127: recovery done.
[6819350.996463] RAID1 conf printout:
[6819350.996470]  --- wd:2 rd:2
[6819350.996477]  disk 0, wo:0, o:1, dev:sdd5
[6819350.996482]  disk 1, wo:0, o:1, dev:sdc5

глянув mdadm.conf, я понял, почему он его автоматом не собрал обратно по ююидам:
DEVICE /dev/sdb[25] /dev/sdc[25]

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1.2 symlinks=no

# automatically tag new arrays as belonging to the local system
HOMEHOST <ignore>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md/backup metadata=1.2 UUID=6ddea540:2739bd17:23004444:362be1ff name=srv:backup
ARRAY /dev/md/svalka metadata=1.2 UUID=992b06af:42dd8b35:bc2a3843:e50f2e6b name=srv:svalka

AUTO -all

собственно, в строке DEVICE разгадка и есть.
интересно другое:
1. какого хрена sdb после дисконнекта стал sdd? или ему просто присваивается имя после последнего занятого?
2. почему после --re-add mdadm стал синкать весь массив с нуля? (вот это уже более интересно)
про сам дисконнект спрашивать не буду - ошибок никаких тем более, вполне возможно, что и физически задели, вот и пошатнулся проводок.