md0: обнаружено изменение емкости с 0 на...... md0: неизвестная таблица разделов, но система загружается
Таким образом, у меня была проблема с моим сервером, работающим под управлением Ubuntu 14.04 и 3x1T, настроенным с программным RAID. Я заставил mdadm
чтобы смонтировать RAID только с двумя дисками, я добавил недостающий диск обратно в массив RAID, и система перестроила RAID, и все выглядело нормально..
И теперь вот проблема. Каждый раз при запуске сервера я вижу эти сообщения
[ 2.440341] md0: detected capacity change from 0 to 482848079872
[ 2.460418] md0: unknown partition table
Он ждет пару секунд и после этого монтирует разделы как надо, и все в порядке.
Вот еще немного информации:
mdadm -D /dev/md0 /dev/md0:
Version : 0.90 Creation Time : Sat Feb 26 10:39:28 2011
Raid Level : raid5
Array Size : 1921873792 (1832.84 GiB 1968.00 GB) Used Dev Size : 960936896 (916.42 GiB 984.00 GB) Raid Devices : 3 Total Devices
: 3 Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri Jan 30 19:40:00 2015
State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 91c9bf9f:53a9ecfd:80cbc40e:2f20054f
Events : 0.602824
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
fdisk -l
Disk /dev/sda: 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: 0x00072f13
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1921875967 960936960 fd Linux raid
autodetect /dev/sda2 1921875968 1953523711 15823872 82
Linux swap / Solaris
Disk /dev/sdb: 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: 0x000d8a37
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 1921875967 960936960 fd Linux raid
autodetect /dev/sdb2 1921875968 1953523711 15823872 82
Linux swap / Solaris
Disk /dev/sdc: 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: 0x000e4fef
Device Boot Start End Blocks Id System
/dev/sdc1 * 2048 1921875967 960936960 fd Linux raid
autodetect /dev/sdc2 1921875968 1953523711 15823872 82
Linux swap / Solaris
Disk /dev/md0: 1968.0 GB, 1967998763008 bytes 2 heads, 4
sectors/track, 480468448 cylinders, total 3843747584 sectors Units =
sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512
bytes / 512 bytes I/O size (minimum/optimal): 65536 bytes / 131072
bytes Disk identifier: 0x00000000
**Disk /dev/md0 doesn't contain a valid partition table**
Почему он это делает и что я могу сделать, чтобы это исправить?
1 ответ
Зачем? С отдельными дисками (возможно) все в порядке, но суперблок RAID, скорее всего, поврежден из-за сбоя комбинации программного и аппаратного обеспечения.
Что делать?
- Сделай резервную копию всего!
Установите smartmontools и проведите полную диагностику всех дисков
sudo apt-get install smartmontools sudo smartctl --test=long /dev/sda sudo smartctl --test=short /dev/sdb sudo smartctl --test=short /dev/sdc
дождитесь окончания теста, затем:
sudo smartctl --all /dev/sda sudo smartctl --all /dev/sdb sudo smartctl --all /dev/sdc
интерпретировать результаты и посмотреть, нужно ли заменять какой-либо накопитель (и) (оставьте комментарий, если он неясный, и я упомянул о резервном копировании?)
искать плохие блоки:
badblocks -nsv -o /dev/USB-Stick/BadBlocks.sda /dev/sda badblocks -nsv -o /dev/USB-Stick/BadBlocks.sdb /dev/sdc badblocks -nsv -o /dev/USB-Stick/BadBlocks.sdc /dev/sdc
Если вы нашли плохие блоки, они должны быть объединены в 1 файл (
badblocks.all
, Разве я не забыл упомянуть о резервном копировании?) И перешел на все диски:mkfs.ext4 -l /dev/USB-Stick/BadBlocks.all /dev/sda mkfs.ext4 -l /dev/USB-Stick/BadBlocks.all /dev/sdb mkfs.ext4 -l /dev/USB-Stick/BadBlocks.all /dev/sdc
и воссоздать ваше устройство:
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Восстановление резервной копии
Заметки:
- Я бы определенно не делал
mdadm --detail --scan
заранее, так как вы скопируете ошибку. - Если это действительно важно по времени, вы можете покончить с 4 и 5, если результаты с 3 фантастические, но я бы не стал!
- Если это критично ко времени, вы можете покончить с 5, если результаты 3 и 4 фантастические, но я бы не стал!
- Если у вас есть бюджет, избавьтесь от программного RAID5 и получите аппаратный RAID5 (300-500$)
- Если у вас есть бюджет, добавьте еще 2 диска и перейдите на RAID6
- Если у вас есть весь уик-энд, чтобы сделать это, сделайте
-wsv
вместо-nsv