@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 определялся автоматически).
  • Вопрос задан
  • 3072 просмотра
Пригласить эксперта
Ответы на вопрос 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 поддерживают горячую замену, мне уже лет пять не попадалось даже десктопных материнок без этой поддержки.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы