Come allineare correttamente la mia tabella delle partizioni?


19

Sto costruendo il mio primo array RAID5. Ho usato mdadm per creare il seguente setup:

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

Intanto ho deciso di formattare la bestia con il seguente comando:

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

Non sono sicuro di cosa fare riguardo a "L'allineamento / dev / md1p1 è compensato da 63488 byte." e come partizionare correttamente i dischi in modo che io possa formattarli correttamente.

Risposte:


17

Poiché l'allineamento viene visualizzato in molti punti -

  • Dischi rigidi "Advanced Format" con blocchi 4k
  • SSD
  • RAID
  • LVM

- Espanderò un po 'la domanda.

Allineamento delle partizioni

"Linux su dischi del settore da 4kB" (IBM developerWorks) illustra i passaggi con fdisk, parted e GPT fdisk.

Con 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

Allineamento del file system

Questo è principalmente rilevante per RAID (livelli 0, 5 e 6; non livello 1); il file system funziona meglio se viene creato con conoscenza delle dimensioni delle strisce.

Può essere utilizzato anche per SSD se si desidera allineare il file system alle dimensioni del blocco di cancellazione SSD (Theodore Tso, sviluppatore del kernel Linux).

Nel post OP mkfsapparentemente ha rilevato automaticamente le impostazioni ottimali, quindi non sono state necessarie ulteriori azioni.

Se si desidera verificare, per RAID i parametri rilevanti sono:

  • dimensione del blocco ( dimensione del blocco del file system, es. 4096)
  • dimensione della striscia (uguale alla dimensione del blocco mdadm, es. 64k)
  • passo: stripe size / block size (es. 64k / 4k = 16)
  • stripe-width: stride * #-of-data-disks (es. 4 dischi RAID 5 è 3 dischi di dati; 16 * 3 = 48)

Da Linux Raid Wiki . Vedi anche questa semplice calcolatrice per diversi livelli RAID e numero di dischi.

Per SSD cancellare l'allineamento dei blocchi i parametri sono:

  • dimensione del blocco fs (es. 4096)
  • Dimensione blocco cancellazione SSD (es. 128k)
  • larghezza della striscia: cancella-dimensione-blocco / fs-dimensione-blocco (es. 128k / 4k = 32)

Dal post SSD di Theodore .

Allineamento delle estensioni LVM

Il potenziale problema è che LVM crea un'intestazione 192k. Questo è un multiplo di 4k (quindi nessun problema con i dischi a 4k-block) ma potrebbe non essere un multiplo di dimensioni di striping RAID (se LVM funziona su un RAID) o SSD cancellare dimensioni di blocco (se LVM funziona su SSD).

Vedi il post di Theodore per la soluzione alternativa.


@Marco Come? Il primo, per IBM Developer Works, ha anche un grafico di riferimento della penalità delle prestazioni di scrittura per l'utilizzo di partizioni non allineate e una barra laterale su RAID. Il post di Tso sull'allineamento SSD si è spostato almeno due volte da quando l'ho scritto. Aggiornato di nuovo il link, ma non c'è garanzia che continuerà a funzionare.
jg-faustus,


8

Un mio amico ha sottolineato che posso semplicemente mkfs.ex4 andare avanti /dev/md1senza partizionare nulla, quindi ho eliminato la partizione e l'ho fatto e sembra che ora si stia formattando.


6

Trovo che questo sia il più semplice

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

o un metodo sporco alternativo andrebbe semplicemente così

(parted) mkpart primary ext4 1 -1

La documentazione parted suggerisce di utilizzare MB e GB, non MiB o GiB, se si desidera consentire a parted di tentare di ottimizzare automaticamente le partizioni.
Felipe Alvarez,

1

Sembra che mkfs.ext4 voglia che i filesystem sul tuo RAID inizino con un limite di 64 KiB. Se usi l'intero disco, inizia da 0, che ovviamente è anche un multiplo di 64 KiB ...

La maggior parte degli strumenti di partizionamento oggi utilizzerà comunque un limite di 1 MiB di default (probabilmente fdisk non lo fa).

La ragione di ciò è che la maggior parte dei dischi rigidi e SSD utilizzano settori fisici sul dispositivo che sono molto più grandi dei settori logici. Il risultato è che se si legge un settore logico di 512 byte dal disco, l'hardware deve effettivamente leggere una quantità molto maggiore di dati.

Nel caso del tuo dispositivo RAID software succede qualcosa di simile: i dati su di esso vengono memorizzati in "blocchi" di 64 KiB con le impostazioni mdadm predefinite.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.