Uso de unidades 4k con md / LVM / dm-crypt

8

Sé que tengo que alinear mis unidades 4k por un múltiplo de 8 sectores, pero ¿qué pasa con md-RAID / LVM / dm-crypt? ¿Cómo le digo a estas capas que mi disco es de 4k? Si no respetan el tamaño del sector 4k, la alineación de la partición es inútil. ¿Cómo alineo LVM / md / crypto-layers? Gracias.

Vincent
fuente
2
Estaba pensando, "Hmm, 4 kilobytes parecen terriblemente pequeños para una unidad de disco". Quizás sea el nuevo 640k.
Tom O'Connor
@Tom. Muchos sistemas de archivos usan un tamaño de bloque de 4 KB, por lo que sectores más grandes resultarían en una gran cantidad de lectura, modificación y escritura de rendimiento. En segundo lugar, el impulso hacia sectores más grandes fue principalmente para aumentar la eficiencia de ECC, y hay rendimientos decrecientes para hacerlo aún más grande.
Janneb
@janneb Eres Buzz Killington AICMFP
Tom O'Connor

Respuestas:

4

¡Ten cuidado! Las etiquetas gpt, necesarias para discos> 2 TiB, tienen una longitud de 39 (512 bytes) sectores. Entonces, si crea su primera partición inmediatamente después de la etiqueta, no estará en un límite de 4KiB.

GNU se separó no hace esto por defecto, probablemente porque muchas unidades de "Formato avanzado" afirman falsamente que sus sectores físicos , no solo sus sectores lógicos, siguen siendo solo 512B.

Entonces, si está utilizando GNU dividido, asegúrese de que cada partición comience en un LBA divisible por 8 (los LBA siguen siendo 512B, por lo que 8 * 512B = 4KiB). Los LBA se originan en 0, así que inicie la primera partición en "40s".

Además, si usa GRUB, deje espacio para su arranque de segunda etapa. Las etiquetas de MS-DOS son 63 sectores, con suficiente espacio sin usar para que GRUB guarde su arranque de la segunda etapa, pero no hay espacio sin usar en una etiqueta gpt. Entonces, haga una pequeña partición 1, establezca su bandera "bios_grub", y luego cree sus particiones "reales" después de eso, asegurándose de que cada una comience en un LBA que sea un múltiplo de 8.

Phil Karn
fuente
3

Ver https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues

La versión corta es que si tiene una distribución reciente, automáticamente debería hacer lo correcto. Para las distribuciones más antiguas, es un poco más complicado.

Para LVM, debe investigar la --dataalignmentopción para pvcreate, o para distribuciones aún más antiguas -–metadatasize.

MD, AFAIK, coloca sus propios metadatos al final de las particiones, por lo que siempre debe estar alineado con la partición subyacente.

Para mkfs, nuevamente el sistema de archivos debe estar alineado con la partición subyacente. Para algunos sistemas de archivos, puede agregar opciones para el ancho de banda y el tamaño de banda en caso de que se ejecute en un dispositivo RAID, de modo que el sistema de archivos pueda intentar alinear cosas en los límites de banda RAID.

janneb
fuente
1

El problema es principalmente con la alineación de la partición que comienza con la estructura del disco subyacente. para mantener la compatibilidad con versiones anteriores, los discos 'mienten' al BIOS / os de que tienen sectores 512B, mientras que de hecho tienen sectores 4096B en el caso de los discos duros modernos, sectores de 32-64kB en el caso de las incursiones / ssds de extracción más comunes.

particiones desalineadas dañarán su rendimiento. He hecho algunos puntos de referencia solo en particiones regulares en la parte superior del disco, sin lvm y mis resultados medidos con bonnie ++ no tenían la alineación adecuada:

Sequential Output Block: 29MB/s
Sequential Output Rewrite: 20MB/s

con alineación:

Sequential Output Block: 70MB/s
Sequential Output Rewrite: 37MB/s

verifique esto para la alineación de lvm.

pQd
fuente
0

La mayoría de las distribuciones más nuevas se actualizan para saber sobre el tema 4K por ahora. Acabo de construir una configuración md-RAID / LVM / XFS en un montón de unidades de 2TB sin problemas. No hice nada especial.

Porche
fuente
No estoy de acuerdo ... claro, todo funciona, pero las particiones están mal alineadas, lo que perjudica el rendimiento.
pQd
Bueno, esto plantea las preguntas. Tengo varias incursiones diferentes usando unidades de 2TB a 500GB con un LVM encima de ellas formateadas con XFS. Entonces, ¿cómo funcionaría todo si todas las unidades no son 4k? Me encantaría hacer pruebas de rendimiento, pero mi servidor terra es más lento que las unidades, por lo que no tendría sentido.
Porche