Dos problemas Primero: ¿cómo particionar la unidad flash?
No debería necesitar hacer esto, pero ya no estoy seguro de si mi partición está alineada correctamente ya que me vi obligado a eliminar y crear una nueva tabla de particiones después de que gparted se quejara cuando intenté formatear la unidad de disco de FAT a ext4.
La respuesta ingenua sería decir "solo usa el valor predeterminado y todo va a estar bien". Sin embargo, si lee los siguientes enlaces, sabrá que las cosas no son tan simples: https://lwn.net/Articles/428584/ y http://linux-howto-guide.blogspot.com/2009/10/increase- usb-flash-drive-write-speed.html
Luego está también el tema de los cilindros, las cabezas y los sectores. Actualmente obtengo esto:
$sfdisk -l -uM /dev/sdd
Disk /dev/sdd: 30147 cylinders, 64 heads, 32 sectors/track
Warning: The partition table looks like it was made
for C/H/S=*/255/63 (instead of 30147/64/32).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End MiB #blocks Id System
/dev/sdd1 1 30146 30146 30869504 83 Linux
$fdisk -l /dev/sdd
Disk /dev/sdd: 31.6 GB, 31611420672 bytes
255 heads, 63 sectors/track, 3843 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00010c28
Entonces, desde mi comprensión actual, debería alinear las particiones a 4 MiB (actualmente está a 1 MiB). Pero todavía no sé cómo configurar los cabezales y sectores correctamente para mi dispositivo.
Segundo problema: sistema de archivos.
De los puntos de referencia que vi ext4 proporciona el mejor rendimiento, sin embargo, existe el problema de la nivelación del desgaste. ¿Cómo puedo saber que mi microcontrolador Transcend JetFlash 700 proporciona nivelación de desgaste? ¿O simplemente mataré mi disco más rápido?
He visto muchas publicaciones en la web que dicen que no te preocupes, las unidades más nuevas ya se encargan de eso. Pero nunca he visto una sola evidencia respaldada de eso y en algún momento la gente comienza a mezclar SSD con tecnología de unidades flash USB. ¡La opción segura sería ir a ext2, sin embargo, una serie de pruebas que realicé mostraron un rendimiento horrible!
Estos valores provienen de un escenario real y no de una prueba sintética:
42 files: 3,429,415,284 bytes copied to flash drive
original fat32: 15.1 MiB/s
ext4 after new partition table: 10.2 MiB/s
ext2 after new partition table: 1.9 MiB/s
Lea los enlaces que publiqué anteriormente antes de responder. También me interesarían las respuestas respaldadas con algunas referencias porque se dice y se repite mucho, pero carece de hechos.
Gracias por la ayuda.
fuente
Respuestas:
No se preocupe por los cilindros, las cabezas y los sectores y solo trabaje con sectores. La forma más fácil de alinear el sistema de archivos es simplemente no tener una tabla de particiones (es decir, crear el sistema de archivos
/dev/sdX
directamente). La mayoría de los sistemas Linux manejarán esto bien, pero Windows se asustará y tampoco podrá hacerlo arrancable. Si necesita una tabla de particiones, calcule cuántos sectores de 512 bytes forman un bloque de borrado. Los bloques de borrado son alrededor de 128-512KiB, por lo que si no puede averiguar qué usa su unidad flash, use 1024 sectores. Asegúrese de que las particiones comiencen en un múltiplo de este número.También desea informarle a ext2 / 3/4 sobre el tamaño del bloque de borrado para que pueda evitar la modificación innecesaria de bloques. Establezca ambos
stride
ystripe-width
el número de bloques del sistema de archivos que forman un bloque de borrado, por lo que al trabajar en un bloque de borrado de 512 KB use lo siguiente:En términos de rendimiento, no tener un diario debería mejorar el rendimiento (pero aumentar la posibilidad de corrupción de datos si se interrumpe la operación). Sin embargo, las extensiones de ext4 deberían mejorar el rendimiento porque es necesario modificar menos metadatos para archivos grandes. Probablemente usaría ext4 con el diario deshabilitado:
fuente
cat /proc/mtd
para averiguar el tamaño de los bloques de borrado para dispositivos flash conectados.En la actualidad, la mayoría de las herramientas de creación de particiones y sistema de archivos de Linux tienen valores predeterminados que alinean los datos en los límites de 4K e incluso usarán el tamaño de bloque subyacente si el disco lo expone para que las cosas no sean tan malas como en el artículo LWN:
TLDR; Al usar una distribución moderna de Linux (digamos 2013 o posterior) con versiones recientes de herramientas para crear sus particiones y sistemas de archivos, la alineación mejor (pero no perfecta) ocurrirá automáticamente. También tenga cuidado: los mejores valores para una tarjeta SD pueden ser diferentes a los de una memoria USB (creo que su Transcend JetFlash es una memoria USB, no una tarjeta SD). Tendría que comparar para deducir el verdadero tamaño del bloque de borrado subyacente en flash barato ...
fuente
Además, en su fstab, asegúrese de usar la opción de montaje "noatime" para evitar escrituras innecesarias cada vez que se accede a un archivo.
fuente