Wie richte ich meine Partitionstabelle richtig aus?

19

Ich baue gerade mein erstes RAID5-Array auf. Ich habe mdadm verwendet, um das folgende Setup zu erstellen:

root@bondigas:~# mdadm --detail /dev/md1
/dev/md1:
        Version : 00.90
  Creation Time : Wed Oct 20 20:00:41 2010
     Raid Level : raid5
     Array Size : 5860543488 (5589.05 GiB 6001.20 GB)
  Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Wed Oct 20 20:13:48 2010
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 1% complete

           UUID : f6dc829e:aa29b476:edd1ef19:85032322 (local to host bondigas)
         Events : 0.12

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       4       8       64        3      spare rebuilding   /dev/sde

Währenddessen habe ich beschlossen, das Biest mit dem folgenden Befehl zu formatieren:

root@bondigas:~# mkfs.ext4 /dev/md1p1 
mke2fs 1.41.11 (14-Mar-2010)
/dev/md1p1 alignment is offset by 63488 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=48 blocks
97853440 inodes, 391394047 blocks
19569702 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
11945 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Writing inode tables: ^C 27/11945
root@bondigas:~# ^C

Ich bin nicht sicher, was ich tun soll, wenn die Ausrichtung von / dev / md1p1 um 63488 Byte versetzt ist. und wie man die Festplatten richtig partitioniert, damit ich sie richtig formatieren kann.

Jorge Castro
quelle

Antworten:

17

Da die Ausrichtung an vielen Stellen auftaucht -

  • "Advanced Format" -Festplatten mit 4k-Blöcken
  • SSDs
  • RAID
  • LVM

- Ich werde auf die Frage etwas näher eingehen.

Partitionen ausrichten

"Linux auf 4kB-Sektoren" (IBM developerWorks) führt Sie durch die Schritte mit fdisk, parted und GPT fdisk.

Mit fdisk:

sudo fdisk /dev/XXX 
c # turn off DOS compatibility
u # switch to sector units
p # print current partitions, check that start sectors are multiples of 8

# for a new partition:
n # new partition
<select primary/secondary and partition #>
first sector: 2048 
  # 2048 is default in recent fdisk, 
  # and is compatible with Vista and Win 7, 
  # 4k-sector disks and all common RAID stripe sizes

Ausrichten des Dateisystems

Dies ist hauptsächlich für RAID relevant (Level 0, 5 und 6; nicht Level 1). Das Dateisystem bietet eine bessere Leistung, wenn es mit Kenntnis der Stripe-Größen erstellt wird.

Es kann auch für SSDs verwendet werden, wenn Sie das Dateisystem an die Größe des SSD-Löschblocks anpassen möchten (Theodore Tso, Linux-Kernel-Entwickler).

Im OP werden mkfsdie optimalen Einstellungen scheinbar automatisch erkannt, so dass keine weiteren Maßnahmen erforderlich waren.

Wenn Sie überprüfen möchten, sind für RAID die relevanten Parameter:

  • Blockgröße ( Blockgröße des Dateisystems, z. B. 4096)
  • Streifengröße (wie mdadm-Blockgröße, z. B. 64 KB)
  • Schrittweite: stripe size / block size (zB 64k / 4k = 16)
  • Streifenbreite: stride * #-of-data-disks (z. B. 4 Festplatten RAID 5 sind 3 Datenfestplatten; 16 * 3 = 48)

Aus Linux Raid Wiki . Siehe auch diesen einfachen Rechner für verschiedene RAID-Level und Anzahl der Festplatten.

Für die Ausrichtung der SSD-Löschblöcke gelten folgende Parameter:

  • fs block size (ex. 4096)
  • SSD-Löschblockgröße (z. B. 128 KB)
  • Streifenbreite: Erase-Block-Size / Fs-Block-Size (zB 128k / 4k = 32)

Von Theodores SSD-Post .

LVM-Extents ausrichten

Das potenzielle Problem besteht darin, dass LVM einen 192k-Header erstellt. Dies ist ein Vielfaches von 4 KB (also kein Problem bei 4 KB-Blockdatenträgern), jedoch möglicherweise kein Vielfaches der RAID-Stripe-Größe (wenn LVM auf einem RAID ausgeführt wird) oder der SSD-Löschblockgröße (wenn LVM auf einer SSD ausgeführt wird).

Informationen zur Umgehung finden Sie in Theodores Beitrag .

jg-faustus
quelle
@Marco Wie so? Das erste für IBM Developer Works enthält sogar ein Benchmark-Diagramm der Schreibleistungsbeeinträchtigung für die Verwendung nicht ausgerichteter Partitionen und eine Seitenleiste für RAID. Der Blogpost von Tso über die Ausrichtung von SSDs hat sich mindestens zweimal verschoben, seit ich das geschrieben habe. Der Link wurde erneut aktualisiert, es gibt jedoch keine Garantie, dass er weiterhin funktioniert.
jg-faustus
Alternativer Link auf SSD: Ausrichten von SSD-Partitionen
jg-faustus
8

Ein Freund von mir wies darauf hin, dass ich nur mkfs.ex4 direkt /dev/md1ohne Partitionierung ausführen kann, also habe ich die Partition gelöscht und das getan und sie scheint jetzt zu formatieren.

Jorge Castro
quelle
6

Ich finde diesen Weg am einfachsten

parted -a opt /dev/md0
(parted) u MiB
(parted) rm 1
(parted) mkpart primary 1 100%

oder eine alternative schmutzige Methode würde einfach so gehen

(parted) mkpart primary ext4 1 -1
AllGamer
quelle
Die geteilte Dokumentation schlägt vor, MB und GB zu verwenden, nicht MiB oder GiB, wenn parted versuchen soll, Partitionen automatisch zu optimieren.
Felipe Alvarez
1

Offenbar möchte mkfs.ext4, dass Dateisysteme auf Ihrem RAID an einer 64-KB-Grenze gestartet werden. Wenn Sie die gesamte Festplatte verwenden, beginnt diese bei 0, was natürlich auch ein Vielfaches von 64 KiB ist ...

Die meisten Partitionierungs-Tools verwenden heutzutage ohnehin standardmäßig eine 1-MiB-Grenze (fdisk wahrscheinlich nicht).

Der Grund dafür ist, dass die meisten Festplatten und SSDs physische Sektoren auf dem Gerät verwenden, die viel größer als die logischen Sektoren sind. Wenn Sie einen logischen Sektor von 512 Bytes von der Festplatte lesen, muss die Hardware tatsächlich eine viel größere Datenmenge lesen.

Bei Ihrem Software-RAID-Gerät passiert etwas Ähnliches: Die Daten darauf werden mit den Standardeinstellungen von mdadm in "Chunks" von 64 KB gespeichert.

JanC
quelle