Frage mdadm und 4k Sektoren (erweitertes Format)


Es gibt zahlreiche Fragen zu Serverfault zum Ausrichten von 4k-Sektoren-Festplatten, aber eine Sache ist mir noch nicht klar.

Ich habe mein RAID1 + LVM erfolgreich ausgerichtet. Eine der Sachen, die ich gemacht habe, war mdadm superblock Version 1.0 (die den Superblock am Ende der Platte speichert).

Die Manpage sagt folgendes:

Die verschiedenen Unterversionen speichern die   Superblock an verschiedenen Standorten auf   das Gerät, entweder am Ende (z   1.0), am Anfang (für 1.1) oder 4K von Anfang an (für 1.2). "1" ist   entspricht "1.0". "Standard" ist   entspricht "1.2".

Ist die 1.2-Version, die standardmäßig für 4k-Sektoren-Laufwerke erstellt wird? Die Art, wie ich es sehe, ist es nicht, weil 4k vom Start + die Länge des Superblocks ist nicht eine Vielzahl von 4k (der Superblock ist etwa 200 Bytes lang, wenn ich mich richtig erinnere).

Jeder Einblick ist willkommen.

bearbeiten:

unten wurde geantwortet, dass mdadm superblock 1.1 und 1.2 für die 4k-Ausrichtung gedacht sind. Ich habe gerade einen Raid für ganze Geräte erstellt mit:

mdadm --create /dev/md4 -l 1 -n 2 /dev/sdb /dev/sdd

Dann habe ich ein logisches Volumen hinzugefügt:

vgcreate universe2 /dev/md4

Das Array wird mit 16 MB / s synchronisiert:

md4 : active raid1 sdd[1] sdb[0]
      1465137424 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.8% (13100352/1465137424) finish=1471.6min speed=16443K/sec

Also bezweifle ich, dass es richtig ausgerichtet ist.

(Festplatten sind 1,5 TB WD EARS. Ich habe sie in meinem Desktop-PC und sie synchronisiert mit etwa 80 MB / s.)

Edit2:

Hier ist - prüfen Sie die Ausgabe:

# mdadm --examine /dev/sdb
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 79843828:7d939cce:1c8f0b32:cf339870
           Name : brick:4  (local to host brick)
  Creation Time : Sat Jul  9 10:47:33 2011
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 2930275120 (1397.26 GiB 1500.30 GB)
     Array Size : 2930274848 (1397.26 GiB 1500.30 GB)
  Used Dev Size : 2930274848 (1397.26 GiB 1500.30 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : dd2e3b5f:33214b96:1cb88169:25deb050

    Update Time : Sat Jul  9 10:49:06 2011
       Checksum : 4f7cd785 - correct
         Events : 1


   Device Role : Active device 0
   Array State : AA ('A' == active, '.' == missing)

Der Datenoffset ist 2048 Sektoren, der durch 8 teilbar ist, also würde man denken, dass es in Ordnung ist. Die Volume-Gruppe hat eine physische Extent-Größe von 4 MiB, die auch durch 8 teilbar ist. Aber das wäre nicht einmal wichtig, da die Resynchronisierung nicht mit dem zusammenhängt, was das Gerät enthält.

Eine weitere Änderung: Es scheint kein Alignment-Problem zu sein. da hdparm -t eine sehr niedrige Lesegeschwindigkeit für eine der Festplatten (30 MB / s) zeigt. Etwas anderes ist nicht in Ordnung.

Edit2: Ich erinnere mich nie daran, diesen Beitrag zu aktualisieren, als ich die Antwort gefunden habe. Alles ist schön ausgerichtet. Eine der Scheiben war kaputt. Anscheinend war es auf seinem letzten Bein und sogar das ist irgendwann gebrochen. Eine Ersatzdiskette funktionierte gut.


8
2018-05-27 21:16


Ursprung




Antworten:


Ja, es ist für 4k Sektor Ausrichtung gemacht.

Bei 1.1- und 1.2-Superblocks ist Speicherplatz am Anfang jeder Festplatte reserviert, damit der Superblock nicht zertrampelt wird. Der Superblock-Erstellungscode zwingt diesen reservierten Speicherplatz zu einem Vielfachen von 4 kB. Alle physischen Lesevorgänge sind versetzt vom Ende dieses reservierten Platzesnicht vom Ende des Superblocks. Dadurch bleibt die Ausrichtung für jede Sektorgröße erhalten, die gleichmäßig in 4 kB unterteilt ist.

Wenn Sie interessiert sind, hier ist der Beweis von der mdadm-Quellcode (super1.c):

/* force 4K alignment */
reserved &= ~7ULL;
sb->data_offset = __cpu_to_le64(reserved);

Und das data_offset Parameter wird von der verwendet RAID1-Code im Kernel um die physikalischen Lesevorgänge auszugleichen, z.B. im Lesepfad:

read_bio->bi_sector = r1_bio->sector + mirror->rdev->data_offset

11
2018-05-28 03:42



Wenn sowohl 1.1 als auch 1.2 für 4k-Ausrichtung geeignet sind, wofür ist die Version 1.2 gut? Ich meine, warum sollte ich den Superblock von Anfang an 4k starten lassen wollen? - Halfgaar
Es ist so, dass der Start des Laufwerks für Boot-Blöcke reserviert werden kann, so dass das Laufwerk als Boot-Laufwerk verwendet werden kann. - Tom Shaw
Ich habe gerade meinen Beitrag aktualisiert. Wie es aussieht, ist mein neues Array nicht richtig ausgerichtet. - Halfgaar