Задать вопрос
@mafet

Mdraid на внешней usb корзине?

Сделал с помощью mdraid хитрую конфигурацию с использованием 3х дисков. Один диск — внутренний, два других — внешние, подключенные по usb 3.0 в корзине.


На каждом из дисков есть раздел 256M — /boot, и 300G — системный (с lvm) [но это в общем не важно]

Создал два raid1 массива отдельно для /boot отдельно для системы. Всё пашет отлично.


Вопрос такой.

Как оставить работоспособной такую конструкцию на случай какого-то сбоя во внешней корзине, подключенной по usb 3.0 (или банального случайного выдирания кабеля)?

Провёл эксперимент, внезапно выключил корзину — винты пропали из ОС, после возвращения корзины к жизни, появились, но в md-массив не подцепились.

После ребута оба определились как другой массив raid1 и начали друг с другом синхронизироваться, а старый массив так и остался без потерянных двух дисков.

Вообще возможно как-то вернуть в старый массив временно выпавшие из ОС диски без новой синхронизации и как-то автоматически?

Поможет ли mdadm --detail --scan >> /etc/mdadm.conf? (до выдирания дисков, mdraid определялся автоматически).
  • Вопрос задан
  • 3075 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
alexbyk
@alexbyk
Стоило бы указать какой именно raid и ОС, но…

Если речь о raid 1 Скорее всего в raid-е были только эти 2 диска, которые вы отключили-подключили. Внутренний был запасным и вообще не синхронизировался. Точно можно узнать по команде cat /proc/mdstat. Там значения имеет порядковый номер — чем он меньше, тем «главнее» диск.

При выдирании-добавлении без синхронизации никак, ведь данные на одной диске стали уже не актуальны. Только лишь в том случае, если диск не был примонтирован (либо ro)

По идее, если вы построите массив из 2 дисков, второй выдерните, что-то запишите на первый, а потом второй добавите — raid должен начать синхронизацию сам, хотя я не уверен. У вас этого не произошло, так как внутренний диск видимо вообще ни в чем не участвовал (как я написал выше).
Ответ написан
merlin-vrn
@merlin-vrn
Совсем без синхронизации вернуть, очевидно, невозможно в принципе — за то время, пока диск отсутствовал, ОС могла что-то успеть записать в массив, как вы себе представляете тут работу без синхронизации? Можно уменьшить синхронизацию, если использовать write-intent bitmap. Это в целом повышает надёжность хранилища (т.к. отдельно специально хранится информация о том, что изменялось) и сокращает время синхронизации (bitmap используется при учёте того, какие из блоков необходимо синхронизировать), но замедляет его работу, т.к. требуются лишние дёргания головками от данных до битмапа и обратно.

Автоматически вернуть нельзя, сам линукс такого не умеет и правильно делает. Автоматика в случае сбоя хранилища — это вообще плохое дело. Если что-то вышло из строя, это нельзя трогать. Если до автоматической починки можно было что-то восстановить, то после автоматики это уже может оказаться нереальным — всё, что было на одном из дисков, уже затёрто. На эти случаи есть поддержка горячей замены (hot spare) — такой диск войдёт в строй автоматически, и его перезапись не повлияет на восстановление в случае каких-либо проблем, т.к. на нём до введения в строй не было важных данны.

Так что, да, после потери и появления второго диска вам следует обязательно вручную, проверив, всё ли в порядке собственно с данными вставить диск в систему.

P.S. Я не понимаю, зачем вам USB. Если исключительно для горячей замены диска в массиве — это несусветная глупость. Все SATA-контроллеры в режиме AHCI поддерживают горячую замену, мне уже лет пять не попадалось даже десктопных материнок без этой поддержки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы