Oracle® Hierarchical Storage Manager and StorageTek QFS Software Guía de instalación y configuración Versión 6.0 E56766-02 |
|
Anterior |
Siguiente |
Los pasos de configuración básica del sistema de archivos que se describen en los capítulos anteriores proporcionan un rendimiento óptimo y balanceado en la mayoría de las situaciones. De modo que si no está seguro acerca de cómo se comporta su aplicación, generalmente será mejor dejar los ajustes predeterminados de las configuraciones de esta sección. Sin embargo, si la aplicación realiza solicitudes de E/S extraordinariamente grandes o consistentes, se puede mejorar el rendimiento general mediante el ajuste o el cambio de la manera en la que el sistema de archivos gestiona la E/S física.
La E/S física es más eficiente cuando todas o la mayoría de las lecturas y escrituras comienzan y finalizan exactamente en límite de 512 bytes de un sector de disco. La E/S de disco solamente se puede producir en bloques de tamaño del sector. Por ello, cuando una solicitud de E/S sobrepasa un límite del sector, el sistema debe realizar operaciones adicionales para separar los datos de la aplicación de los datos no relacionados en el mismo sector. Debe asegurarse de que estos últimos no se dañen en el proceso. En el peor de los casos, cuando se realizan escrituras en los sectores, el sistema de archivos debe leer el sector, modificar los datos del sector en la memoria y, a continuación, escribir el sector nuevamente en el disco. Esta actividad mecánica adicional realiza dichas operaciones de lectura, modificación y escritura, que son sumamente costosas en términos de rendimiento.
Lamentablemente, la mayoría de las aplicaciones necesitan leer y escribir datos en tamaños variados que no están bien alineados con los límites del sector . Por este motivo, como muchos sistemas de archivos, Oracle HSM usa E/S paginada de forma predeterminada. El sistema de archivos gestiona solicitudes de E/S inmediatas desde la aplicación mediante la lectura desde una caché de datos o la escritura en ésta, en la memoria paginada de Solaris. El sistema de archivos actualiza de forma asíncrona la caché con lecturas y escrituras de tamaños más eficaces y mejor alineadas. Cada vez que lee datos de un disco, puede aprovechar al máximo la E/S física mediante la anticipación de las próximas lecturas y la carga de los datos correspondientes en la caché en la misma operación. La mayoría de las solicitudes de E/S se satisfacen, por lo tanto, mediante el uso de los datos en caché en páginas de memoria virtual, sin actividad de disco físico adicional. La E/S paginada usa memoria e impone una carga adicional en la CPU del sistema pero, en la mayoría de los casos, estos costos son más que desplazados por la mayor eficacia de E/S física.
Sin embargo, en unos pocos casos, la sobrecarga adicional asociada con la E/S paginada no es desplazada por sus ventajas. Las aplicaciones que siempre realizan E/S bien alineadas y las aplicaciones que se pueden ajustar para ello, no aprovechan nada de la caché de páginas. Las aplicaciones que realizan E/S sumamente grandes también pueden aprovechar muy poco del almacenamiento de páginas en caché, ya que únicamente el primer y el último sector están desalineados, y ya que las E/S grandes, pueden, en cualquier caso, ser demasiado grandes para ser conservadas en caché. Finalmente, las aplicaciones que transmiten datos de telemetría, videos de vigilancia u otros tipos de información en tiempo real pueden arriesgar la pérdida de datos irrecuperables si las escrituras no se confirman de inmediato para almacenamiento no volátil. En estos casos, es mejor usar E/S directa Cuando se especifica la E/S directa, el sistema de archivos transfiere datos directamente entre la memoria de la aplicación y el dispositivo de disco, y omite la caché de páginas.
Oracle HSM le otorga una latitud considerable en lo que respecta a la selección y el ajuste del comportamiento de caché de E/S. Una vez que haya comprendido las características de E/S de la aplicación y haya realizado las tareas descriptas en Ajustar los parámetros del controlador y del sistema Solaris para E/S anticipada del sistema de archivos, seleccione su enfoque de la siguiente manera:
Si la aplicación realiza de manera consistente solicitudes de E/S pequeñas, de tamaño variable o desalineadas, acepte la configuración predeterminada de Oracle HSM. No realice ninguno de los cambios de esta sección.
Si la aplicación realiza solicitudes de E/S desalineada de tamaño variable, pero más grandes que el promedio, deberá ocuparse de la Optimización de E/S paginada para transferencias de datos más grandes.
Si la aplicación realiza una combinación de solicitudes de E/S muy grandes o bien alineadas, y de solicitudes pequeñas y desalineadas, deberá ocuparse de la Activación de conmutación entre E/S directa y paginada.
Si la aplicación realiza de forma coherente solicitudes de E/S muy grandes o bien alineadas, deberá ocuparse de la Configuración del sistema de archivos para usar la E/S directa de forma exclusiva.
Si las aplicaciones que se ejecutan en los clientes del sistema de archivos compartido abren de forma coherente grandes cantidades de archivos, deberá ocuparse del Aumento del tamaño de la caché de consulta de nombres de directorio (DNLC).
La E/S paginada se puede ajustar para satisfacer mejor las características de la aplicación y del hardware. Las lecturas y las escrituras desde la caché deben ser lo suficientemente grandes para transferir el monto promedio de datos que la aplicación transfiere o la cantidad máxima de datos que el almacenamiento físico puede transferir, el que sea más grande. Si no podemos ajustar el comportamiento en caché de páginas para ninguna de las opciones, la caché será poco utilizada, las solicitudes de E/S requerirán más E/S física y el rendimiento general del sistema sufrirá.
Por ejemplo, considere la diferencia entre un dispositivo de datos md
que se implementa en un único volumen de disco y un dispositivo md
implementado en un grupo de volúmenes 3+1 RAID 5. Si gestionáramos cada solicitud de escritura desde la aplicación mediante la escritura de una unidad de asignación en disco (DAU) de 64 kilobytes desde la caché hasta esta última y omitiéramos el ancho de banda adicional posible con el dispositivo de varios discos, el dispositivo RAID debería dividir la E/S en tres fragmentos más pequeños y menos eficientes, de 21 y 22 kilobytes, antes de escribir datos en los tres discos de datos del grupo de RAID. Si se completaran las solicitudes de E/S de 64 kilobytes desde la aplicación, esto requeriría mucho más trabajo con el uso de esta configuración que si se hubiera usado la caché de páginas para ensamblar las solicitudes en una única E/S de 3 DAU y 192 kilobytes. Si la aplicación pudiera realizar solicitudes de E/S (o si se pudiera ajustar para ello) en múltiplos pares del ancho de banda del dispositivo (192, 384 o 576 kilobytes), podríamos almacenar en caché incluso más datos y transferir más con cada E/S física, reducir aún más la sobrecarga y aumentar el rendimiento respectivamente.
Por ello, identificamos los requisitos de E/S de su aplicación y comprendemos las propiedades de E/S de su hardware. Siga estos pasos.
Inicie sesión en el host del sistema de archivos como root
.
root@solaris:~#
Realice una copia de seguridad del archivo /etc/vfstab
del sistema operativo.
root@solaris:~#cp
/etc/vfstab /etc/vfstab.backup
root@solaris:~#
Abra el archivo /etc/vfstab
en un editor de texto y ubique la fila del sistema de archivos que necesita el ajuste.
En el ejemplo, el sistema de archivos se denomina qfsma
:
root@solaris:~#vi
/etc/vfstab
#File #Device Device Mount System fsck Mount Mount #to Mount to fsck Point Type Pass at Boot Options #-------- ------- -------- ------ ---- ------- -------------------- /devices - /devices devfs - no - ... qfsma - /qfsma samfs - yes ...
En el campo Mount
Options
del sistema de archivos, agregue la opción de montaje writebehind=
n
, donde n
es múltiplo de 8
kilobytes. Use una coma (sin espacios) para separar las opciones de montaje. Guarde el archivo y cierre el editor.
La opción writebehind
determina cuánto de un archivo determinado puede poner en cola en la caché de páginas antes de que la caché se vacíe en el disco. La configuración del parámetro en un valor mayor mejora el rendimiento, ya que una cola larga consolida múltiples escrituras de aplicaciones pequeñas en menor cantidad de E/S físicas más grandes y más eficaces. La configuración de un parámetro menor protege los datos, ya que los cambios se escriben más rápido en el almacenamiento no volátil.
El valor predeterminado es 512
kilobytes (ocho DAU de 64 kilobytes), que generalmente favorece la E/S secuencial de bloques grandes. Pero en este ejemplo, el conjunto de familias contiene dos dispositivos de disco md
con asignación de archivos segmentados. El ancho del segmento es una DAU de 64 kilobytes, para una escritura de 128 kilobytes en los dispositivos md
. Los dispositivos md
son grupos RAID 5 3+1. De modo que deseamos escribir al menos 128 kilobytes en cada uno de los tres ejes de datos, para una escritura total de, por lo menos, 768
kilobytes (96 grupos de 8 kilobytes cada uno):
#File #Device Device Mount System fsck Mount Mount #to Mount to fsck Point Type Pass at Boot Options #-------- ------- -------- ------ ---- ------- -------------------- /devices - /devices devfs - no - ... qfsma - /qfsma samfs - yes ...,
writebehind=768
:wq
root@solaris:~#
Pruebe el rendimiento de E/S del sistema de archivos y ajuste la configuración de writebehind
según sea necesario.
Vuelva a abrir el archivo /etc/vfstab
en un editor de texto. En el campo Mount
Options
del sistema de archivos, agregue la opción de montaje readahead=
n
, donde n
es múltiplo de 8 kilobytes. Use una coma (sin espacios) para separar las opciones de montaje. Guarde el archivo y cierre el editor.
La opción readahead
determina la cantidad de datos que se leen en la caché durante una única lectura física. Si parece que una aplicación está realizando una lectura secuencia, el sistema de archivos almacena en caché los próximos bloques de los datos de archivo de cada lectura física. A continuación, se pueden gestionar una serie de solicitudes de lectura de aplicaciones desde la memoria caché, y se pueden consolidar de este modo varias solicitudes de lectura de aplicaciones en un una única solicitud de E/S física.
El valor predeterminado es 1024
kilobytes (dieciséis DAU de 64 kilobytes), que generalmente favorece la E/S secuencial de bloques grandes. Si una base de datos o una aplicación similar realiza su propio readahead, configure Oracle HSM readahead
en 0
para evitar conflictos. De lo contrario, generalmente se deberá configurar readahead
para que almacene en caché los datos máximos que una única E/S física puede transferir. Si la configuración de readahead
es menor que la cantidad de datos que las aplicaciones generalmente solicitan y que los dispositivos pueden suministrar, completar una solicitud de E/S de aplicación requiere más E/S físico del necesario. Sin embargo, si readahead
se configura con un valor excesivamente alto, es posible que consuma suficiente memoria como para degradar el rendimiento general del sistema. En el ejemplo, configuramos readahead
en 736
kilobytes (treinta y seis DAU de 64 kilobytes).
#File #Device Device Mount System fsck Mount Mount #to Mount to fsck Point Type Pass at Boot Options #-------- ------- -------- ------ ---- ------- -------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes ...,
readahead=736
:wq
root@solaris:~#
Pruebe el rendimiento de E/S del sistema de archivos y ajuste la configuración de readahead
según sea necesario.
El aumento del tamaño del parámetro readahead
aumenta el rendimiento de las transferencias de archivos grandes, pero únicamente hasta cierto punto. Para probar el rendimiento del sistema después de restablecer el tamaño de readahead
. A continuación, ajuste el tamaño de readahead
hacia arriba hasta que vea que ya no se puedan mejorar las velocidades de transferencia.
Puede configurar los sistemas de archivos de Oracle HSM para que conmuten entre E/S directa y paginada; esto se adapta mejor al comportamiento de E/S de su aplicación. Deberá especificar las características de alineación del sector y de tamaño mínimo de las lecturas y escrituras que se pueden beneficiar de la E/S directa y, a continuación, configurar el número de lecturas y escrituras cualificadas que deberán activar el conmutador. Siga estos pasos:
Inicie sesión en el host del sistema de archivos como root
.
root@solaris:~#
Realice una copia de seguridad del archivo /etc/vfstab
del sistema operativo.
root@solaris:~#cp
/etc/vfstab
/etc/vfstab.backup
root@solaris:~#
Abra el archivo /etc/vfstab
en un editor de texto y ubique la fila del sistema de archivos que desea configurar.
En el ejemplo, el sistema de archivos se denomina qfsma
:
root@solaris:~#vi
/etc/vfstab
#File Device Mount #Device to Mount System fsck at Mount #to Mount fsck Point Type Pass Boot Options #-------- ------ -------- ------ ---- ----- ----------------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes stripe=1
Para configurar un tamaño de umbral para iniciar la E/S directa para las solicitudes de lectura que se alinean bien con límites de sector de 512 bytes, agregue la opción de montaje dio_rd_form_min=
n
al campo Mount
Options
para el sistema de archivos, donde n
es un número de kilobytes. Use una coma (sin espacios) para separar las opciones de montaje.
De forma predeterminada, el valor es dio_rd_form_min=256
kilobytes. En el ejemplo, sabemos que la aplicación no produce lecturas bien alineadas de forma consistente hasta que solicita una lectura de al menos 512 kilobytes. Por lo tanto, cambiamos el tamaño del umbral para lecturas directas bien alineadas a 512
:
#File Device Mount #Device to Mount System fsck at Mount #to Mount fsck Point Type Pass Boot Options #-------- ------ -------- ------ ---- ----- ----------------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes stripe=1,
dio_rd_form_min=512
Para configurar un tamaño de umbral para iniciar la E/S directa para las solicitudes de escritura que se alinean bien con límites de sector de 512 bytes, agregue la opción de montaje dio_wr_form_min=
n
al campo Mount
Options
para el sistema de archivos, donde n
es un número de kilobytes. Use una coma (sin espacios) para separar las opciones de montaje.
De forma predeterminada, el valor es dio_wr_form_min=256
kilobytes. En el ejemplo, sabemos que la aplicación no produce escrituras bien alineadas de forma consistente hasta que solicita una escritura de al menos un megabyte. De modo que cambiamos el tamaño del umbral para escrituras directas bien alineadas a 1024
kilobytes:
#File Device Moun #Device to Mount System fsck at Mount #to Mount fsck Point Type Pass Boot Options #-------- ------ -------- ------ ---- ----- ----------------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes ...,
dio_wr_form_min=1024
Para configurar un tamaño de umbral para iniciar la E/S directa para las solicitudes de lectura que no se alinean bien con límites de sector de 512 bytes, agregue la opción de montaje dio_rd_ill_min=
n
al campo Mount
Options
para el sistema de archivos, donde n
es un número de kilobytes. Use una coma (sin espacios) para separar las opciones de montaje.
De forma predeterminada, el valor es dio_rd_ill_min=0
kilobytes, de modo que la E/S directa no se usa para lecturas desalineadas. En el ejemplo, conocemos que nuestra aplicación generalmente realiza solicitudes de lectura desalineadas para pequeños fragmentos de datos. Muchos de estos datos se vuelven a leer posteriormente. De modo que el almacenamiento en caché de páginas sea probablemente beneficioso para estas lecturas. La conmutación a E/S directa podría causar una E/S física adicional innecesaria un rendimiento reducido. De modo que aceptamos los valores predeterminados y no realizamos cambios en el archivo vfstab
:
#File Device Mount #Device to Mount System fsck at Mount #to Mount fsck Point Type Pass Boot Options #-------- ------ -------- ------ ---- ----- ----------------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes ...,dio_wr_form_min=1024
Para configurar un tamaño de umbral para iniciar la E/S directa para las solicitudes de escritura que no se alinean bien con límites de sector de 512 bytes, agregue la opción de montaje dio_wr_ill_min=
n
al campo Mount
Options
para el sistema de archivos, donde n
es un número de kilobytes. Use una coma (sin espacios) para separar las opciones de montaje.
De forma predeterminada, el valor es dio_wr_ill_min=0
kilobytes, de modo que la E/S directa no se usa para escrituras desalineadas. Las escrituras desalineadas pueden ser muy costosas en términos de rendimiento, porque el sistema debe leer, modificar y escribir sectores. Sin embargo, en el ejemplo, conocemos que la aplicación ocasionalmente realiza solicitudes de escrituras grandes y únicas que no están dentro de los límites del sector . Dado que las operaciones de lectura, escritura y modificación están limitadas al inicio y al final de un gran bloque de sectores secuenciales, los beneficios de la E/S directa compensan los de la E/S paginada. De modo que configuramos dio_wr_ill_min=2048
kilobytes:
En este ejemplo, cambiamos el valor del umbral predeterminado mediante el uso de E/S directa durante las escrituras con datos desalineados en 2048
kilobytes:
#File Device Mount
#Device to Mount System fsck at Mount
#to Mount fsck Point Type Pass Boot Options
#-------- ------ -------- ------ ---- ----- -----------------------------
/devices - /devices devfs - no -
/proc - /proc proc - no -
...
qfsma - /qfsma samfs - yes ...,dio_wr_ill_min=2048
Para activar la E/S directa para lecturas, agregue la opción de montaje dio_rd_consec=
n
al campo Mount
Options
, donde n
es el número de transferencias de E/S consecutivas que deben satisfacer los requisitos de tamaño y alineación especificados arriba, con el fin de activar el conmutador para E/S directa. Seleccione un valor para las operaciones de la aplicación que se benefician de la E/S directa. Use una coma (sin espacios) para separar las opciones de montaje.
De forma predeterminada, el valor es dio_rd_consec=0
, de modo que la conmutación de E/S está desactivada. En el ejemplo, conocemos que, una vez que la aplicación solicita tres lecturas sucesivas bien alineadas de, al menos, el tamaño mínimo especificado por dio_rd_form_min
, 512 kilobytes, continuará haciéndolo por mucho tiempo para que la E/S directa valga la pena. El tamaño mínimo especificado por dio_rd_form_min
es el valor predeterminado, 0
, de modo que la activación de la E/S directa no afectará las solicitudes de lectura desalineadas. Configuramos entonces dio_rd_consec=3
:
#File Device Mount
#Device to Mount System fsck at Mount
#to Mount fsck Point Type Pass Boot Options
#-------- ------ -------- ------ ---- ----- -----------------------------
/devices - /devices devfs - no -
/proc - /proc proc - no -
...
qfsma - /qfsma samfs - yes ...,dio_rd_consec=3
Para activar la E/S directa para escrituras, agregue la opción de montaje dio_wr_consec=
n
al campo Mount
Options
, donde n
es el número de transferencias de E/S consecutivas que deben satisfacer los requisitos de tamaño y alineación especificados arriba, con el fin de activar el conmutador para E/S directa. Seleccione un valor para las operaciones de la aplicación que se benefician de la E/S directa. Use una coma (sin espacios) para separar las opciones de montaje.
De forma predeterminada, el valor es dio_wr_consec=0
, de modo que la conmutación de E/S está desactivada. En el ejemplo, conocemos que, una vez que la aplicación solicita dos escrituras sucesivas bien alineadas de, al menos, el tamaño mínimo especificado por dio_wr_form_min
, 1024 kilobytes, continuará haciéndolo durante un largo tiempo para que la E/S directa valga la pena. También conocemos que dos escrituras sucesivas desalineadas mayores que dio_wr_form_min
, 2048 kilobytes, serán lo suficientemente grandes y la desalineación no tendrá mayor importancia. Configuramos entonces dio_wr_consec=2
:
#File Device Mount
#Device to Mount System fsck at Mount
#to Mount fsck Point Type Pass Boot Options
#-------- ------ -------- ------ ---- ----- -----------------------------
/devices - /devices devfs - no -
/proc - /proc proc - no -
...
qfsma - /qfsma samfs - yes ...,dio_wr_consec=2
Guarde el archivo vfstab
y cierre el editor.
#File Device Mount
#Device to Mount System fsck at Mount
#to Mount fsck Point Type Pass Boot Options
#-------- ------ -------- ----- ---- ----- -----------------------------
/devices - /devices devfs - no -
/proc - /proc proc - no -
...
qfsma - /qfsma samfs - yes ...,dio_wr_consec=2
:wq
root@solaris:~#
Monte el sistema de archivos modificado:
root@solaris:~#mount
/qfsms
root@solaris:~#
Cuando las características de E/S de las aplicaciones realizan un uso exclusivo deseable de la E/S directa, puede montar el sistema de archivos completo mediante el uso de la opción de montaje forcedirectio
(para obtener información sobre cómo especificar la E/S directa para archivos o directorios individuales, consulte la página del comando man setfa
de Oracle HSM).
Para montar un sistema de archivos para que use exclusivamente la E/S directa, realice lo siguiente:
Inicie sesión en el host del sistema de archivos como root
.
root@solaris:~#
Realice una copia de seguridad del archivo /etc/vfstab
del sistema operativo.
root@solaris:~#cp
/etc/vfstab
/etc/vfstab.backup
root@solaris:~#
Abra el archivo /etc/vfstab
en un editor de texto y ubique la fila para el sistema de archivos donde desea usar la E/S directa.
En el ejemplo, el sistema de archivos se denomina qfsma
:
root@solaris:~#vi
/etc/vfstab
#File #Device Device Mount System fsck Mount Mount #to Mount to fsck Point Type Pass at Boot Options #-------- ------- -------- ------ ---- ------- -------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes stripe=1
En el campo Mount
Options
del sistema de archivos, agregue la opción de montaje forcedirectio
. Use una coma (sin espacios) para separar las opciones de montaje. Guarde el archivo y cierre el editor.
#File #Device Device Mount System fsck Mount Mount #to Mount to fsck Point Type Pass at Boot Options #-------- ------- -------- ------ ---- ------- -------------------- /devices - /devices devfs - no - /proc - /proc proc - no - ... qfsma - /qfsma samfs - yes stripe=1,forcedirectio
:wq
root@solaris:~#
Monte el sistema de archivos modificado:
root@solaris:~#mount
/qfsms
root@solaris:~#
El tamaño predeterminado de la caché de consulta de nombres de directorio (DNLC) de Oracle Solaris en el servidor de metadatos puede resultar inadecuado si los clientes de un sistema de archivos compartido abren muchos archivos al mismo tiempo. El servidor de metadatos busca nombre de archivos en nombre de los clientes, de modo que el rendimiento del sistema puede verse afectado en estas condiciones.
Si anticipa este tipo de carga de trabajo, cambie el valor del parámetro de tamaño de caché de consulta de nombres de directorio, ncsize
al doble o el triple del tamaño predeterminado. Para obtener instrucciones, consulte el Manual de referencia de parámetros ajustables de Oracle Solaris, disponible en la Biblioteca de información de Oracle Solaris (consulte la sección Documentación disponible del Prólogo.