Usar o Qutil para definir registros do Windows em um host do Windows
- Visão geral
- Políticas de balanceamento de cargas
- Configurar o MPIO do iniciador iSCSI
- Valores do registro definidos pelo Qutil
- Exemplo dos fluxos de trabalho
Visão geral
O Qutil é um script do PowerShell que define o registro do Windows necessário para garantir que o host do Windows manuseie corretamente os comportamentos do sistema de armazenamento do QNAP ES NAS. Além disso, os usuários podem selecionar quais QNAP LUNs precisam ser configurados para a política de balanceamento de cargas otimizado usando o Qutil.

Especificações básicas:
| Item | Descrição |
|---|---|
| Firmwares suportados | QTS: 4.2.x e superior QES: Todas as versões |
| SO suportado | Servidor Windows 2008 e superior |
| Vários idiomas | Somente inglês |
Políticas de balanceamento de cargas
Você pode escolher entre as seguintes políticas Microsoft Multipath de E/S (MPIO):
Somente Failover - Política que não executa o balanceamento de carga. Essa política usa um único caminho ativo e o restante dos caminhos são caminhos em espera. O caminho ativo é usado para enviar todas as E/S. Se o caminho ativo falhar, um dos caminhos em espera será usado. Quando o caminho que falhou é reativado ou reconectado, o caminho em espera que foi ativado retorna ao modo de espera.
Repetição Alternada - Política de balanceamento de carga que permite ao DSM (Device Specific Module) usar todos os caminhos disponíveis para o MPIO de maneira equilibrada. Essa é a política padrão escolhida quando o controlador de armazenamento segue o modelo ativo-ativo e o aplicativo de gerenciamento não escolhe especificamente uma política de balanceamento de carga.
Repetição Alternada com Subconjunto - Política de balanceamento de carga que permite ao aplicativo especificar um conjunto de caminhos a serem usados num estilo com repetição alternada e com um conjunto de caminhos em espera. O DSM usa caminhos de um conjunto primário de caminhos para processar solicitações, desde que pelo menos um deles esteja disponível. O DSM usa um caminho em espera somente quando todos os caminhos principais falham. Por exemplo, 4 caminhos dados: A, B, C e D, os caminhos A, B e C são listados como caminhos primários e D é o caminho em espera. O DSM escolhe um caminho de A, B e C em modo repetição alternada, desde que pelo menos um deles esteja disponível. Se todos os três caminhos falharem, o DSM usará D, o caminho em espera. Se os caminhos A, B ou C estiverem disponíveis, o DSM para de usar o caminho D e alterna para os caminhos disponíveis entre A, B e C.
Profundidade da Fila Mínima - Política de balanceamento de carga que envia E/S no caminho com o menor número atual solicitações de E/S pendentes. Por exemplo, considere que exista uma E/S que é enviada para o LUN 1 no caminho 1 e a outra E/S é enviada para o LUN 2 no caminho 1. A E/S pendente cumulativa no Caminho 1 é 2 e no Caminho 2 é 0. Portanto, a próxima E/S para qualquer LUN será processada no Caminho 2.
Caminhos Ponderados - Política de balanceamento de carga que atribui um peso a cada caminho. O peso indica a prioridade relativa de determinado caminho. Quanto maior o número, menor a prioridade. O DSM escolhe o caminho com menor peso entre os caminhos disponíveis.
Blocos Mínimos - Política de balanceamento de carga que envia E/S no caminho com o menor número de blocos de dados atualmente sendo processados. Por exemplo, considere que existam duas E/Ss: uma com 10 bytes e a outra com 20 bytes. Ambas em processo no Caminho 1 e ambos concluíram o Caminho 2. A quantidade pendente acumulada de E/S no caminho 1 é de 30 bytes. No Caminho 2, é 0. Portanto, a próxima E/S processará no Caminho 2.
Configurar o MPIO do iniciador iSCSI
- Clique em "Iniciar", digite "iSCSI" em Iniciar Pesquisa e, em Programas, clique em "Iniciador iSCSI".
- Se esta for a primeira vez o Iniciador iSCSI Microsoft é iniciado, você recebe um aviso informando que o serviço Microsoft iSCSI não está sendo executado. Você deve iniciar o serviço para o Iniciador iSCSI Microsoft funcionar corretamente. Clique em "Sim" para iniciar o serviço. A janela Propriedades do iniciador iSCSI da Microsoft é aberta.

- Clique na guia "Descoberta". Para adicionar um portal de destino, clique em "Descobrir Portal" e, na caixa de diálogo "Descobrir Portal de Destino", digite o endereço IP ou o nome do portal de destino ao qual se conectar. Adicionaremos os endereços IP das portas de dados do controlador duplo (em oposição às portas de administração) que pertencem à mesma subrede. Mantenha a porta TCP como 3260 como padrão.

- Os destinos iSCSI disponíveis e seus status serão mostrados na guia "Destinos". Selecione o destino ao qual você deseja se conectar e clique em "Conectar".

- Selecione "Ativar caminhos múltiplos" e clique em "Avançado".

- Na janela "Configurações Avançadas", selecione "Iniciador iSCSI da Microsoft" em "Adaptador Local". Em seguida, selecione um endereço IP na lista suspensa "IP do Iniciador" e na lista suspensa "IP do Portal de Destino", respectivamente. Verifique se o IP do Iniciador e o IP do Portal de Destino estão na mesma subrede.

- Clique em "OK" para fechar a janela.

- Ele indica que um desses destinos iSCSI está conectado. Selecione este destino e clique em "Propriedades".

- Na guia "Sessões", selecione "Adicionar sessão".

- Selecione "Ativar caminhos múltiplos" e clique em "Avançado...".

- Adicione o endereço IP da outra porta de dados que pertence a uma subrede diferente. Verifique se o IP do Iniciador e o IP do Portal de Destino estão na mesma subrede. Clique em "OK" para fechar a janela.

- Você verá que outra sessão foi adicionada. Clique em "OK" para fechar a janela.

- Repita as etapas 3 a 12 para configurar o outro destino iSCSI com o MPIO.

- Após configurar os dois destinos com o MPIO, adicione o volume e/ou o dispositivo iSCSI a ser persistentemente vinculado ao serviço iSCSI. Ele garante que o serviço Iniciador iSCSI não conclua a inicialização até que todos os volumes e dispositivos vinculados persistentemente estejam disponíveis para o computador. Selecione a guia "Volumes e Dispositivos" na janela Propriedades do Iniciador iSCSI e clique em "Configuração Automática" para configurar automaticamente todos os dispositivos disponíveis. Você verá um novo volume nomeado como "mpio # disk ......" na lista Volume. Clique em "OK" para fechar a janela.

Valores do registro definidos pelo Qutil
O Qutil requer certas configurações do Registro para garantir que o host do Windows lide corretamente com o comportamento do sistema de armazenamento. Essas configurações afetam como o host do Windows responde a um atraso ou perda de dados. Os valores específicos foram selecionados para garantir que o host do Windows manipule corretamente eventos como o failover de um controlador no sistema de armazenamento para seu controlador parceiro.
Os valores seguintes são definidos pelo Qutil. Todos os valores são decimais, salvo indicação em contrário. HKLM é a abreviação de HKEY_LOCAL_MACHINE.
| Chave do 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 | "Armazenamento iSCSI QNAP" |
| HKLM\SYSTEM\CurrentControlSet\Control\MPDEV \MPIOSupportedDeviceList | "Armazenamento iSCSI 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 |
| Chave do 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 |
Configurações DsmMaximumStateTransitionTime e DsmMaximumRetryTimeDuringStateTransition
As configurações DsmMaximumStateTransitionTime e DsmMaximumRetryTimeDuringStateTransition especificam a hora que Servidor Windows 2008, Servidor Windows 2008 R2, ou Servidor Windows 2012 msdsm aguarda por uma transição de caminho ALUA antes de retornam um erro de E/S para a camada acima dela na pilha.
As configurações DsmMaximumStateTransitionTime e DsmMaximumRetryTimeDuringStateTransition as configurações permitem que a transição do estado do caminho seja concluída após um failover do sistema de armazenamento ou outro evento. Essas configurações são usadas para configurações MPIO no Servidor Windows 2008, Servidor Windows 2008 R2 e Servidor Windows 2012.
Configuração DsmSupportedDeviceList
A configuração DsmSupportedDeviceList especifica que um DSM deve reivindicar dispositivos de armazenamento com o identificador de fornecedor e o identificador de produto especificados (VID/PID).
Essas configurações são usadas para o msdsm no Servidor Windows 2008, Servidor Windows 2008 R2 e Servidor Windows 2012. O msdsm sempre dá prioridade a outro DSMs. Se outro DSM estiver instalado e configurado para reivindicar todos os LUNs com um VID/PID especificado, esse outro DSM manipulará os LUNs especificados, mesmo que o msdsm tenha esse parâmetro definido.
Configuração IPSecConfigTimeout
O parâmetro IPSecConfigTimeout especifica por quanto tempo o iniciador iSCSI aguarda o serviço de descoberta configurar ou liberar o ipsec para uma conexão iSCSI.
Este valor permite que o serviço iniciador inicie corretamente em sistemas de inicialização lenta que usam o CHAP.
Configuração LinkDownTime
Somente para iSCSI, a configuração LinkDownTime especifica o tempo máximo em segundos em que as solicitações são mantidas na fila do dispositivo e repetidas se a conexão com o destino for perdida.
Se o MPIO estiver instalado, esse valor será usado. Do contrário, MaxRequestHoldTime será usada.
Configuração ManageDisksOnSystemBuses
O parâmetro ManageDisksOnSystemBuses é usado pelos sistemas inicializados pela SAN para garantir que o disco de inicialização, os arquivos do arquivo de paginação e os discos do cluster estejam todos na mesma malha da SAN.
Para obter informações detalhadas sobre o parâmetro ManageDisksOnSystemBuses, consulte o artigo 886569 do Suporte da Microsoft.
Configuração MaxRequestHoldTime
A configuração MaxRequestHoldTime especifica o tempo máximo em segundos em que as solicitações são enfileiradas se a conexão com o destino for perdida e a conexão estiver sendo repetida.
Após esse período de espera, as solicitações falham com "erro no dispositivo" e o disco é removido do sistema. A configuração suportada permite que a conexão sobreviva ao tempo máximo de failover do armazenamento esperado.
MPIOSupportedDeviceList
A configuração MPIOSupportedDeviceList especifica que o componente do Windows MPIO deve reivindicar dispositivos de armazenamento com o identificador de fornecedor e o identificador de produto especificados (VID/PID).
Este parâmetro não determina qual DSM manipula os dispositivos reivindicados; a configuração DsmSupportedDeviceList especifica o DSM a ser usado.
Configuração PathRecoveryInterval
A configuração PathRecoveryInterval especifica quanto tempo em segundos o componente MPIO aguarda antes de tentar novamente um caminho perdido.
A configuração PathRecoveryInterval faz com que o componente MPIO tente recuperar um caminho perdido que apresentava um erro transitório antes de decidir que o dispositivo de disco não está mais disponível.
Observe que esse parâmetro afeta todos os DSMs no sistema.
Configuração PathVerifyEnabled
O parâmetro PathVerifyEnabled especifica se a unidade do Windows MPIO solicita periodicamente que o DSM verifique seus caminhos.
Observe que esse parâmetro afeta todos os DSMs no sistema.
Configuração PDORemovePeriod
Este parâmetro especifica a quantidade de tempo que o pseudo-LUN de caminhos múltiplos permanece na memória do sistema após a perda de todos os caminhos para o dispositivo.
Configuração RetryCount
O parâmetro RetryCount especifica o número de vezes que o caminho atual para um LUN é repetido antes de efetuar o failover para um caminho alternativo.
A configuração RetryCount permite a recuperação de um problema de caminho transitório. Se o caminho não for recuperado após o número especificado de novas tentativas, é provável que seja um problema de rede mais sério.
Configuração RetryInterval
O parâmetro RetryInterval especifica a quantidade de tempo de espera entre novas tentativas de um caminho com falha. Essa configuração oferece ao caminho a chance de se recuperar de um problema transitório antes de tentar novamente. Se você estiver usando um modelo NAS de controlador duplo e encontrar uma situação em que iSCSI ou SMB perderam conexões durante o NAS estiver em estado Takeover, verifique se esse valor foi alterado em relação ao valor padrão.
Configuração TimeOutValue
O parâmetro TimeOutValue do disco especifica por quanto tempo uma solicitação de E/S é mantida na camada SCSI antes de atingir o tempo limite e transmitir um erro de tempo limite ao aplicativo acima.
Configuração UseCustomPathRecoveryInterval
A configuração UseCustomPathRecoveryInterval ativa ou desativa o uso da configuração PathRecoveryInterval.
Observe que esse parâmetro afeta todos os DSMs no sistema.
Exemplo dos fluxos de trabalho
Listar todos os discos gerenciados por MPIO por mpclaim
O comando "mpclaim" pode listar todos os discos MPIO com política de equilíbrio de carga:
> mpclaim -s -d

Alterar a política de balanceamento de carga para discos específicos por mpclaim
O comando "mpclaim" também pode alterar a política de equilíbrio de carga para um disco MPIO específico:
> mpclaim -l -d 0 3

Listar todos os Discos Gerenciados por MPIO
O Qutil deve obter todos os discos MPIO primeiro:
> get-wmiobject -Namespace root\wmi -Class mpio_get_descriptor

Listar todos os Discos da QNAP Gerenciados por MPIO
O Qutil deve obter todos os discos MPIO do QNAP NAS, filtrando a propriedade SerialNumber com o prefixo "6E843B6":
> (get-wmiobject -Namespace root\wmi -Class mpio_disk_info).driveinfo

Listar a política de balanceamento de carga para cada Disco MPIO QNAP
O Qutil deve listar a política de balanceamento de carga para cada disco MPIO QNAP:
> (get-wmiobject -Namespace root\wmi -Class dsm_querylbpolicy_v2).loadbalancepolicy

Definição LoadBalancePolicy:
0: Limpar a Política
1: Failover Apenas
2: Repetição Alternada
3: Repetição Alternada com Subconjunto
4: Profundidade Mínima da Fila
5: Caminhos Ponderados
6: Blocos Mínimos
7: Específico do fornecedor