Comment aligner correctement ma table de partition?


19

Je suis en train de construire ma première baie RAID5. J'ai utilisé mdadm pour créer la configuration suivante:

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

Pendant ce temps, j'ai décidé de formater la bête avec la commande suivante:

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

Je ne sais pas quoi faire à propos de "l'alignement / dev / md1p1 est décalé de 63488 octets." et comment partitionner correctement les disques afin de pouvoir les formater correctement.

Réponses:


17

Depuis l'alignement apparaît dans de nombreux endroits -

  • Disques durs "Advanced Format" avec blocs 4k
  • SSD
  • RAID
  • LVM

- Je vais développer un peu la question.

Alignement des partitions

«Linux sur des disques de 4 Ko» (IBM developerWorks) parcourt les étapes avec fdisk, parted et GPT fdisk.

Avec 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

Alignement du système de fichiers

Ceci est principalement pertinent pour le RAID (niveaux 0, 5 et 6, pas le niveau 1); le système de fichiers fonctionne mieux s'il est créé en connaissant les tailles de bande.

Il peut également être utilisé pour les SSD si vous souhaitez aligner le système de fichiers sur la taille du bloc d'effacement des SSD (Theodore Tso, développeur du noyau Linux).

Dans le poste OP, il a mkfsapparemment détecté automatiquement les paramètres optimaux, aucune autre action n'a donc été requise.

Si vous souhaitez vérifier, pour le RAID les paramètres pertinents sont:

  • taille de bloc ( taille de bloc du système de fichiers, ex. 4096)
  • taille de bande (identique à la taille de bloc mdadm, ex. 64k)
  • foulée: stripe size / block size (ex. 64k / 4k = 16)
  • largeur de bande: stride * #-of-data-disks (ex. 4 disques RAID 5 est 3 disques de données; 16 * 3 = 48)

Du Linux Raid Wiki . Voir également cette calculatrice simple pour différents niveaux de RAID et nombre de disques.

Pour l' alignement des blocs d'effacement SSD, les paramètres sont les suivants:

  • taille de bloc fs (ex. 4096)
  • Taille du bloc d'effacement SSD (ex. 128k)
  • largeur de bande: taille du bloc d'effacement / taille du bloc fs (ex. 128k / 4k = 32)

Du post SSD de Theodore .

Alignement des extensions LVM

Le problème potentiel est que LVM crée un en-tête 192k. Il s'agit d'un multiple de 4k (donc pas de problème avec les disques de bloc 4k) mais peut ne pas être un multiple de taille de bande RAID (si LVM s'exécute sur un RAID) ou de taille de bloc d'effacement SSD (si LVM s'exécute sur SSD).

Voir le post de Theodore pour la solution de contournement.


@Marco Comment ça? Le premier, à IBM Developer Works, a même un graphique de référence de la pénalité de performance d'écriture pour l'utilisation de partitions non alignées, et une barre latérale sur RAID. Le blog de Tso sur l'alignement des SSD a bougé au moins deux fois depuis que j'ai écrit cela. Mis à jour le lien à nouveau, mais rien ne garantit qu'il continuera à fonctionner.
jg-faustus

Lien alternatif sur SSD: Alignement des partitions SSD
jg-faustus

8

Un de mes amis a fait remarquer que je peux juste mkfs.ex4 directement /dev/md1sans partitionner quoi que ce soit, j'ai donc supprimé la partition et l'ai fait et il semble que le formatage soit maintenant.


6

Je trouve que cette façon est la plus simple

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

ou une autre méthode sale irait simplement comme ça

(parted) mkpart primary ext4 1 -1

La documentation séparée suggère d'utiliser MB et GB, pas MiB ou GiB, si l'on souhaite permettre à parted d'essayer d'optimiser automatiquement les partitions.
Felipe Alvarez

1

Il semble que mkfs.ext4 souhaite que les systèmes de fichiers de votre RAID démarrent sur une limite de 64 Ko. Si vous utilisez tout le disque, il commence à 0, ce qui est bien sûr aussi un multiple de 64 Ko ...

De nos jours, la plupart des outils de partitionnement utiliseront une limite de 1 Mio par défaut (fdisk ne le fait probablement pas).

La raison en est que la plupart des disques durs et SSD utilisent sur l'appareil des secteurs physiques beaucoup plus grands que les secteurs logiques. Le résultat est que si vous lisez un secteur logique de 512 octets à partir du disque, le matériel doit en fait lire une quantité beaucoup plus importante de données.

Dans le cas de votre périphérique RAID logiciel, quelque chose de similaire se produit: les données sur celui-ci sont stockées dans des "morceaux" de 64 Ko avec les paramètres mdadm par défaut.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.