ZFS tiene muchas propiedades configurables diferentespara piscinas,para desarrolladores de vídeoypara conjuntos de datos. Muchos de ellos se pueden cambiar en cualquier momento, pero algunos solo se pueden configurar en el momento de la creación (o solo afectan los datos escritos posteriormente, por lo quedeberíarealmente se establecerá en el momento de la creación).
Como novato, busqué muchas preguntas diferentes y encontré varias propiedades que se sugirieron configurar con frecuencia.
Obviamente, cada caso de uso tendrá pequeñas diferencias en cuanto a qué propiedades tienen sentido, pero parece haber un conjunto común de propiedades que la mayoría de los usuarios de zfs deberían usar. Estoy pensando en aquellas propiedades para las cuales uno debería tener una razón activa.nopara usarlos. ¿Cuáles son esos y por qué?
Respuesta1
(Descargo de responsabilidad: como principiante en ZFS, esto es sólo lo que entiendo hasta ahora y pretende ser un impulso para obtener información más completa y confiable de otros).
Propiedades de la piscina
ashift=12
En un nivel básico estoGarantiza que las operaciones de lectura/escritura de ZFS se alineen con los límites de bloque del almacenamiento subyacente..Teóricamentepara bloques de 512 bytes
ashift=9
estaría bien, pero las unidades con esos son raras hoy en día y la penalización por haberloashift
configurado "demasiado alto" es bastante baja.autotrim=on
AutomáticamenteInformar al almacenamiento de bloques subyacente cuando ya no se necesita algo de espacio.. Especialmente útil en SSD, pero tampoco parece perjudicar a los HDD clásicos (aunque probablemente no ayude allí).
Propiedades del conjunto de datos
Estos se pueden especificar con zfs create -o
o mediante el -O
interruptor de zpool create
para el sistema de archivos raíz (que de forma predeterminada se heredará a otros).
xattr=sa
Aumenta significativamente el rendimiento de xattr sin ningún inconveniente real. (Sólo disponible en Linuxpor ahora).
dnodesize=auto
Esta propiedad se debe utilizar cuando se utiliza
xattr=sa
. La razón principal para no usarlos esinteractuar con sistemas que no admiten la función ZFS requerida.relatime=on
El seguimiento del tiempo de acceso a los archivos puede resultar muy costoso incluso en interacciones de solo lectura.
relatime
reduce significativamente la granularidad/frecuencia de estas actualizaciones a costa de información menos precisa en laatime
propiedad (al tiempo que se mantienen algunas invariantes comúnmente requeridas). Tenga en cuenta que este es el valor predeterminado para casi todos los sistemas de archivos en Linux desde hace mucho tiempo. Si uno necesitaatime
información precisa, no active esta opción. Si uno sabe que esoatime
nunca es necesario,atime=off
obtendrá un rendimiento aún mejor.normalization=formD
Esto asegurará que los nombres de los archivos siempre estén normalizados de la misma manera. Como efecto secundario importante, esto también significa que el sistema de archivos tratará los nombres de archivos como codificados en UTF-8 y ya no podrá almacenar nombres de archivos con ciertos nombres "rotos" que otros sistemas de archivos aceptan. Si esto no es lo que desea, omítalo.
compression=lz4
El consenso parece ser que el coste de la compresión es tan bajo en el hardware moderno que, en la práctica, esto sólo tiene ventajas. Es posible que desee desactivar esta opción en los conjuntos de datos que almacenan predominantemente datos que ya están muy comprimidos.
No
recordsize
El tamaño de registro predeterminado parece ser un buen término medio para muchos casos de uso, pero algunos casos de uso, como las bases de datos, podrían beneficiarse de valores específicos.
Fuentes
- Raíz de Debian en ZFS
- Muchas publicaciones individuales en el foro.