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

Linux raid с нестабильными USB-накопителями (шина?)

У меня рейд с двумя флешками в настройках зеркалирования. Он работает довольно хорошо, но шина USB довольно нестабильна, и примерно раз в неделю по неизвестным мне причинам (по-видимому, ничего важного в журналах) диск исчезнет и вернется на другой путь / dev. Теперь mdadm отлично справляется с распознаванием дисков по серийному номеру, поэтому я не особо беспокоюсь о буквах дисков.

Меня действительно раздражает то, что когда диск возвращается, он не уходит в рейд.

    Update Time : Fri Jul 16 12:05:02 2010
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           UUID : eac43993:c6a05923:74746b96:dfc4670c (local to host razor)
         Events : 0.468176

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       81        1      active sync   /dev/sdf1

       2       8       65        -      faulty spare

Обычно я могу вернуть диск с помощью mdadm --stop / dev / md_d0 и mdadm --assemble / dev / md_d0; иногда с mdadm --add / dev / md_d0 / dev / sd1.

Если что-то было записано на диск, когда привод был "неисправен", я получаю это послесловие.

Number   Major   Minor   RaidDevice State
   2       8       33        0      spare rebuilding   /dev/sdc1
   1       8       49        1      active sync   /dev/sdd1

Все это нормально, но перестройка рейда раз в неделю, вероятно, не очень хорошо для дисков.

Я ищу здесь либо какой-то способ исправить это (что я не думаю, вероятно, если не отключить его от шины USB), либо какой-то способ включить режим raid только для чтения при исчезновении диска. Тогда я мог бы добавить его обратно, не перестраивая. Он все равно будет ненадежным, но, по крайней мере, его не придется восстанавливать.

Я подумывал использовать --scan (монитор?) И программу событий, но думаю, что потребовалось бы довольно много времени, чтобы все исправить, даже если бы я не делал ошибок.

Любые идеи приветствуются.

Предположительно у вас есть потребность в том, чтобы это были внешние диски? Если да, то я бы посоветовал вынуть эти диски из их USB-корпусов и поместить их в один или два корпуса eSATA - USB просто не предназначен для такого рода вещей. Если вам не нужно, чтобы они были внешними, поместите их на внутреннюю шину SATA / SAS. Любой из этих способов должен сделать их намного более стабильными и не потребует программных решений.

Вместо использования / dev / sd [a-z], почему вы не используете Linux UUID (универсальный уникальный идентификатор) диска. Если вы подключаете / отключаете диск, он всегда сохраняет тот же UUID.

Посмотрите на / dev / disk / by-uuid / Он содержит символические ссылки на реальные устройства / dev / sd [a-z].

ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 2010-07-16 09:01 0bef51ef-8a76-4ae5-9e52-7306e57a8c9e -> ../../sda1
lrwxrwxrwx 1 root root 21 2010-07-16 09:01 756eb6b5-865e-419e-b9f6-f061c8473fd4 -> ../../sda2
lrwxrwxrwx 1 root root 21 2010-07-16 09:01 89b89bdb-338b-4a44-86e9-9619d78efac2 -> ../../sdb1

Просто измените целевые устройства mdadm на / dev / disk / by-uuid / 0bef51ef-8a76-4ae5-9e52-7306e57a8c9e (вместо sda1).