Partilhar via


Atualização do firmware da unidade

Atualizar o firmware das unidades tem sido historicamente uma tarefa complicada com potencial para tempo de inatividade, e é por isso que estamos fazendo melhorias nos Espaços de Armazenamento, Windows Server e Windows 10, versão 1703 e mais recente. Se tiver discos que suportam o novo mecanismo de atualização de firmware incluído no Windows, pode atualizar o firmware dos discos em produção sem interrupção. No entanto, se você vai atualizar o firmware de uma unidade de produção, certifique-se de ler nossas dicas sobre como minimizar o risco ao usar essa nova e poderosa funcionalidade.

Warning

As atualizações de firmware são uma operação de manutenção potencialmente arriscada e só deve aplicá-las após um teste exaustivo da nova imagem de firmware. É possível que o novo firmware em hardware não suportado possa afetar negativamente a confiabilidade e estabilidade, ou até mesmo causar perda de dados. Os administradores devem ler as notas de versão fornecidas com uma determinada atualização para determinar seu impacto e aplicabilidade.

Compatibilidade da unidade

Para usar o Windows Server para atualizar o firmware da unidade, você deve ter unidades suportadas. Para garantir o comportamento comum do dispositivo, começamos definindo novos e - para Windows 10 e Windows Server 2016 - requisitos opcionais do Hardware Lab Kit (HLK) para dispositivos SAS, SATA e NVMe. Esses requisitos descrevem quais comandos um dispositivo SATA, SAS ou NVMe deve suportar para serem atualizáveis pelo firmware usando esses novos cmdlets do PowerShell nativos do Windows. Para dar suporte a esses requisitos, há um novo teste HLK para verificar se os produtos do fornecedor suportam os comandos corretos e implementá-los em revisões futuras.

Contacte o fornecedor da solução para obter informações sobre se o hardware suporta a atualização do firmware da unidade pelo Windows. Aqui estão os links para os vários requisitos:

Cmdlets do PowerShell

Os dois cmdlets adicionados ao Windows são:

  • Get-StorageFirmwareInformation
  • Update-StorageFirmware

O primeiro cmdlet fornece informações detalhadas sobre os recursos, imagens de firmware e revisões do dispositivo. Neste caso, a máquina contém apenas um único SSD SATA com 1 slot de firmware. Aqui está um exemplo:

Get-PhysicalDisk | Get-StorageFirmwareInformation

SupportsUpdate        : True
NumberOfSlots         : 1
ActiveSlotNumber      : 0
SlotNumber            : {0}
IsSlotWritable        : {True}
FirmwareVersionInSlot : {J3E16101}

Observe que os dispositivos SAS sempre relatam "SupportsUpdate" como "True", uma vez que não há nenhuma maneira de consultar explicitamente o dispositivo para suporte desses comandos.

O segundo cmdlet, Update-StorageFirmware, permite que os administradores atualizem o firmware da unidade com um arquivo de imagem, se a unidade suportar o novo mecanismo de atualização de firmware. Você deve obter esse arquivo de imagem diretamente do OEM ou do fornecedor da unidade.

Note

Antes de atualizar qualquer hardware de produção, teste a imagem de firmware específica em hardware idêntico em uma configuração de laboratório.

A unidade carregará primeiro a nova imagem de firmware para uma área de preparação interna. Enquanto isso acontece, a E/S normalmente continua. A imagem é ativada após o download. Durante esse período, a unidade não poderá responder aos comandos de E/S enquanto ocorre uma redefinição interna. Isto significa que esta unidade não disponibiliza dados durante a ativação. Um aplicativo que acessa dados nesta unidade teria que esperar por uma resposta até que a ativação do firmware seja concluída. Aqui está um exemplo do cmdlet em ação:

$pd | Update-StorageFirmware -ImagePath C:\Firmware\J3E160@3.enc -SlotNumber 0
$pd | Get-StorageFirmwareInformation

SupportsUpdate        : True
NumberOfSlots         : 1
ActiveSlotNumber      : 0
SlotNumber            : {0}
IsSlotWritable        : {True}
FirmwareVersionInSlot : {J3E160@3}

Normalmente, as unidades não concluem solicitações de I/O quando ativam uma nova imagem de firmware. O tempo que uma unidade demora a ser ativada depende do seu design e do tipo de firmware que atualiza. Observamos que os tempos de atualização variam de menos de 5 segundos a mais de 30 segundos.

Esta unidade executou a atualização de firmware dentro de ~5,8 segundos, como mostrado aqui:

Measure-Command {$pd | Update-StorageFirmware -ImagePath C:\\Firmware\\J3E16101.enc -SlotNumber 0}

 Days : 0
 Hours : 0
 Minutes : 0
 Seconds : 5
 Milliseconds : 791
 Ticks : 57913910
 TotalDays : 6.70299884259259E-05
 TotalHours : 0.00160871972222222
 TotalMinutes : 0.0965231833333333
 TotalSeconds : 5.791391
 TotalMilliseconds : 5791.391

Atualizando unidades em produção

Antes de colocar um servidor em produção, é altamente recomendável atualizar o firmware de suas unidades para o firmware recomendado pelo fornecedor de hardware ou OEM que vendeu e suporta sua solução (gabinetes de armazenamento, unidades e servidores).

Quando um servidor estiver em produção, é uma boa ideia fazer o mínimo de alterações possível no servidor. No entanto, pode haver momentos em que o fornecedor da solução o aconselhe de que há uma atualização de firmware extremamente importante para suas unidades. Se isso ocorrer, aqui estão algumas boas práticas a serem seguidas antes de aplicar qualquer atualização de firmware da unidade:

  1. Reveja as notas de versão do firmware e confirme se a atualização resolve problemas que podem afetar o seu ambiente e se o firmware não contém quaisquer problemas conhecidos que o possam afetar negativamente.

  2. Instale o firmware em um servidor em seu laboratório que tenha unidades idênticas (incluindo a revisão da unidade se houver várias revisões da mesma unidade) e teste a unidade sob carga com o novo firmware. Para obter informações sobre como fazer testes de carga sintética , consulte Testar o desempenho de espaços de armazenamento usando cargas de trabalho sintéticas.

Atualizações de firmware automatizadas com o Storage Spaces Direct

O Windows Server 2016 inclui um Serviço de Integridade para implementações de Storage Spaces Direct (incluindo soluções de Azure Stack da Microsoft). O principal objetivo do Serviço de Saúde é facilitar a monitorização e o gerenciamento da implantação do hardware. Como parte de suas funções de gerenciamento, ele tem a capacidade de implantar o firmware da unidade em um cluster inteiro sem colocar nenhuma carga de trabalho offline ou incorrer em tempo de inatividade. Esse recurso é orientado por políticas, com o controle nas mãos do administrador.

Usar o Serviço de Saúde para distribuir o firmware em um cluster é muito simples e envolve as seguintes etapas:

  • Identifique quais as unidades HDD e SSD que espera que façam parte do seu cluster Storage Spaces Direct e se as unidades suportam o Windows a efetuar atualizações de firmware
  • Liste essas unidades no ficheiro XML de componentes suportados
  • Identifique as versões de firmware que você espera que essas unidades tenham no xml de componentes suportados (incluindo caminhos de localização das imagens de firmware)
  • Carregue o arquivo xml para o banco de dados do cluster

Neste ponto, o Serviço de Saúde inspecionará e analisará o xml e identificará quaisquer unidades que não tenham a versão de firmware desejada implantada. Continuará a redirecionar a E/S para longe das unidades afetadas – nó a nó – e a atualizar o firmware nelas. Um cluster Storage Spaces Direct alcança resiliência espalhando dados entre vários nós de servidor; é possível para o serviço de monitorização isolar um nó inteiro de unidades de armazenamento para atualizações. Assim que um nó for atualizado, ele iniciará um reparo nos Espaços de Armazenamento, trazendo todas as cópias de dados no cluster de volta em sincronia entre si, antes de passar para o próximo nó. É esperado e normal que os Espaços de Armazenamento façam a transição para um modo de operação "degradado" enquanto o firmware é implementado.

Para garantir uma implementação estável e tempo de validação suficiente de uma nova imagem de firmware, existe um atraso significativo entre as atualizações de vários servidores. Por padrão, o Serviço de Saúde aguardará 7 dias antes de atualizar o servidor. Qualquer servidor subsequente (,, ...) atualiza com um atraso de 1 dia. Se um administrador achar que o firmware é instável ou indesejável, ele pode interromper a implantação pelo serviço de saúde a qualquer momento. Se o firmware tiver sido validado anteriormente e for desejada uma distribuição mais rápida, esses valores padrão podem ser modificados de dias para horas ou minutos.

Aqui está um exemplo dos componentes suportados xml para um cluster genérico do Storage Spaces Direct:

 <Components>
     <Disks>
        <Disk>
            <Manufacturer>Contoso</Manufacturer>
            <Model>XYZ9000</Model>
            <AllowedFirmware>
              <Version>2.0</Version>
              <Version>2.1>/Version>
              <Version>2.2</Version>
            </AllowedFirmware>
            <TargetFirmware>
              <Version>2.2</Version>
              <BinaryPath>\\path\to\image.bin</BinaryPath>
            </TargetFirmware>
        </Disk>
        ...
        ...
    </Disks>
 </Components>

Para iniciar a implantação do novo firmware neste cluster do Storage Spaces Direct, basta carregar o .xml para o banco de dados do cluster:

$SpacesDirect = Get-StorageSubSystem Clus*

$CurrentDoc = $SpacesDirect | Get-StorageHealthSetting -Name "System.Storage.SupportedComponents.Document"

$CurrentDoc.Value | Out-File <Path>

Edite o arquivo em seu editor favorito, como o Visual Studio Code ou o Bloco de Notas, e salve-o.

$NewDoc = Get-Content <Path> | Out-String

$SpacesDirect | Set-StorageHealthSetting -Name "System.Storage.SupportedComponents.Document" -Value $NewDoc

Perguntas frequentes

Consulte também Solução de problemas de atualizações de firmware da unidade.

Isso funcionará em qualquer dispositivo de armazenamento

Isso funcionará em dispositivos de armazenamento que implementam os comandos corretos em seu firmware. O cmdlet Get-StorageFirmwareInformation mostrará se o firmware de uma unidade realmente suporta os comandos corretos (para SATA/NVMe) e o teste HLK permite que fornecedores e OEMs testem esse comportamento.

Depois de atualizar uma unidade SATA, ela informa que não suporta mais o mecanismo de atualização. Há algo de errado com a unidade?

Não, a unidade está bem, a menos que o novo firmware não permita mais atualizações. Você está enfrentando um problema conhecido em que uma versão em cache dos recursos da unidade está incorreta. Executar "Update-StorageProviderCache -DiscoveryLevel Full" irá enumerar novamente os recursos da unidade e atualizar a cópia em cache. Como solução alternativa, recomendamos executar o comando acima uma vez antes de iniciar uma atualização de firmware ou concluir a implantação em um cluster do Spaces Direct.

Posso atualizar o firmware na minha SAN através deste mecanismo

Não - as SANs geralmente têm seus próprios utilitários e interfaces para essas operações de manutenção. Esse novo mecanismo é para armazenamento conectado diretamente, como dispositivos SATA, SAS ou NVMe.

De onde obtenho a imagem do firmware

Você deve sempre obter qualquer firmware diretamente do seu OEM, fornecedor de soluções ou fornecedor de unidades e não baixá-lo de outras partes. O Windows fornece o mecanismo para obter a imagem para a unidade, mas não pode verificar sua integridade.

Isso funcionará em drives agrupados?

Os cmdlets também podem executar a sua função em unidades em cluster, mas lembre-se de que a orquestração do Serviço de Saúde reduz o impacto de E/S na execução de cargas de trabalho. Se os cmdlets forem usados diretamente em unidades clusterizadas, é provável que a E/S seja interrompida. Em geral, é uma prática recomendada executar atualizações de firmware da unidade quando não há ou há apenas uma carga de trabalho mínima nas unidades subjacentes.

O que acontece quando atualizo o firmware nos Espaços de Armazenamento

No Windows Server 2016 com o Serviço de Integridade instalado no Storage Spaces Direct, pode executar esta operação sem que as suas cargas de trabalho fiquem offline, assumindo que as unidades suportem a atualização do firmware pelo Windows Server.

O que acontece se a atualização falhar

A atualização pode falhar por vários motivos, alguns deles são: 1) A unidade não suporta os comandos corretos para o Windows atualizar seu firmware. Neste caso, a nova imagem de firmware nunca é ativada e a unidade continua a funcionar com a imagem antiga. 2) A imagem não pode ser baixada ou aplicada a esta unidade (incompatibilidade de versão, imagem corrompida, ...). Neste caso, a unidade não executa o comando ativar. Mais uma vez, a imagem de firmware antiga continuará a funcionar.

Se a unidade não responder após uma atualização de firmware, você provavelmente está enfrentando um bug no próprio firmware da unidade. Teste todas as atualizações de firmware em um ambiente de laboratório antes de colocá-las em produção. A única solução pode ser substituir a unidade.

Para obter mais informações, consulte Solução de problemas de atualizações de firmware da unidade.

Como faço para parar uma distribuição de firmware em andamento

Desative a distribuição no PowerShell via:

Get-StorageSubSystem Cluster* | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoFirmwareUpdate.RollOut.Enabled" -Value false

Estou vendo um erro de acesso negado ou caminho não encontrado durante a implantação. Como faço para corrigir isso

Certifique-se de que a imagem de firmware que você gostaria de usar para a atualização esteja acessível por todos os nós do cluster. A maneira mais fácil de garantir isso é colocá-lo em um volume compartilhado de cluster.