У меня есть linux box, который действует как домашний NAS с 2 x 1 ТБ жестких дисков в linux raid-1. Недавно один из двух дисков вышел из строя, поэтому я купил новый (1TB WD Blue) и поставил его. Восстановление начинается и останавливается на 7,8%, что приводит к ошибке, что / dev / sdd (хороший диск) имеет плохой блок, и процесс больше не может продолжаться. Попытка удалить / добавить новый диск, но процесс всегда останавливается в одной и той же точке. Хорошей новостью является то, что я все еще могу иметь доступ к своим данным, которые смонтированы в / storage (xfs fs). Ниже я приведу больше информации о проблеме:
Хороший (исходный) диск:
sudo fdisk -l /dev/sdd WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdd1 63 1953525167 976762552+ da Non-FS data
Новый (целевой) жесткий диск:
sudo fdisk -l /dev/sdc Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes 81 heads, 63 sectors/track, 382818 cylinders, total 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x5c5d0188 Device Boot Start End Blocks Id System /dev/sdc1 2048 1953525167 976761560 da Non-FS data
sudo mdadm --detail /dev/md3 /dev/md3: Version : 1.2 Creation Time : Fri Apr 13 19:10:18 2012 Raid Level : raid1 Array Size : 976761382 (931.51 GiB 1000.20 GB) Used Dev Size : 976761382 (931.51 GiB 1000.20 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Sep 4 08:57:46 2013 State : active, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 0 Spare Devices : 1 Rebuild Status : 7% complete Name : hypervisor:3 (local to host hypervisor) UUID : b758f8f1:a6a6862e:83133e3a:3b9830ea Events : 1257158 Number Major Minor RaidDevice State 2 8 49 0 active sync /dev/sdd1 3 8 33 1 spare rebuilding /dev/sdc1
Одна вещь, которую я заметил, состоит в том, что исходный жесткий диск (/ dev / sdd) имеет раздел, который начинается в 63 секторе, где новый диск (/ dev / sdc) начинается в секторе 2048. Связано ли это с проблемой? Есть ли способ сказать mdadm игнорировать этот плохой блок и продолжить перестройку массива? В качестве крайней меры я думал клонировать исходный (/ dev / sdd) диск на новый диск (/ dev / sdc) с помощью ddrescue (livecd), а затем поместить его в качестве исходного диска. Будет ли это работать?
Спасибо за любую помощь. Яннис
Я перераспределил оба / dev / sdd и / sdc. Итак, теперь выглядит так:
sudo fdisk -l -u /dev/sdc Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes 81 heads, 63 sectors/track, 382818 cylinders, total 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x0002c2de Device Boot Start End Blocks Id System /dev/sdc1 2048 1953525167 976761560 da Non-FS data sudo fdisk -l -u /dev/sdd Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes 23 heads, 12 sectors/track, 7077989 cylinders, total 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytess Disk identifier: 0x00069b7e Device Boot Start End Blocks Id System /dev/sdd1 2048 1953525167 976761560 da Non-FS data
Это нормально?
Хорошо, я перестроил массив снова, а затем восстановил все данные из резервной копии. Все выглядит хорошо, за исключением того, что при перезагрузке / dev / md3 переименовывается в / dev / md127.
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md127 : active raid1 sdd1[0] sdc1[2] 976630336 blocks super 1.2 [2/2] [UU] md1 : active raid0 sdb5[0] sda5[1] 7809024 blocks super 1.2 512k chunks md2 : active raid0 sdb6[0] sda6[1] 273512448 blocks super 1.2 512k chunks md0 : active raid1 sdb1[0] sda1[2] 15623096 blocks super 1.2 [2/2] [UU] cat /etc/mdadm/mdadm.conf ARRAY /dev/md/0 metadata=1.2 UUID=5c541476:4ee0d591:615c1e5a:d58bc3f7 name=hypervisor:0 ARRAY /dev/md/1 metadata=1.2 UUID=446ba1de:407f8ef4:5bf728ff:84e223db name=hypervisor:1 ARRAY /dev/md/2 metadata=1.2 UUID=b91cba71:3377feb4:8a57c958:11cc3df0 name=hypervisor:2 ARRAY /dev/md/3 metadata=1.2 UUID=5c573747:61c40d46:f5981a8b:e818a297 name=hypervisor:3 sudo mdadm --examine --scan --verbose ARRAY /dev/md/0 level=raid1 metadata=1.2 num-devices=2 UUID=5c541476:4ee0d591:615c1e5a:d58bc3f7 name=hypervisor:0 devices=/dev/sdb1,/dev/sda1 ARRAY /dev/md/1 level=raid0 metadata=1.2 num-devices=2 UUID=446ba1de:407f8ef4:5bf728ff:84e223db name=hypervisor:1 devices=/dev/sdb5,/dev/sda5 ARRAY /dev/md/2 level=raid0 metadata=1.2 num-devices=2 UUID=b91cba71:3377feb4:8a57c958:11cc3df0 name=hypervisor:2 devices=/dev/sdb6,/dev/sda6 ARRAY /dev/md/3 level=raid1 metadata=1.2 num-devices=2 UUID=5c573747:61c40d46:f5981a8b:e818a297 name=hypervisor:3 devices=/dev/sdd1,/dev/sdc1 cat /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 # / was on /dev/md0 during installation UUID=2e4543d3-22aa-45e1-8adb-f95cfe57a697 / ext4 noatime,errors=remount-ro,discard 0 1 #was /dev/md3 before UUID=13689e0b-052f-48f7-bf1f-ad857364c0d6 /storage ext4 defaults 0 2 # /vm was on /dev/md2 during installation UUID=9fb85fbf-31f9-43ff-9a43-3ebef9d37ee8 /vm ext4 noatime,errors=remount-ro,discard 0 2 # swap was on /dev/md1 during installation UUID=1815549c-9047-464e-96a0-fe836fa80cfd none swap sw
Любое предложение по этому поводу?
Твой "хороший" драйв на самом деле плохой.
Michael Hampton 11 лет назад
2
3 ответа на вопрос
2
MadHatter
The good news are that I can still have access to my data which are mounted at /storage
No, you can't; you have a problem reading the data at those dodgy blocks on /dev/sdd. You just don't know that in ordinary operation, either because you don't happen to read those blocks, or your application is tolerant of read errors.
I find messages like those that /dev/sdd is logging to be extremely worrying. If it were my device, I'd back the data up as fast as possible, preferably twice, replace the other drive as well drive, and restore from such a backup as I'd been able to get.
In addition, as you point out, you're trying to mirror a 976762552 block partition with a 976761560 block one, and that won't work; the new partition needs to be at least as big as the old one. I'm slightly surprised that mdadm allowed reconstruction to proceed, but you don't say what distro you're running, so it's hard to know how old the version is; perhaps it's old enough not to check that sort of thing.
Edit: Yes, you should enlarge the partition as you describe. I'm not an ubuntu fan, so I can't comment on that version. If you get this resync done, I'd replace the other drive immediately. If you have a decent backup, I'd stop wasting time with the resync, replace it now, recreate the array, and restore from backups.
У меня Ubuntu 12.04 x64: uname -a гипервизор Linux 3.8.0-29-generic # 42 ~ Precision1-Ubuntu SMP Ср 14 августа 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux Я уже скопировал все данные. Что Мне нужно, чтобы завершить процесс восстановления. Как я уже сказал, один из двух жестких дисков является совершенно новым. Когда я fdisk (ed), этот диск fdisk автоматически расположил первый сектор на 2048 (вместо 63). Должен ли я вручную удалить раздел и поставить 63 вместо 2048?
11 лет назад
0