RAID5-mdadm fehlerhaft / blk_update_request: E / A-Fehler

530
user3388087

Ich habe fünf RAW-Images von Festplatten eines Servers (auf einer externen Festplatte gespeichert). Jede dieser Festplatten enthält zwei Partitionen, die "Linux raid autodetect" (fd)Mitglieder von RAID1 (Boot-bezogen; 3 Geräte (2 aktiv + 1 Spare)) und RAID5 (andere Daten; 5 Geräte) sind.

Nachdem ich zugeordnete Geräte verwendet habe kpartx(oder losetupnicht wirklich wichtig bin), führe ich aus mdadm, um RAID-Arrays zusammenzustellen. RAID1 erfolgreich zusammengebaut, und ich kann es regelmäßig installieren. RAID5 wird zusammengebaut (eigentlich "aktiv", /proc/mdstataber):

  1. Alle Geräte sind " fehlerhaft " und " entfernt ";
  2. Ich sehe zusätzliche Fehler in dmesg( blk_update_request: I/O error, dev loop4, sector 16), nach denen ich weitere Fehler ( md: super_written gets error=-5; md/raid:md0: Disk failure on loop5, disabling device.) erhalte ;
  3. Ich kann kein RAID5-Array einbinden (fair genug).

Ich habe alle Vorschläge ausprobiert, die ich im Internet finden konnte:

  1. Verwenden Sie --forceTaste -> wird nicht funktionieren;
  2. Verwenden --createund --assume-clean-> funktioniert nicht;
  3. Verwenden Sie --zero-superblock(ähnlich wie 2) -> funktioniert nicht.
  4. Wenn check with --examine- alle Teilnehmergeräte im sauberen Zustand sind, ist die Prüfsumme korrekt und die Ereignisnummern sind gleich .

Gemäß Punkt 2 und 3 - es scheint, dass ich NICHT auf diese zugeordneten Geräte schreiben kann. I strace‚d --zero-superblockund auf write()syscall, bekam ich EPERM (Operation not permitted). Kann mir nicht vorstellen, was mich daran hindert, auf zugeordnete Geräte zu schreiben (laut lsblk --fpmRAID5 ist das Gerät schreibbar brw-rw----).

Ein weiteres besonderes Detail. Ich habe oben erwähnt, dass ich I/O errorauf Sektor 16 steige . Ich habe überprüft, was in Sektor 16 (Offset 8192 Byte) in jedem (zugeordneten) RAID5-Gerät gefunden wurde. Erschien, dass es mit einer magischen Zahl 0x6d746962(ASCII: " bitm") beginnt - wahrscheinlich im bitmapZusammenhang:

00002000 62 69 74 6d 04 00 00 00 48 a7 15 94 56 79 23 ed |bitm....H...Vy#.|<br/> 00002010 7d 7b 33 bc b9 f8 71 7a d0 03 00 00 00 00 00 00 |} KeyWait, tab  } else if (GetKeyState("LCtrl", "P") AND GetKeyState("LShift", "P")) { sendLAltUpOnLCtrlUp := 1 Send  KeyWait, tab }  else {  send  }  return }  ~LCtrl up:: {  if(sendLAltUpOnLCtrlUp == 1) { sendLAltUpOnLCtrlUp := 0 send  } else { send  } return }  ~LAlt up:: {  send  return }  ;; Example how to insert polish diactrics with `RAlt + Shift + A` etc. ;; https://pl.m.wikipedia.org/wiki/Alfabet_polski >!+a::Send  >!a::Send  
2

1 Antwort auf die Frage

0
user3388087

So konnte ich endlich das RAID5 zusammenbauen. Wie es sich herausstellte, lag das Problem im Folgenden (ich habe es in meiner Frage nicht erwähnt). Die Bilder der Festplatten waren im E01-Format, aufgeteilt in Anzahl der Teile. Vorherige Zuordnungspartitionen, die ich verwendet habe ewfmount(einschließlich -X allow_root), um mehrere E01 in einer Datei zu "zusammenfügen". Es stellte sich heraus, dass FUSE, obwohl Sie Ihre Bilder gemountet haben RW, irgendwie blockiert und Geräte erstellt read-only(auch wenn Sie sie bearbeiten /etc/fuse.conf).

Bei der Fehlerbehebung versuchte ich unter anderem, mehrere E01-Bilder in fünf reguläre dd / raw- formatierte Bilder zu exportieren und direkt mit ihnen zu arbeiten, mit Ausnahme ewfmountdes "Schemas".

Nachdem der Export abgeschlossen war, habe ich Raw-Laufwerke zugeordnet kpartxund war in der Lage, RAID5 ohne Probleme regelmäßig zu montieren.

Mehrere Operation not permittedoder I/O errorProbleme waren offensichtlich und mussten einen Hinweis geben, aber ich lehnte sie aus unbekannten Gründen ab (bis ich versuchte, einige Sektoren auf zugeordneten Geräten dddirekt zu ändern und fehlgeschlagen zu sein).

Das ist es.