1

В системе Debian мой домашний каталог находится в массиве raid1 md. После создания он некоторое время работал нормально, но однажды второй диск исчез из массива.

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda3[1]
      1843414335 blocks super 1.2 [2/1] [U_]

Когда я вручную добавляю отсутствующий диск, он определяется как резервный, и массив восстанавливается. До следующей перезагрузки ...

Мне удалось это исправить, воссоздав массив (с теми же разделами). Длится несколько перезагрузок и теперь опять та же проблема.

Оба диска новые, SMART-проверки в порядке.

Я проверил dmesg и вот полная "сбойная" последовательность: Хорошо синхронизированный RAID:

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 19 1 active sync /dev/sdb3

При перезагрузке (больше dmesg здесь: http://pastebin.com/q1Du95Tv ):

[ 8.175247] sda: sda1 sda2 sda3 sda4
...
[ 8.644777] md: md0 stopped.
[ 8.645248] md: bind<sda3>
[ 8.646198] md: raid1 personality registered for level 1
[ 8.646377] md/raid1:md0: active with 1 out of 2 mirrors
[ 8.646391] md0: detected capacity change from 0 to 42916118528
[ 8.646407] RAID1 conf printout:
[ 8.646409] --- wd:1 rd:2
[ 8.646411] disk 0, wo:0, o:1, dev:sda3
[ 8.648749] md0: unknown partition table
[ 8.753331] usb 4-3: new full-speed USB device number 7 using ohci-pci
[ 8.840857] sdb: sdb1 sdb2 sdb3 sdb4
[ 8.841175] sd 1:0:0:0: [sdb] Attached SCSI disk

После этого:

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
2 0 0 2 removed

mdadm -E результат: http://pastebin.com/cp65mNQh

2 ответа2

0

В Linux имена /dev /sdXY не гарантируются постоянными. То есть для данного набора физических дисков узлы устройства не гарантированно отображаются в том же порядке от одной загрузки к другой.

Если у вас есть один диск, вы можете быть почти на 100% уверены, что он всегда будет отображаться как один и тот же узел устройства (например, /dev /sda).

Если у вас есть два диска, вы можете быть совершенно уверены, что они всегда будут отображаться в одном и том же порядке (например, «/dev/sda при загрузке 1» - это то же физическое устройство, что и «/dev/sda при загрузке 2» для любого два последовательных ботинка).

Если у вас есть сто дисков, вероятность того, что два диска будут поменяны местами, неожиданно возрастает довольно высоко. Это может быть результатом любого количества нарушений, но в итоге все сводится к тому, что узлы устройства /dev /sdX создаются в порядке обнаружения диска, и этот порядок обнаружения не гарантируется.

Если вы хотите гарантировать, что один и тот же диск всегда будет называться по указанному имени, вы должны использовать постоянный идентификатор. Демон, с которым у всех есть отношения любви-ненависти, с udev облегчает эту задачу, будучи обычно настроенным для создания символических ссылок в каталогах /dev /disk /by- *, которые указывают на различные аспекты дисков (шина / производитель / модель / последовательный квадруплет, местоположение топологии шины, WWN, ...) к узлу устройства, как обнаружено ядром. Вы также можете добавить собственные правила для создания любой схемы именования, которую вы предпочитаете. Я ударил что - то подобное (но не точно такой же) сам, который был разрешен путем перехода на WWN имен.

В больших массивах хранения это на самом деле очень реальная проблема и является причиной довольно сильной пропаганды постоянного использования постоянных имен устройств при обращении к хранилищу.

Ваша проблема должна исчезнуть (или, по крайней мере, быть значительно уменьшена, исключая реальные проблемы с дисками), если вы повторно добавите диски в свой массив, как, например, /dev/disk/by-id/wwn - * - part * вместо / DEV / sdXY. Это не должно иметь негативного влияния ни на что другое.

0

У меня такая же проблема. То, что я нашел странным, было нумерацией устройств, которые были 0 и 2. Я закончил воссозданием всей настройки рейда.

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

Теперь числа 0 и 1 снова. (в соответствии с mdadm --detail /dev /md0)

После этого я немного изменил свой файл /etc/mdadm/mdadm.conf.

ARRAY /dev/md0 level=raid1 num-devices=2 devices=/dev/sda1,/dev/sdb1 UUID=<uuid of your raid setup>

Я также добавил небольшую задержку в /boot/cmdline.txt с rootdelay = 5

Все вместе это, кажется, решило мою проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .