Назад | Перейти на главную страницу

Raid1 деградировал после каждой перезагрузки

После настройки вывод cat / proc / mdstat выглядит так:

proxmox:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc2[1] sdb2[0]
      293024832 blocks [2/2] [UU]

unused devices: <none>

Кроме того, после настройки raid1 fresh я получил следующее:

proxmox:~# mdadm --examine --scan
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=fbda4051:61cbc27f:7f2b1f39:e153e83f

Но после перезагрузки cat / proc / mdstat выводит:

proxmox:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (auto-read-only) raid1 sdc[1]
      293024832 blocks [2/1] [_U]

unused devices: <none>

Почему сейчас используется sdc1?

Также теперь я получаю:

proxmox:~# mdadm --examine --scan
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=fbda4051:61cbc27f:7f2b1f39:e153e83f
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=fbda4051:61cbc27f:9822ee23:9b948649


proxmox:~# dmesg | grep md0
md/raid1:md0: active with 1 out of 2 mirrors
md0: detected capacity change from 0 to 300057427968
 md0: p1 p2
md0: p2 size 586049840 exceeds device capacity, limited to end of disk

Откуда взялись два раздела на / dev / md0? Я их никогда не делал. Также, sdc1 и sdc2 не указаны в дереве / dev.

Вот результат работы fdisk:

proxmox:~# fdisk -l /dev/sdb

Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x3bd84a48

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           2       10240   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2               2       36482   293024920   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.

proxmox:~# fdisk -l /dev/sdc

Disk /dev/sdc: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x371c8012

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1           2       10240   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdc2               2       36482   293024920   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.

Немного информации: Сервер работает под управлением Proxmox v1.9, который является debian lenny 64bit. sda - это системный жесткий диск (жесткий диск RAID). sdb и sdc - это новые диски Raptor емкостью 300 ГБ.

Прежде всего, проверьте физическое оборудование, такое как соединения, кабели и правильно установленные карты. Что касается самого диска, проверьте данные SMART на / dev / sdb, чтобы убедиться, что сам диск не выходит из строя периодически. Western Digital Raptors быстры, но склонны к сбоям, у меня был один сбой из ниоткуда (даже данные SMART не предсказывали этого). Используйте smartctl для чтения данных SMART и запуска тестов. Он входит в пакет smartmontools:

apt-get install smartmontools

Извлеките данные и найдите зарегистрированные аномалии или ошибки:

smartctl -a /dev/sdb

Наконец, запустите ручную самопроверку, которая займет около 2 минут. long можно заменить на short, и более подробный, но занимает гораздо больше времени («десятки минут»):

smartctl -t short /dev/sdb

После завершения теста просмотрите результаты:

smartctl -l selftest /dev/sdb

Если все вернется в исходное состояние, можно переходить к отладке стека mdadm.

Расположение разделов на RAID-устройствах немного странное. Если эти устройства будут выделены для RAID, вам вообще не понадобится таблица разделов. Предполагая, что данных нет, вам следует сделать это простым и напрямую использовать блочные устройства. В fdisk они будут выглядеть так:

Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table

Чтобы избежать проблем с разбиением на разделы и начать с нуля, просто поставьте несколько нулей в начале каждого диска;

dd if=/dev/zero of=/dev/sdb count=128 bs=4096k

Повторите для / dev / sdc. Создайте массив, используя эти два устройства:

mdadm --create --raid-devices=2 --level=raid1 --bitmap=internal --assume-clean --name=RAID1 /dev/sdb /dev/sdc

Не забудьте проверить dmesg на предмет вывода, относящегося к диску!

Proxmox не поддерживает программный RAID:

Для продакшена возможен только аппаратный рейд. если вы используете пользовательский softraid, вы будете запускаться сейчас, а в будущих версиях проблемы будут означать, что он НЕ будет работать. Довольно интересно, что люди не верят нам, что Proxmox VE не будет работать с soft raid - опять же: мы разработчики и должны это знать !?

P.S. Разработчики, кажется, никогда не объясняют, «почему» это не работает ... Просто говорят, что не будет.

http://forum.proxmox.com/threads/838-Install-on-Soft-Raid?p=4406#post4406

Даже если «эта» проблема не из-за Proxmox, обычно это не стоит затраченных усилий, потому что в конце концов это не сработает ...