it-swarm.com.de

Wie richte ich meine Partitionstabelle richtig aus?

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

[email protected]:~# 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:

[email protected]:~# 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
[email protected]:~# ^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.

19
Jorge Castro

Ein Freund von mir wies darauf hin, dass ich nur mkfs.ex4 direkt auf /dev/md1 kann, ohne irgendetwas zu partitionieren, also habe ich die Partition gelöscht und habe das getan und sie scheint jetzt zu formatieren.

7
Jorge Castro

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 4-KB-Sektor-Festplatten" (IBM developerWorks) führt Sie mit fdisk, parted und GPT fdisk durch die einzelnen Schritte.

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 (Theodore Tso, Linux-Kernel-Entwickler).

Im OP-Beitrag mkfs wurden anscheinend die optimalen Einstellungen automatisch erkannt, sodass 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)
  • schritt: stripe size / block size (ex. 64k/4k = 16)
  • streifenbreite: stride * #-of-data-disks (Beispiel: 4 Festplatten RAID 5 sind 3 Datenfestplatten; 16 * 3 = 48)

From Linux Raid Wiki . Siehe auch dieser einfache Rechner für unterschiedliche RAID-Level und Anzahl der Festplatten.

Für SSD-Löschblockausrichtung sind die 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-Beitrag .

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).

Siehe Theodores Beitrag für die Problemumgehung.

17
j-g-faustus

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
6
AllGamer

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.

1
JanC