Вопрос или проблема
Я играю с устройством ReadyNAS, которое недавно приобрел. Это коробка на базе SPARC, работает на Linux.
Так как устройство довольно медленное, я вытащил один диск из массива, надеясь заполнить его файлами гораздо быстрее, чем через Ethernet. Однако, для меня оказалось невозможным собрать его MD raid.
Конфигурация:
/dev/sdb
– устройство, извлеченное из NAS.- Разделы
/dev/sdb[1-3]
имеют типfd
(автообнаружение linux raid). - Каждый раздел является частью соответствующего устройства raid1
/dev/md[0-2]
. - Все raid-массивы работают идеально, когда устройство подключено к NAS.
Вот что я получаю:
# mdadm --assemble --scan
mdadm: не удалось добавить /dev/sdb3 в /dev/md/2_0: Неверный аргумент
mdadm: не удалось ЗАПУСТИТЬ_МАССИВ /dev/md/2_0: Неверный аргумент
mdadm: не удалось добавить /dev/sdb2 в /dev/md/1_0: Неверный аргумент
mdadm: не удалось ЗАПУСТИТЬ_МАССИВ /dev/md/1_0: Неверный аргумент
mdadm: не удалось добавить /dev/sdb1 в /dev/md/0_0: Неверный аргумент
mdadm: не удалось ЗАПУСТИТЬ_МАССИВ /dev/md/0_0: Неверный аргумент
mdadm: не удалось добавить /dev/sdb в /dev/md/2: Неверный аргумент
mdadm: не удалось ЗАПУСТИТЬ_МАССИВ /dev/md/2: Неверный аргумент
mdadm: в конфигурационном файле или автоматически не найдено ни одного массива
# mdadm -E /dev/sdb1
/dev/sdb1:
Magic : a92b4efc
Version : 0.90.03
UUID : 8ae34a5e:c446418f:1245590f:4aa53e2a
Creation Time : Wed Mar 13 09:56:36 2013
Raid Level : raid1
Used Dev Size : 2047936 (2000.27 MiB 2097.09 MB)
Array Size : 2047936 (2000.27 MiB 2097.09 MB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Update Time : Wed Mar 13 10:19:36 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Checksum : f7dff982 - ожидаемо 5532a626
Events : 91658897063936
Number Major Minor RaidDevice State
this 1 33 1 1 active sync
0 0 22 1 0 active sync
1 1 33 1 1 active sync
# cat /proc/mdstat
Personalities :
Unused devices: <none>
Устройства /dev/sdb2
и /dev/sdb3
имеют такой же вывод, как выше, за исключением: UUID, Used Dev Size, Array Size, Preferred Minor, Checksum и Events, поэтому я их опустил для ясности.
Я где-то читал, что ошибка выше означает необходимость предварительной загрузки модулей ядра, но думаю, что если я создам raid1 массив на другой паре дисков (пока этот диск все еще подключен), то Linux автоматически загрузит все необходимые модули (исправьте меня, если я ошибаюсь). И все равно он не распознает md raid устройства.
Попытки собрать массив вручную ничего полезного не дают:
# mdadm --assemble /dev/md0 /dev/sdb1
mdadm: не удалось добавить /dev/sdb1 в /dev/md0: Неверный аргумент
mdadm: /dev/md0 собрано из 0 дисков - требуется все 2 для его запуска (используйте --run, чтобы настоять).
Здесь mdadm был очень ясен по поводу того, что ему нужно, учитывая, что это массив raid1, но так как это одна часть зеркальной копии, он должен быть способен работать сам по себе:
# mdadm --assemble /dev/md0 /dev/sdb1 --run
mdadm: не удалось добавить /dev/sdb1 в /dev/md0: Неверный аргумент
mdadm: не удалось ЗАПУСТИТЬ_МАССИВ /dev/md0: Неверный аргумент
Как мне смонтировать эти MD raid устройства?
У меня была такая же проблема:
$ sudo mdadm --assemble /dev/md100 /dev/sdj3
mdadm: не удалось добавить /dev/sdj3 в /dev/md100: Неверный аргумент
mdadm: /dev/md100 собрано из 0 дисков - требуется все 2 для его запуска (используйте --run, чтобы настоять).
dmesg показал следующую ошибку:
$ dmesg | grep sdj3
[ 102.886486] sdj: sdj1 sdj2 sdj3
[ 103.138246] md: неверная контрольная сумма суперблока на sdj3
[ 103.138250] md: sdj3 не имеет допустимого суперблока v0.90, не импортируется!
Что можно исправить следующим образом:
$ sudo mdadm --assemble /dev/md100 /dev/sdj3 --update=summaries --force
mdadm: /dev/md100 был запущен с 1 диском (из 2).
Если у вас подключены все ваши диски, их имена должны быть добавлены вместе, у меня был подключен только 1 диск, sdj3 в этом примере.
РЕДАКТИРОВАТЬ:
Я должен добавить несколько следующих ошибок.
Монтирование md-массива невозможно из-за того, что он является LVM:
$ sudo mount /dev/md100 /mnt/readynas
mount: неизвестный тип файловой системы 'LVM2_member'
lvdisplay может дать вам имя LVM устройства:
$ sudo lvdisplay | grep "LV Path"
LV Path /dev/c/c
Но монтирование этого устройства тоже не удается:
$ sudo mount /dev/c/c /mnt/readynas
mount: неверный тип fs, неправильная опция, плохой суперблок на /dev/mapper/c-c,
отсутствует кодовая страница или вспомогательная программа, или другая ошибка
В некоторых случаях полезная информация найдена в syslog - попробуйте
dmesg | tail или аналогично
dmesg расскажет вам почему:
$ dmesg | tail -2
[ 2294.007063] EXT4-fs (dm-1): монтирование ext3 файловой системы с использованием подсистемы ext4
[ 2294.007069] EXT4-fs (dm-1): плохой размер блока 16384
На Ubuntu это можно решить, используя другой инструмент для монтирования файловой системы:
$ sudo apt-get install fuseext2
$ sudo fuseext2 -o ro,allow_other /dev/c/c /mnt/readynas
Ответ или решение
Конечно, решение проблемы воссоздания MD RAID массива после изъятия диска из ReadyNAS Duo v1 требует понимания особенностей работы с такими устройствами и знания нюансов работы Linux с RAID массивами. Давайте подробно разберем ситуацию и возможные пути решения проблемы.
Теория
RAID (Redundant Array of Independent Disks) — это технология хранения данных, которая комбинирует несколько физических дисков в один или несколько логических томов. В вашем случае мы имеем дело с программным RAID1, что значит, что на каждом из двух дисков хранится одинаковая информация для обеспечения отказоустойчивости.
NAS (Network Attached Storage) устройства, такие как ReadyNAS от Netgear, часто используют такие конфигурации для повышения надежности хранения данных. Однако, когда вы извлекаете диск из NAS и пытаетесь подключить его к другому устройству для ускорения процесса работы с файлами, возникают определенные сложности.
Пример
В описанном случае вы работаете с устройством, где разделы диска обозначены как /dev/sdb[1-3]
и настроены на автоматическое распознавание RAID через идентификатор fd
. При подключении их к другому устройству и попытке собрать RAID массив вы получаете сообщение об ошибке: "Invalid argument".
Это указывает на то, что система либо не может распознать метаданные RAID на диске, либо на вашей системе отсутствуют необходимые модули или конфигурация RAID. Сообщение о том, что "mdadm: No arrays found in config file or automatically" также подкрепляет эту версию.
Применение
Для решения данной проблемы можно предпринять ряд шагов:
-
Проверка состояния superblock’ов: Используя утилиту
mdadm -E
, вы можете видеть, что диск распознает superblock версии 0.90. Однако, ошибки контрольной суммы и события могут указывать на проблему с их состоянием. Если dmesg сообщает о недействительном контрольной сумме superblock’а, это может потребовать исправления. -
Модификация RAID конфигурации: Если проблемы связаны с суперблоком, попробуйте использовать
mdadm --assemble --update=summaries --force
, чтобы вручную обновить информацию RAID и принудительно собрать массив. -
Загрузка необходимых модулей: Убедитесь, что модули ядра для работы с RAID загружены. Обычно это
md-mod
и другие, связанные сraid1
. Это можно проверить командойlsmod
и загрузить при помощиmodprobe
, если они отсутствуют. -
Ручная сборка массива: Попытки собрать массив вручную (
mdadm --assemble /dev/md0 /dev/sdb1 --run
) могут требовать специального флага--run
для RAID массивов, чтобы обойти требования к количеству дисков в массиве. -
Обработка LVM: Если RAID собран, но вы получаете неизвестную файловую систему
LVM2_member
, это указывает на то, что внутри RAID используется Logical Volume Manager (LVM). В таких ситуациях сначала нужно активировать группы томов с помощьюvgchange -ay
, затем определить доступные логические тома командойlvdisplay
и смонтировать их при помощиmount
. -
Использование альтернативных файловых систем: Иногда стандартные утилиты mount могут не поддерживать специальные параметры файловых систем. В Ubuntu для этого может пригодиться
fuseext2
, которое позволяет монтировать специфичные версии ext, которые могут не поддерживаться стандартной утилитой.
Заключение
Работа с извлеченными дисками и попытками воссоздания RAID массивов требует тщательной настройки системы. Обычно в случае NAS устройств возникают проблемы с конфигурациями из-за различий в системах и уровнях поддержки различных файловых систем и их метаданных. Важно сначала убедиться в консистентности всех метаданных RAID, включая суперблоки, и наличия всех необходимых модулей в системе.
По указанным шагам можно систематически устранить большинство проблем, связанных с воссозданием RAID массива из диска NAS, и гарантированно получить доступ к вашим данным. Ваше внимание к деталям и решение перечисленных проблем поможет обеспечить успешное управление данными в таких многосложных конфигурациях.