LINUX.ORG.RU

Сообщения IlyaZD

 

При перезагрузке не всегда собирается RAID1 mdadm

Форум — General

Приветствую участников форума!

Есть массив RAID1 на mdadm. Диски массива (SATA) подключены через контроллер LSI SAS3041E. Некоторое время назад обнаружил, что диски работают в режиме SATA1. Оказалось, что причина в старой прошивке - диски SATA3 она не распознаёт и подключает как SATA1. Перепрошил контроллер прошивкой, обещавшей SATA3 - диски вообще перестали определяться, а система стала грузиться только в Recovery Mode. После перепрошивки самой последней прошивкой диски определились и стали работать как SATA2, но возникла другая проблема. При перезагрузке RAID периодически (не всегда) запускается только с одним диском sdb. Причём происходит это очень интересно. Во-первых, это может произойти, если при перезагрузке контроллер LSI в таблице обнаруженных устройств почему-то выводит только один диск. Вроде бы логично - второй диск из-за какого-то глюка не подключился - вот его и нет в массиве. Но оказалось, что в этом случаев второй диск (sdc) в системе всё равно присутствует, инициализируется операционной системой, но самостоятельно к RAID не прицепляется. Однако его можно легко вернуть в RAID командой mdadm --add, после чего всё прекрасно работает, причём без пересинхронизации массива. Значит, несмотря на отсутствие в загрузочной таблице устройств контроллера, диск всё равно подключается. Во-вторых, даже если в таблице контроллера при перезагрузке показаны оба диска - всё равно массив может (но не всегда) точно так же перезапуститься без диска sdc. Естественно, я перед каждой перезагрузкой массив восстанавливал командой --add. В логах загрузки я обнаружил интересную закономерность. Когда всё нормально подключается, лог выглядит так:

[   10.137986] scsi6 : ioc0: LSISAS1064E B3, FwRev=01210000h, Ports=1, MaxQ=483, IRQ=16
[   10.160346] mptsas: ioc0: attaching sata device: fw_channel 0, fw_id 0, phy 2, sas_addr 0x3d3b5a2a78ad6ba7
[   10.163956] scsi 6:0:0:0: Direct-Access     ATA      TOSHIBA DT01ACA2 ABB0 PQ: 0 ANSI: 5
[   10.170663] sd 6:0:0:0: Attached scsi generic sg1 type 0
[   10.172067] mptsas: ioc0: attaching sata device: fw_channel 0, fw_id 1, phy 3, sas_addr 0x3d49361f799c6f86
[   10.172808] sd 6:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
[   10.176243] scsi 6:0:1:0: Direct-Access     ATA      TOSHIBA DT01ACA2 ABB0 PQ: 0 ANSI: 5
[   10.183782] sd 6:0:1:0: Attached scsi generic sg2 type 0
[   10.186225] sd 6:0:1:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
[   10.369742] sd 6:0:0:0: [sdb] Write Protect is off
[   10.369747] sd 6:0:0:0: [sdb] Mode Sense: 73 00 00 08
[   10.372277] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   10.381896] sd 6:0:1:0: [sdc] Write Protect is off
[   10.381900] sd 6:0:1:0: [sdc] Mode Sense: 73 00 00 08
[   10.384449] sd 6:0:1:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   10.563566]  sdb: sdb1
[   10.575719]  sdc: sdc1
[   10.755577] sd 6:0:0:0: [sdb] Attached SCSI disk
[   10.767716] sd 6:0:1:0: [sdc] Attached SCSI disk
[   10.915176] md: bind<sdc1>
[   10.915627] md: bind<sdb1>
[   10.916724] md: raid1 personality registered for level 1
[   10.917033] md/raid1:md1: active with 2 out of 2 mirrors
[   10.917144] created bitmap (15 pages) for device md1
[   10.917471] md1: bitmap initialized from disk: read 1 pages, set 0 of 29807 bits
[   10.976640] md1: detected capacity change from 0 to 2000263643136
[   10.979867]  md1: p1
[   11.003883] PM: Starting manual resume from disk
[   11.003889] PM: Hibernation image partition 8:6 present
[   11.003890] PM: Looking for hibernation image.
[   11.004072] PM: Image not found (code -22)
[   11.004075] PM: Hibernation image not present or could not be loaded.
[   11.062530] random: nonblocking pool is initialized
[   11.114199] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
А вот если диск sdc при перезагрузке не присоединяется к массиву, то лог получается примерно такой:
[   12.609997] scsi6 : ioc0: LSISAS1064E B3, FwRev=01210000h, Ports=1, MaxQ=483, IRQ=16
[   12.631103] mptsas: ioc0: attaching sata device: fw_channel 0, fw_id 0, phy 2, sas_addr 0x3d3b5a2a78ad6ba7
[   12.634735] scsi 6:0:0:0: Direct-Access     ATA      TOSHIBA DT01ACA2 ABB0 PQ: 0 ANSI: 5
[   12.641472] sd 6:0:0:0: Attached scsi generic sg1 type 0
[   12.643869] sd 6:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
[   12.837197] sd 6:0:0:0: [sdb] Write Protect is off
[   12.837201] sd 6:0:0:0: [sdb] Mode Sense: 73 00 00 08
[   12.839738] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   13.031021]  sdb: sdb1
[   13.249021] sd 6:0:0:0: [sdb] Attached SCSI disk
[   13.250232] mptsas: ioc0: attaching sata device: fw_channel 0, fw_id 1, phy 3, sas_addr 0x3d49361f799c6f86
[   13.254109] scsi 6:0:1:0: Direct-Access     ATA      TOSHIBA DT01ACA2 ABB0 PQ: 0 ANSI: 5
[   13.261389] sd 6:0:1:0: Attached scsi generic sg2 type 0
[   13.262350] sd 6:0:1:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
[   13.389653] md: bind<sdb1>
[   13.390763] md: raid1 personality registered for level 1
[   13.391070] md/raid1:md1: active with 1 out of 2 mirrors
[   13.391164] created bitmap (15 pages) for device md1
[   13.391487] md1: bitmap initialized from disk: read 1 pages, set 0 of 29807 bits
[   13.452440] md1: detected capacity change from 0 to 2000263643136
[   13.455656]  md1: p1
[   13.460522] sd 6:0:1:0: [sdc] Write Protect is off
[   13.460527] sd 6:0:1:0: [sdc] Mode Sense: 73 00 00 08
[   13.463190] sd 6:0:1:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   13.480245] PM: Starting manual resume from disk
[   13.480250] PM: Hibernation image partition 8:6 present
[   13.480252] PM: Looking for hibernation image.
[   13.480455] PM: Image not found (code -22)
[   13.480457] PM: Hibernation image not present or could not be loaded.
[   13.581850] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[   13.654339]  sdc: sdc1
[   13.874445] random: nonblocking pool is initialized
[   13.875680] sd 6:0:1:0: [sdc] Attached SCSI disk
Т.е., насколько я понимаю своим дилетантским умом, диск sdc в «аварийном» случае в системе всё равно присутствует, но не успевает полностью проинициализироваться до момента сборки массива mdadm и потому не попадает в массив. После сборки он «доинициализируется» и потому может быть присоединён вручную. Кстати, если система запускается нормально, то fdisk показывает все диски «правильном» порядке: sda, sdb, sdc, md. А вот если система запускается без диска sdc в массиве, то fdisk выводит диски так: sda, sdb, md, sdc. Т.е., как я понимаю, fdisk отображает диски в порядке их появления в системе. Отсюда у меня такие вопросы: 1. почему диск sdc периодически «опаздывает» и появляется в системе уже после md, 2. связано ли это с контроллером или это вызвано какими-то процессами, произошедшими в системе при первой (неудачной) прошивке и «развале» массива? 3. как это исправить?

P.S. SMART'ы в порядке, ошибок при работе массива тоже вроде как нет.

 , ,

IlyaZD
()

RSS подписка на новые темы