Crea un zfs raidz2 con discos 4k

Crea un zfs raidz2 con discos 4k

Quiero crear un zfs raidz2 con 4 discos. Sé que esto "desperdiciará" al menos el 50% del espacio, pero mi objetivo es lograr una alta tolerancia contra fallas del disco. No se recomienda usar 5 discos para raidz2 y 6 discos son demasiado costosos e innecesarios para mí. Tendré discos de 3 TB (o tal vez 4 TB), todos los cuales tienen sectores de 4k con emulación de 512 bytes.

He leído muchas cosas sobre zfs y raidz2 y estoy empezando a confundirme.

¿Debo particionar los discos? Leí que es una buena idea crear particiones para que el sistema operativo sepa que el disco no está vacío. La partición también puede ayudar a alinear sectores de 4k.

¿GPT o MBR?Hasta donde tengo entendido, GPT es imprescindible para discos de 3 TB (y más).

¿Cómo debo crear la partición?¿Esto me dará particiones correctamente alineadas? sudo parted --align optimal /dev/sdX mklabel gpt mkpart primary 1 0% 3TB

Pregunta adicional: ¿qué tamaño tendrá la partición creada mkpart primary 1 0% 3TB? Lo será 3*10^12 - 4096 byte?

Mi intención no es utilizar el tamaño completo del disco, sino limitarme a 3 TB para poder reemplazar una unidad defectuosa por un modelo diferente.

¿Lo necesito ashift=12si tengo particiones alineadas?¿Es inútil? ¿Me hace daño de alguna manera?

¿Qué pasa con el tamaño de la tira?¿Necesito modificarlo? ¿Qué pasa si uso 5 discos en lugar de 4 discos?

¿Hay algo más que debería considerar?

Respuesta1

Debe configurar ashift manualmente si su disco informa valores incorrectos, que es el caso de todos los discos dentro del período de transición (4K internamente, 512 lógicamente): los discos anteriores informan los 512 correctos, los discos posteriores informan los 4k correctos. Por supuesto, siempre puede especificarlo, simplemente sobrescribe lo que el propio disco informaría/sugeriría al sistema.

Si no está seguro, también puede crear un grupo, anotar el tamaño utilizable, luego destruirlo, establecer ashift en todos los discos en 12, crearlo nuevamente y comparar los tamaños. Si son iguales, sus discos son honestos acerca de su contenido.

Particionar discos sólo debería ser necesario si sus discos no se reconocen correctamente o si desea tener tamaños más pequeños de lo posible.

Respuesta2

ZFS en Linux particionará los discos automáticamente. Antes no hacía esto. Se verá así:

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2E55AB8A-8B22-494E-A971-B6D639BA14B1

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048 1953507327 1953505280 931.5G Solaris /usr & Apple ZFS
/dev/sdb9  1953507328 1953523711      16384     8M Solaris reserved 1

Además, probablemente utilizará el ashiftvalor correcto automáticamente. Mi SSD tiene 13, el HDD anterior tiene 12, como se esperaba.

Simplemente haz lo siguiente:

zpool create tank raidz2 sda sdb sdc sdd

Luego verifique zdbque ashiftparezca correcto.

información relacionada