Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Manual de referencia de parámetros ajustables de Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (Español) |
1. Descripción general del ajuste del sistema Oracle Solaris
2. Parámetros ajustables del núcleo de Oracle Solaris
3. Parámetros ajustables de Oracle Solaris ZFS
Dónde encontrar información sobre parámetros ajustables
Consideraciones de ajuste de ZFS
Recuperación previa en el nivel de archivo ZFS
Profundidad de cola de E/S del dispositivo ZFS
Ajuste del ZFS al utilizar el almacenamiento flash
Agregación de dispositivos flash como dispositivos caché o de registro ZFS
Consideraciones para anular asignaciones SCSI para dispositivos flash
Ajuste de ZFS para productos de la base de datos
Ajuste de ZFS para una base de datos Oracle
Consideraciones de uso de ZFS con MySQL
5. Parámetros ajustables del conjunto de protocolos de Internet
6. Parámetros de la utilidad del sistema
A. Historial de cambios de parámetros ajustables
La siguiente información se aplica a los SSD flash, la tarjeta aceleradora PCIe F20, la tarjeta aceleradora PCIe F40 y la matriz de almacenamiento flash F5100.
Revise los siguientes comentarios generales cuando utilice ZFS con almacenamiento flash:
Considere el uso de LUN o discos de latencia baja que se gestionan con un controlador con memoria persistente, si está disponible, para el ZIL (registro de intención ZFS). Esta opción puede ser mucho más económica que utilizar flash para confirmaciones de latencia baja. El tamaño de los dispositivos de registro sólo debe ser lo suficientemente grande como para mantener 10 segundos de máximo rendimiento de escritura. Entre los ejemplos se podría incluir una matriz de almacenamiento basada en LUN o un disco conectado a un HBA con una caché de escritura protegida por batería.
Se el dispositivo no está disponible, segmente una agrupación independiente de dispositivos flash para su uso como dispositivos de registro en una agrupación de almacenamiento ZFS.
Las tarjetas aceleradoras flash F40 y F20 contienen 4 módulos flash independientes y los exportan al sistema operativo. El F5100 contiene un máximo de 80 módulos flash independientes. Cada módulo flash aparece para el sistema operativo como un único dispositivo. El sistema operativo ve los SSD como un único dispositivo. Los dispositivos flash de pueden utilizar como dispositivos de registro ZFS para reducir la latencia de confirmación, especialmente si se utilizan en un servidor NFS. Por ejemplo, un único módulo flash de un dispositivo flash utilizado como dispositivo de registro ZFS puede reducir 10 veces la latencia de operaciones únicas de subprocesamiento ligero. Se pueden unir más dispositivos flash con el fin de alcanzar un mayor rendimiento en el caso de grandes cantidades de operaciones sincrónicas.
Se deben crear reflejos de los dispositivos de registro, por motivos de seguridad. Para obtener la máxima protección, los reflejos se deben crear en dispositivos flash separados. En el caso de tarjetas aceleradoras PCIe F20 y F40, la protección máxima se obtiene asegurándose de que los reflejos residan en diferentes tarjetas PCIe físicas. En el caso de la matriz de almacenamiento F5100, la máxima protección se obtiene colocando los reflejos en distintos dispositivos F5100.
Los dispositivos flash que no se utilizan como dispositivos de registro se pueden utilizar como dispositivos caché de segundo nivel. Esto sirve para descargar la IOPS del almacenamiento en disco principal y para mejorar la latencia de lectura de los datos utilizados habitualmente.
Revise las siguientes recomendaciones cuando agregue dispositivos flash como dispositivos caché o de registro ZFS.
Se puede agregar un dispositivo caché o de registro ZFS a una agrupación de almacenamiento ZFS existente mediante el comando zpool add. Preste mucha atención a los comandos zpool add. Si agrega un dispositivo de registro como un dispositivo de agrupación normal por error, deberá destruir y restaurar la agrupación desde cero. Se puede eliminar dispositivos de registro individuales de una agrupación.
Familiarícese con el comando zpool add antes de intentar esta operación en almacenamiento activo. Puede utilizar la opción zpool add -n para obtener una vista previa de la configuración sin crear la configuración. Por ejemplo, en la siguiente sintaxis de vista previa de zpool add incorrecta se intenta agregar un dispositivo como un dispositivo de registro:
# zpool add -n tank c4t1d0 vdev verification failed: use -f to override the following errors: mismatched replication level: pool uses mirror and new vdev is disk Unable to build pool from specified devices: invalid vdev configuration
Ésta es la sintaxis de vista previa de zpool add correcta para agregar un dispositivo de registro a una agrupación existente:
# zpool add -n tank log c4t1d0 would update 'tank' to the following configuration: tank mirror c4t0d0 c5t0d0 logs c4t1d0
Si se especifican varios dispositivos, éstos se segmentan juntos. Para obtener más información, consulte los ejemplos que aparecen a continuación o zpool(1M).
Un dispositivo flash, c4t1d0, se puede agregar como un dispositivo de registro ZFS:
# zpool add pool log c4t1d0
Si hay dos dispositivos flash disponibles, puede agregar dispositivos de registro reflejados:
# zpool add pool log mirror c4t1d0 c4t2d0
Los dispositivos flash disponibles se pueden agregar como un dispositivo caché para las operaciones de lectura.
# zpool add pool cache c4t3d0
No se pueden reflejar dispositivos caché, éstos se segmentarán juntos.
# zpool add pool cache c4t3d0 c4t4d0
ZFS está diseñado para trabajar con dispositivos de almacenamiento que gestionan una caché de nivel de disco. ZFS generalmente le indica al dispositivo de almacenamiento que vacíe la caché para garantizar que los datos estén conservados de forma segura en un almacenamiento estable. Para el almacenamiento JBOD, esto funciona de la manera diseñada y sin problemas. Para muchas matrices de almacenamiento basado en NVRAM, posiblemente se produzca un problema de rendimiento si la matriz adopta la solicitud de vaciado de caché y lleva a cabo una acción, en lugar de ignorarla. Algunas matrices de almacenamiento vacían sus cachés de gran tamaño a pesar de que la protección NVRAM hace que esas cachés sean tan eficaces como el almacenamiento estable.
ZFS realiza vaciados poco frecuentes (cada 5 segundos aproximadamente) después de las actualizaciones de uberblock. La poca frecuencia de vaciado es bastante intrascendente, de modo que no se garantiza ningún ajuste. ZFS también realiza un vaciado cada vez que una aplicación solicita una escritura síncrona (O_DSYNC, fsync, compromiso NFS, etc.). La aplicación espera la finalización de este tipo de vaciado, que afecta el rendimiento. En gran medida, de hecho. Desde un punto de vista de rendimiento, esto neutraliza los beneficios de tener un almacenamiento basado en NVRAM.
Recientemente se demostró que el ajuste del vaciado de caché contribuye al rendimiento de los dispositivos flash cuando se utilizan como dispositivos de registro. Cuando todos los LUN expuestos a ZFS provienen de una matriz de almacenamiento protegida por NVRAM y los procedimientos garantizan que no se agregarán LUN no protegidos en el futuro, ZFS se puede ajustar para que no emita las solicitudes de vaciado configurando zfs_nocacheflush. Si alguno de los LUN expuestos a ZFS no están protegidos mediante NVRAM, este ajuste puede originar la pérdida de datos, daños en el nivel de la aplicación o incluso daños en la agrupación. En algunas matrices de almacenamiento protegido por NVRAM, el comando de vaciado de caché no es operativo, de modo que, en esta situación, el ajuste no produce diferencias de rendimiento.
Un cambio reciente en el sistema operativo es que la semántica de la solicitud de vaciado ahora puede indicar a los dispositivos de almacenamiento que ignoren las solicitudes si tienen la protección adecuada. Este cambio requiere un cambio en nuestros controladores de discos y para que el dispositivo NVRAM admita la semántica actualizada. Si el dispositivo NVRAM no reconoce esta mejora, siga estas instrucciones para indicar al sistema operativo Solaris que no envíe comandos de sincronización de caché a la matriz. Si sigue estas instrucciones, asegúrese de que todos los LUN de destino estén protegidos por NVRAM.
En ocasiones, los dispositivos flash y NVRAM no anuncian adecuadamente al sistema operativo que no son dispositivos y que la caché no necesita ser vaciada. El vaciado de caché es una operación costosa. En algunos casos, el vaciado innecesario puede entorpecer el rendimiento drásticamente.
Revise las siguientes restricciones de sintaxis de zfs_nocacheflush antes de aplicar las entradas de ajuste que aparecen a continuación:
La siguiente sintaxis de ajuste se puede incluir en sd.conf, pero solamente debe haber una única entrada sd-config-list por proveedor/producto.
Si se desean varias entradas de dispositivos, se pueden especificar varios pares de ID de proveedor y cadenas de ajuste sd en la misma línea mediante la sintaxis siguiente:
# "012345670123456789012345","tuning ", sd-config-list="|-VID1-||-----PID1-----|","param1:val1, param2:val2", "|-VIDN-||-----PIDN-----|","param1:val1, param3:val3";
Asegúrese de que la cadena del ID de proveedor (VID) esté completada con 8 caracteres y la cadena del ID de de producto (PID), con 16 caracteres, como se describe en el ejemplo anterior.
Precaución - Todos los comandos de sincronización de caché son omitidos por el dispositivo. Utilice esto bajo su propia responsabilidad. |
Utilice la utilidad format para ejecutar el subcomando inquiry en un LUN de la matriz de almacenamiento. Por ejemplo:
# format . . . Specify disk (enter its number): x format> inquiry Vendor: ATA Product: Marvell Revision: XXXX format>
Seleccione una de las siguientes opciones en función de la arquitectura:
En el caso de los dispositivos flash F40, agregue la siguiente entrada a /kernel/drv/sd.conf. En la entrada que aparece a continuación, asegúrese de que "ATA " se rellene con 8 caracteres y "3E128-TS2-550B01" contenga 16 caracteres. La longitud total de la cadena es de 24 caracteres.
sd-config-list="ATA 3E128-TS2-550B01","disksort:false, cache-non:true";
En el caso de los dispositivos flash F20 y F5100, elija una de las siguientes opciones en función de la arquitectura. En las siguientes entradas, "ATA " se rellenó con 8 caracteres y "MARVELL SD88SA02" contiene 16 caracteres. La longitud total de la cadena es de 24 caracteres.
Muchas arquitecturas SPARC: agregue la siguiente entrada a /kernel/drv/ssd.conf:
ssd-config-list = "ATA MARVELL SD88SA02","throttle-max:32, disksort:false, cache-non:true";
Controladores x64 y algunos controladores SPARC: agregue la siguiente entrada a /kernel/drv/sd.conf
ssd-config-list="ATA MARVELL SD88SA02","throttle-max:32, disksort:false, cache-non:true";
Agregue con cuidado espacios en blanco para que el ID de proveedor (VID) tenga 8 caracteres de longitud (aquí ATA) y el ID de producto (PID) tenga 16 caracteres de longitud (aquí MARVELL) en la entrada sd-config-list, como se muestra en el ejemplo.
Reinicie el sistema.
Puede ajustar zfs_nocacheflush para que vuelva a su valor predeterminado (0) sin que esto afecte negativamente el rendimiento.
El sistema operativo Solaris 11.1 tiene un problema que ha originado llamadas excesivas a rutinas de anulación de asignación SCSI. Este problema concreto afecta negativamente el rendimiento de flash. La solución alternativa es desactivar la función de anulación de asignación de la siguiente manera:
Incluya la siguiente entrada en el archivo /etc/system:
set zfs:zfs_unmap_ignore_size=0
Reinicie el sistema.