Usar Qutil para configurar registros de Windows en un host de Windows
- Información general
- Directivas de equilibrio de carga
- Configurar MPIO del iniciador iSCSI
- Valores de registro configurados por Qutil
- Ejemplo de flujos de trabajo
Información general
Qutil es un script de PowerShell que configura el registro de Windows requerido para garantizar que el host de Windows gestiona correctamente los comportamientos del sistema de almacenamiento para un QNAP ES NAS. Además, los usuarios pueden seleccionar qué LUN de QNAP deben configurarse para optimizar la directiva de equilibrio de carga usando Qutil.

Especificaciones básicas:
| Elemento | Descripción |
|---|---|
| Firmwares admitidos | QTS: 4.2.x y superior QES: Todas las versiones |
| SO compatibles | Windows Server 2008 y superior |
| Multilingüe | Solo inglés |
Directivas de equilibrio de carga
Puede elegir entre las siguientes directivas de E/S de múltiples rutas (MPIO, por sus siglas en inglés) de Microsoft:
Solo conmutación por error: directiva que no realiza el equilibrio de carga. Esta directiva usa una única ruta activa y el resto de rutas son rutas en espera. La ruta activa se usa para enviar todas las E/S. Si la ruta activa falla, entonces se utilizará una de las rutas en espera. Cuando se reactive o vuelva a conectarse la ruta que había fallado, la ruta en espera activada volverá a modo de espera.
Operación por turnos: directiva de equilibrio de carga que permite el uso equilibrado, por parte del módulo específico de dispositivo (DSM, por sus siglas en inglés), de todas las rutas disponibles para MPIO. Esta es la directiva predeterminada que se selecciona cuando el controlador de almacenamiento sigue el modelo activo-activo y la aplicación de gestión no elige de forma específica una directiva de equilibrio de carga.
Operación por turnos con subconjunto: directiva de equilibrio de carga que permite a la aplicación especificar un conjunto de rutas para su uso por turnos y con un conjunto de rutas en espera. El DSM usa rutas de un conjunto principal de rutas para procesar las solicitudes mientras esté disponible al menos una de las rutas. El DSM usa una ruta en espera solo cuando fallan todas las rutas principales. Por ejemplo, si tenemos 4 rutas: A, B, C y D, las rutas A, B y C están marcadas como rutas principales y la D es la ruta en espera. El DSM elige una ruta entre A, B y C por turnos mientras esté disponible al menos una de ellas. Si las tres rutas fallan, el DSM usará la D, es decir, la ruta en espera. Si las rutas A, B o C vuelven a estar disponibles, el DSM dejará de usar la ruta D y cambiará a las rutas disponibles entre A, B y C.
Menor profundidad de cola: directiva de equilibrio de carga que envía la E/S a la ruta con menos solicitudes de E/S pendientes. Por ejemplo, imagine que hay una E/S que se envía al LUN 1 en la ruta 1, y la otra E/S se envía al LUN 2 en la ruta 1. Las E/S pendientes acumuladas en la ruta 1 son 2, y en la ruta 2, son 0. Por tanto, la siguiente E/S para cualquier LUN se procesará en la ruta 2.
Rutas ponderadas: directiva de equilibrio de carga que asigna un peso a cada ruta. El peso indica la prioridad relativa de una ruta determinada. Cuanto mayor sea el número, menor será el orden de prioridad. DSM selecciona la ruta de acceso que tiene el menor peso entre las disponibles.
Menos bloques: directiva de equilibrio de carga que envía E/S por la ruta con menor número de bloques de datos actualmente en proceso. Por ejemplo, imagine que hay dos E/S: una tiene 10 bytes y la otra, 20 bytes. Ambas están en proceso en la ruta 1 y ambas han completado la ruta 2. La cantidad pendiente acumulada de E/S en la ruta 1 es de 30 bytes. En la ruta 2, es 0. Por tanto, la siguiente E/S se procesará en la ruta 2.
Configurar MPIO del iniciador iSCSI
- Haga clic en "Iniciar", escriba "iSCSI" en "Iniciar búsqueda", y en "Programas", haga clic en "Iniciador iSCSI".
- Si es la primera vez que ejecuta el iniciador iSCSI de Microsoft, recibirá un mensaje que dice que no se está ejecutando el servicio iSCSI de Microsoft. Debe iniciar el servicio para que el iniciador iSCSI de Microsoft funcione correctamente. Haga clic en "Sí" para iniciar el servicio. Se abrirá la ventana Propiedades del iniciador iSCSI de Microsoft.

- Haga clic en la pestaña "Descubrir". Para añadir un portal objetivo, haga clic en "Descubrir portal" y, a continuación, en el cuadro de diálogo "Descubrir portal objetivo", introduzca la dirección IP o el nombre del portal objetivo para conectarse. Añadiremos las direcciones IP de los puertos de datos del controlador dual (al contrario que los puertos administradores) que pertenecen a la misma subred. Mantenga el puerto TCP en 3260 como predeterminado.

- Los objetivos iSCSI disponibles y sus correspondientes estados se mostrarán en la pestaña "Objetivos". Seleccione el objetivo con el que desea conectar y haga clic en "Conectar".

- Seleccione "Habilitar múltiples rutas" y haga clic en "Avanzada".

- En la ventana "Configuración avanzada", seleccione "Iniciador iSCSI de Microsoft" para "adaptador local". A continuación, seleccione una dirección IP de la lista desplegable "IP del iniciador" y la lista desplegable "IP del portal objetivo" respectivamente. Asegúrese de que la IP del iniciador y la IP del portal objetivo estén en la misma subred.

- Haga clic en "Aceptar" para cerrar la ventana.

- Se mostrará un mensaje indicando que uno de estos objetivos iSCSI se ha conectado con éxito. Seleccione este objetivo y después haga clic en "Propiedades".

- En la pestaña "Sesiones", seleccione "Añadir sesión".

- Seleccione "Habilitar múltiples rutas" y, a continuación, haga clic en "Avanzada..."

- Añada la dirección IP del otro puerto de datos que pertenece a una subred diferente. Asegúrese de que la IP del iniciador y la IP del portal objetivo estén en la misma subred. Haga clic en "Aceptar" para cerrar la ventana.

- Debería ver que se ha añadido otra sesión. Haga clic en "Aceptar” para cerrar la ventana.

- Repita los pasos del 3 al 12 para configurar el otro objetivo iSCSI con MPIO.

- Una vez configurados ambos objetivos con MPIO, añada el volumen y/o dispositivo iSCSI para que esté vinculado de forma sistemática al servicio iSCSI. Esto garantiza que el servicio de iniciadores iSCSI no completará la inicialización hasta que todos los volúmenes y dispositivos vinculados de forma sistemática estén disponibles para el ordenador. Seleccione la pestaña "Volúmenes y dispositivos" en la ventana de Propiedades del iniciador iSCSI y, a continuación, haga clic en "Configurar automáticamente" para configurar de forma automática todos los dispositivos disponibles. Debería ver un volumen nuevo con el nombre "mpio#disk......" en la lista de volúmenes. Haga clic en "Aceptar" para cerrar la ventana.

Valores de registro configurados por Qutil
Qutil necesita una configuración de registros determinada para garantizar que el host de Windows gestione de forma correcta el comportamiento del sistema de almacenamiento. Dicha configuración afecta a la forma de responder del host de Windows frente a un retardo o pérdida de datos. Los valores concretos se han seleccionado para garantizar que el host de Windows actúe de forma adecuada ante eventos como la conmutación por error de un controlador en el sistema de almacenamiento a su controlador asociado.
Qutil configura los siguientes valores. Todos los valores son decimales a menos que se indique lo contrario. HKLM es la abreviatura de HKEY_LOCAL_MACHINE.
| Clave del registro (QNAP) | Valor |
|---|---|
| HKLM\SYSTEM\CurrentControlSet\Services\disk \TimeOutValue | 60 |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\DelayBetweenReconnect |
10 |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\LinkDownTime |
300 |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\MaxRequestHoldTime |
300 |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\SrbTimeoutDelta |
300 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PathVerificationPeriod | 30 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PDORemovePeriod | 600 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryCount | 3 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryInterval | 1 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\DsmSupportedDeviceList | "Almacenamiento iSCSI de QNAP" |
| HKLM\SYSTEM\CurrentControlSet\Control\MPDEV \MPIOSupportedDeviceList | "Almacenamiento iSCSI de QNAP" |
| HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\DurableHandleV2TimeoutInSecond | 240 |
| HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\ExtendedSessTimeout | 960 |
| HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\SessTimeout | 240 |
| Clave del registro (NetApp) | Valor |
|---|---|
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters \DsmMaximumRetryTimeDuringStateTransition | 120 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\ DsmMaximumStateTransitionTime | 120 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\DsmSupportedDeviceList | "XXX " |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {iSCSI_driver_GUID}\ instance_ID\Parameters \IPSecConfigTimeout | 60 |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {iSCSI_driver_GUID}\ instance_ID\Parameters \LinkDownTime | 30 |
| HKLM\SYSTEM\CurrentControlSet\Services\ClusDisk \Parameters\ManageDisksOnSystemBuses | 1 |
| HKLM\SYSTEM\CurrentControlSet\Control\Class\ {iSCSI_driver_GUID}\ instance_ID\Parameters \MaxRequestHoldTime | 60 |
| HKLM\SYSTEM\CurrentControlSet\Control\MPDEV \MPIOSupportedDeviceList | "xxxx " |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PathRecoveryInterval | 40 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PathVerifyEnabled | 0 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\PathVerifyEnabled | 0 |
| HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\PathVerifyEnabled | 0 |
| HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\PathVerifyEnabled | 0 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PDORemovePeriod | 130 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\PDORemovePeriod | 130 |
| HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\PDORemovePeriod | 130 |
| HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\PDORemovePeriod | 130 |
| HKLM\SYSTEM\CurrentControlSet\Services\ontapdsm \Parameters\ReservationTimeout | 30 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryCount | 6 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\RetryCount | 6 |
| HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\RetryCount | 6 |
| HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\RetryCount | 6 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryInterval | 1 |
| HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\RetryInterval | 1 |
| HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\RetryInterval | 1 |
| HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\RetryInterval | 1 |
| HKLM\SYSTEM\CurrentControlSet\Services\disk \TimeOutValue | 60 |
| HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\UseCustomPathRecoveryInterval | 1 |
Ajustes DsmMaximumStateTransitionTime y DsmMaximumRetryTimeDuringStateTransition
Los ajustes DsmMaximumStateTransitionTime y DsmMaximumRetryTimeDuringStateTransition especifican el tiempo que el msdsm de Windows Server 2008, Windows Server 2008 R2 o Windows Server 2012 espera a una transición de estado de ruta ALUA antes de enviar un error de E/S a la capa superior de la pila.
Los ajustes DsmMaximumStateTransitionTime y DsmMaximumRetryTimeDuringStateTransition indican el tiempo para la finalización de una transición de estado de ruta después de una conmutación por error del sistema de almacenamiento u otro evento. Estos ajustes se usan para configuraciones de MPIO en Windows Server 2008, Windows Server 2008 R2 y Windows Server 2012.
Ajuste DsmSupportedDeviceList
El ajuste DsmSupportedDeviceList especifica que un DSM debería reclamar dispositivos de almacenamiento con el identificador de proveedor y el identificador de producto (VID/PID) especificados.
Este ajuste se configura para el msdsm incluido en Windows Server 2008, Windows Server 2008 R2 y Windows Server 2012. El msdsm siempre da prioridad a otros DSM. Si se ha instalado y configurado otro DSM para reclamar todos los LUN con un VID/PID especificado, ese otro DSM gestionará los LUN especificados, incluso aunque el msdsm tenga configurado este parámetro.
Ajuste IPSecConfigTimeout
El parámetro IPSecConfigTimeout especifica durante cuánto tiempo espera el iniciador iSCSI para que el servicio de detección configure o libere ipsec para una conexión iSCSI.
Este valor permite que se inicie correctamente el servicio de iniciadores en sistemas de arranque lento que usan CHAP.
Ajuste LinkDownTime
Solo para iSCSI, el ajuste LinkDownTime especifica el tiempo máximo en segundos durante el cual las solicitudes se mantienen en la cola del dispositivo y se reintentan, en caso de pérdida de conexión con el objetivo.
Si la función MPIO está instalada, se usa este valor. De lo contrario, se usará MaxRequestHoldTime.
Ajuste ManageDisksOnSystemBuses
El parámetro ManageDisksOnSystemBuses se usa mediante sistemas con arranque SAN para garantizar que todos los discos de inicio, los discos pagefile y los discos de clúster estén en el mismo tejido de la SAN.
Para más detalles sobre el parámetro ManageDisksOnSystemBuses, consulte el artículo 886569 del Soporte técnico de Microsoft.
Ajuste MaxRequestHoldTime
El ajuste MaxRequestHoldTime especifica el tiempo máximo en segundos durante el cual las solicitudes se ponen en cola si se pierde la conexión al objetivo y va a reintentarse.
Después de este periodo de espera, las solicitudes fallan con el "error no hay dispositivo" y el disco se elimina del sistema. El ajuste compatible permite que la conexión perdure el máximo tiempo de conmutación por error esperado.
MPIOSupportedDeviceList
El ajuste MPIOSupportedDeviceList especifica que el componente MPIO de Windows debería reclamar dispositivos de almacenamiento con el identificador de proveedor y el identificador de producto (VID/PID) especificados.
Este parámetro no determina qué DSM gestiona los dispositivos reclamados; el ajuste DsmSupportedDeviceList especifica el DSM a usar.
Ajuste PathRecoveryInterval
El ajuste PathRecoveryInterval especifica cuántos segundos espera el componente MPIO antes de reintentar una ruta perdida.
El ajuste PathRecoveryInterval hace que el componente MPIO intente recuperar una ruta perdida con un error transitorio antes de determinar que el dispositivo de disco ya no está disponible.
Tenga en cuenta que este parámetro afecta a todos los DSM del sistema.
Ajuste PathVerifyEnabled
El parámetro PathVerifyEnabled especifica si el driver MPIO de Windows solicita periódicamente que el DSM compruebe sus rutas.
Tenga en cuenta que este parámetro afecta a todos los DSM del sistema.
Ajuste PDORemovePeriod
Este parámetro especifica la cantidad de tiempo que el pseudoLUN con múltiples rutas permanece en la memoria del sistema tras la pérdida de todas las rutas al dispositivo.
Ajuste RetryCount
El parámetro RetryCount especifica el número de veces que se reintenta la ruta actual a un LUN antes de conmutar por error a una ruta alternativa.
El ajuste RetryCount permite la recuperación ante un problema de ruta transitorio. Si no se recupera la ruta después del número de reintentos especificados, probablemente se trate de un problema de red más grave.
Ajuste RetryInterval
El parámetro RetryInterval especifica la cantidad de tiempo de espera entre reintentos de una ruta fallida. Este ajuste da a la ruta la posibilidad de recuperarse ante un problema transitorio antes de volver a intentarlo. Si está usando un modelo de NAS con controlador dual y se produce una situación en la que se pierden las conexiones iSCSI o SMB mientras el NAS está en modo Toma de control, puede comprobar si este valor se ha modificado del valor predeterminado.
Ajuste TimeOutValue
El parámetro TimeOutValue de disco especifica durante cuánto tiempo se mantiene una solicitud de E/S en la capa SCSI antes de agotar el tiempo de espera y pasar un error de tiempo de espera a la aplicación anterior.
Ajuste UseCustomPathRecoveryInterval
El ajuste UseCustomPathRecoveryInterval habilita o deshabilita el uso del ajuste PathRecoveryInterval.
Tenga en cuenta que este parámetro afecta a todos los DSM del sistema.
Ejemplo de flujos de trabajo
Listar todos los discos gestionados MPIO mediante mpclaim
El comando "mpclaim" puede generar una lista con todos los discos MPIO con directiva de equilibrio de carga:
> mpclaim -s -d

Cambiar la directiva de equilibrio de carga para discos específicos mediante mpclaim
El comando "mpclaim" también puede modificar la directiva de equilibrio de carga para un disco MPIO específico:
> mpclaim -l -d 0 3

Listar todos los discos gestionados MPIO
Qutil primero debería obtener todos los discos MPIO:
> get-wmiobject -Namespace root\wmi -Class mpio_get_descriptor

Listar todos los discos QNAP gestionados MPIO
Qutil debería obtener todos los discos MPIO de QNAP NAS filtrando la propiedad SerialNumber con el prefijo "6E843B6":
> (get-wmiobject -Namespace root\wmi -Class mpio_disk_info).driveinfo

Listar las directivas de equilibrio de carga de cada disco MPIO de QNAP
Qutil debería listar todas las directivas de equilibrio de carga de cada disco MPIO de QNAP:
> (get-wmiobject -Namespace root\wmi -Class dsm_querylbpolicy_v2).loadbalancepolicy

Definición de LoadBalancePolicy:
0: Eliminar la directiva
1: Solo conmutación por error
2: Operación por turnos
3: Operación por turnos con subconjunto
4: Menor profundidad de carga
5: Rutas ponderadas
6: Menos bloques
7: Proveedor especificado