¿Cómo alineo mi tabla de particiones correctamente?

19

Estoy en el proceso de construir mi primera matriz RAID5. He usado mdadm para crear la siguiente configuración:

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

Mientras eso sucede, decidí formatear la bestia con el siguiente 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

No estoy seguro de qué hacer con "/ dev / md1p1 la alineación está compensada por 63488 bytes". y cómo particionar correctamente los discos para que coincidan para que pueda formatearlo correctamente.

Jorge Castro
fuente

Respuestas:

17

Dado que la alineación aparece en muchos lugares,

  • Discos duros de "formato avanzado" con bloques de 4k
  • SSD
  • REDADA
  • LVM

- Ampliaré un poco la pregunta.

Alinear particiones

"Linux en discos de 4kB-sector" (IBM developerWorks) recorre los pasos con fdisk, parted y 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

Alinear el sistema de archivos

Esto es principalmente relevante para RAID (niveles 0, 5 y 6; no nivel 1); el sistema de archivos funciona mejor si se crea con conocimiento de los tamaños de las bandas.

También se puede usar para SSD si desea alinear el sistema de archivos con el tamaño de bloque de borrado de SSD (Theodore Tso, desarrollador del kernel de Linux).

En la publicación OP mkfsaparentemente se detectó automáticamente la configuración óptima, por lo que no se requirió ninguna otra acción.

Si desea verificar, para RAID los parámetros relevantes son:

  • tamaño de bloque ( tamaño de bloque del sistema de archivos, ej. 4096)
  • tamaño de la raya (igual que el tamaño del fragmento mdadm, por ejemplo, 64k)
  • zancada: stripe size / block size (ej. 64k / 4k = 16)
  • ancho de banda: stride * #-of-data-disks (por ejemplo, 4 discos RAID 5 son 3 discos de datos; 16 * 3 = 48)

De Linux Raid Wiki . Consulte también esta calculadora simple para conocer los diferentes niveles de RAID y la cantidad de discos.

Para la alineación de bloques de borrado SSD, los parámetros son:

  • fs tamaño de bloque (ej. 4096)
  • Tamaño de bloque de borrado SSD (ej. 128k)
  • ancho de banda: erase-block-size / fs-block-size (ej. 128k / 4k = 32)

De la publicación SSD de Theodore .

Alinear extensiones de LVM

El problema potencial es que LVM crea un encabezado de 192k. Este es un múltiplo de 4k (por lo que no hay problema con los discos de bloque de 4k), pero puede no ser un múltiplo del tamaño de banda RAID (si LVM se ejecuta en un RAID) o tamaño de bloque de borrado SSD (si LVM se ejecuta en SSD).

Vea la publicación de Theodore para la solución.

jg-faustus
fuente
@Marco ¿Cómo es eso? El primero, para IBM Developer Works, incluso tiene un gráfico de referencia de la penalización de rendimiento de escritura por usar particiones no alineadas, y una barra lateral en RAID. La publicación de blog de Tso sobre la alineación de SSD se ha movido al menos dos veces desde que escribí esto. Actualizó el enlace nuevamente, pero no hay garantía de que siga funcionando.
jg-faustus
Enlace alternativo en SSD: Alinear particiones SSD
jg-faustus
8

Un amigo mío señaló que puedo simplemente mkfs.ex4 /dev/md1sin particionar nada, así que eliminé la partición e hice eso y parece estar formateándose ahora.

Jorge Castro
fuente
6

Encuentro esta manera de ser la más fácil

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

o un método sucio alternativo simplemente iría así

(parted) mkpart primary ext4 1 -1
AllGamer
fuente
La documentación separada sugiere usar MB y GB, no MiB o GiB, si se desea permitir que las partes intenten optimizar las particiones automáticamente.
Felipe Alvarez
1

Parece que mkfs.ext4 quiere que los sistemas de archivos en su RAID comiencen en un límite de 64 KiB. Si usa todo el disco, comienza en 0, que por supuesto también es un múltiplo de 64 KiB ...

La mayoría de las herramientas de partición de hoy en día usarán un límite de 1 MiB de forma predeterminada de todos modos (fdisk probablemente no).

La razón de esto es que la mayoría de los discos duros y SSD utilizan sectores físicos en el dispositivo que son mucho más grandes que los sectores lógicos. El resultado de eso es que si lee un sector lógico de 512 bytes del disco, el hardware realmente tiene que leer una cantidad mucho mayor de datos.

En el caso de su dispositivo RAID de software, sucede algo similar: los datos se almacenan en "fragmentos" de 64 KiB con la configuración predeterminada de mdadm.

JanC
fuente