Valores de fragmentos de MDADM

Valores de fragmentos de MDADM

Tengo una matriz RAID 10 compuesta por dos SSD que usan mdadm en Linux,

lo creé con

mdadm --create --verbose --level=10 --metadata=1.2 --chunk=512 --raid-devices=2 --layout=f2 /dev/md/MyRAID10Array /dev/nvme0n1p3 /dev/nvme1n1p3

pero me pregunto por qué cuando miro la matriz obtengo un tamaño de fragmento de 65536 kb. También estoy pensando que --chunk=512 podría ser demasiado grande.

Desde gato /proc/mdstat

md127 : active raid10 nvme1n1p3[1] nvme0n1p3[0]
      942664704 blocks super 1.2 512K chunks 2 far-copies [2/2] [UU]
      [=====>...............]  resync = 29.5% (278703616/942664704) finish=55.2min speed=200170K/sec
      bitmap: 6/8 pages [24KB], 65536KB chunk

Respuesta1

Según la wiki de mdadm enhttps://raid.wiki.kernel.org/index.php/Mdstat, lo que estás viendo allí es el fragmento del mapa de bits, no el fragmento de la matriz. El tamaño del fragmento de la matriz es 512 K, tal como lo configuró, según el mensaje dos líneas arriba. Si bien la wiki no tiene exactamente claro el significado del valor del fragmento de mapa de bits, sí dice: "El mapa de bits en memoria utiliza 16 bits para cada fragmento de mapa de bits para contar todas las escrituras en curso en el fragmento, por lo que en realidad es hasta 16 veces más grande que el mapa de bits en el disco." Es posible que el "fragmento del mapa de bits" sea en realidad del tamaño de una "página" de mapa de bits en la memoria. Su matriz informa solo 8 páginas de mapa de bits, de las cuales 6 están cargadas en la memoria; Una vez que se complete la resincronización, el recuento de páginas del mapa de bits debería disminuir.

Respuesta2

chunkdefina la franja de elementos de la matriz RAID (es decir, qué tan grandes son las piezas (fragmentos) de datos). Desde elpágina de manual:

-c, --chunk=
              Specify chunk size in kilobytes.  The default when
              creating an array is 512KB.

Esto lo confirma mdstatla segunda línea:

942664704 blocks super 1.2 *512K chunks* 2 far-copies [2/2] [UU]

Los fragmentos de datos son diferentes demapa de bitsfragmentos, que definen las zonas activas cubiertas por el bit de cada mapa de bits. Este tipo de fragmentos son mucho más grandes: 64 MB en su caso:

bitmap: 6/8 pages [24KB], *65536KB chunk*

En general, para un RAID1/10 no es necesario ajustar estos parámetros. Sin embargo, tenga en cuenta que los valores predeterminados están optimizados para medios rotativos (HDD) en lugar de SSD rápidos, por lo que, si lo desea, puede experimentar con fragmentos de datos más pequeños (es decir, 8-64K). Sin embargo, no me molestaría en ajustar el mapa de bits.

información relacionada